一种安卓应用程序安装包加壳方法及系统及解壳方法技术方案

技术编号:10565197 阅读:202 留言:0更新日期:2014-10-22 16:49
本发明专利技术涉及一种安卓应用程序安装包加壳方法,包括步骤:步骤1:将源程序数据加密生成待加壳数据;步骤2:计算待加壳数据长度得到待加壳数据的长度值;步骤3:判断采用第一类加壳方法还是第二类加壳方法,如果是第一类,执行步骤4;否则,执行步骤6;步骤4:将待加壳数据和待加壳数据的长度值依次添加到加壳程序文件尾部;步骤5:重置相关项,执行步骤8;步骤6:将待加壳数据的长度值和待加壳数据依次添加到加壳程序文件头的尾部;步骤7:重新生成加壳程序文件头部中的相关项替换原有的,修改相关的数据偏移量;步骤8:将加壳程序文件的入口类配置为指定的类,完成对待加壳数据的加壳。本发明专利技术达到保护源文件的目的。

【技术实现步骤摘要】
【专利摘要】本专利技术涉及一种安卓应用程序安装包加壳方法,包括步骤:步骤1:将源程序数据加密生成待加壳数据;步骤2:计算待加壳数据长度得到待加壳数据的长度值;步骤3:判断采用第一类加壳方法还是第二类加壳方法,如果是第一类,执行步骤4;否则,执行步骤6;步骤4:将待加壳数据和待加壳数据的长度值依次添加到加壳程序文件尾部;步骤5:重置相关项,执行步骤8;步骤6:将待加壳数据的长度值和待加壳数据依次添加到加壳程序文件头的尾部;步骤7:重新生成加壳程序文件头部中的相关项替换原有的,修改相关的数据偏移量;步骤8:将加壳程序文件的入口类配置为指定的类,完成对待加壳数据的加壳。本专利技术达到保护源文件的目的。【专利说明】
本专利技术涉及,涉及到手机 App安全领域。
技术介绍
目前,市场上智能手机的品牌种类繁多,比如说:苹果,三星,HTC,诺基亚,小米,LG 等等。但是,从智能手机操作系统层面上进行划分的话,大体上只有三种:Android,iOS, Windows Phone (这三种的市场占有率最高,其它的由于市场占有率过低,暂时忽略)。 在上面提到的三种操作系统中,由于Android是唯一的开源平台,所以,目前采用 Android平台的智能手机最多,市场占有率也是最大的。 但是,"开放性"在给Android带来巨大的竞争力的同时,也带来了很多安全方面的 问题,其中,一个比较明显的是,App很容易被破解,然后被恶意加入一些代码,执行与当初 设计不相符的逻辑。比如说:App被反编译,被破解后,界面被加入一些垃圾广告;用户私秘 信息被获取后用于他用等等。
技术实现思路
本专利技术所要解决的技术问题是提供一种主要针对Android平台App,通过对APK安 卓应用程序安装包加壳来预防App被破解的安卓应用程序安装包加壳方法。 本专利技术解决上述技术问题的技术方案如下:一种安卓应用程序安装包加壳方法, 具体包括以下步骤: 步骤1 :将安卓应用程序安装包的源程序数据加密生成待加壳数据; 步骤2 :计算待加壳数据长度得到待加壳数据的长度值; 步骤3 :判断采用第一类加壳方法还是第二类加壳方法,如果是第一类,执行步骤 4;如果是第二类,执行步骤6; 步骤4 :将待加壳数据和待加壳数据的长度值依次添加到加壳程序文件尾部; 步骤5 :重新生成checksum检验码字段、signature签名字段和file_size文件总 长度信息替换原来加壳程序文件头部中的checksum检验码字段、signature签名字段和 file_size文件总长度信息,构成新加壳程序文件,执行步骤8 ; 步骤6 :将待加壳数据的长度值和待加壳数据依次添加到加壳程序文件头的尾 部; 步骤7 :重新生成加壳程序文件头部中的相关项替换原有的,并分析map_off数 据,修改相关的数据偏移量,构成新加壳程序文件; 步骤8 :将新加壳程序文件的入口类配置为指定的类,使解壳程序在运行的时候 还原此类,完成对待加壳数据的加壳。 本专利技术的有益效果是:本专利技术对Android平台的APK进行加壳,反编译工具还原 Android源代码的原理是根据虚拟机的可执行文件.DEX格式进行代码还原,反编译工具只 能窥测外层APK程序文件而看不到源文件里的东西,从而达到保护源文件的目的。 在上述技术方案的基础上,本专利技术还可以做如下改进。 进一步,步骤7中的所述相关项包括checksum检验码字段、signature签名字段、 file_ _size 文件总长度信息、header_size、string」ds_off、type」ds_off、proto」ds_off、 field_ids_off、method_ids_ofT、class_defs_off 和 data_off 相关项。 进一步,所述步骤8中,如果源文件已经配置了入口类需要把这个入口类用 〈meta-data>保存在加壳程序文件中,并将加壳程序文件的入口类配置为源文件配置的入 口类。 进一步,所述加壳程序文件采用dex文件。 本专利技术所要解决的技术问题是提供一种主要针对Android平台App,通过对APK安 卓应用程序安装包加壳来预防App被破解的安卓应用程序安装包加壳系统。 本专利技术解决上述技术问题的技术方案如下:一种安卓应用程序安装包加壳系统, 包括加密模块、长度计算模块、第一类加壳模块、第二类加壳模块和配置类模块; 所述加密模块将源程序数据加密生成待加壳数据; 所述长度计算模块用于计算待加壳数据长度得到待加壳数据的长度值,并将长度 值和待加壳数据发送到第一类加壳模块或第二类加壳模块; 所述第一类加壳模块将待加壳数据写入加壳程序文件的尾部,并在加壳程序文件 尾部添加待加壳数据的长度值;重新生成加壳程序文件头部中的相关项替换原有的,并将 加壳程序文件发送到配置类模块; 所述第二类加壳模块将待加壳数据的长度值和待加壳数据依次添加到加壳程序 文件头的尾部;重新生成加壳程序文件头部中的相关项替换原有的,并分析map_ofT数据, 修改相关的数据偏移量,并将加壳程序文件发送到配置类模块; 所述配置类模块将加壳程序文件的入口类配置为指定的类,使解壳程序在运行的 时候还原此类。 本专利技术的有益效果是:本专利技术对Android平台的APK进行加壳,反编译工具还原 Android源代码的原理是根据虚拟机的可执行文件.DEX格式进行代码还原,反编译工具只 能窥测外层APK程序文件而看不到源文件里的东西,从而达到保护源文件的目的。 在上述技术方案的基础上,本专利技术还可以做如下改进。 进一步,所述第一类加壳模块中的所述相关项包括checksum检验码字段、 signature签名字段和file_size文件总长度信息。 进一步,所述第二类加壳模块中的所述相关项包括checksum检验码字段、 signature 签名字段、file_size 文件总长度信息、header_size、string_ids_off、type_ ids_ofT、proto_ids_ofT、field_ids_ofT、method_ids_ofT、class_defs_ofT 和 data_off 相 关项。 进一步,所述加壳程序文件采用dex文件。 本专利技术所要解决的技术问题是提供一种主要针对Android平台App,通过对APK安 卓应用程序安装包加壳来预防App被破解的安卓应用程序安装包解壳方法。 本专利技术解决上述技术问题的技术方案如下:一种安卓应用程序安装包解壳方法, 具体包括以下步骤: 步骤1 :判断是第一类加壳方法还是第二类加壳方法处理的加壳程序文件,如果 是第一类,执行步骤2 ;如果是第二类,执行步骤3 ; 步骤2 :读取加壳程序文件尾部数据,获得待加壳数据的长度值,执行步骤4 ; 步骤3 :读取加壳程序文件头的末尾处数据,获得待加壳数据的长度值; 步骤4 :从加壳程序文件中读取待加壳数据,对待加壳数据进行解密得到解密数 据; 步骤5 :将解密数据以文件形式保存到a. apk文件中; 步本文档来自技高网
...

【技术保护点】
一种安卓应用程序安装包加壳方法,其特征在于,具体包括以下步骤:步骤1:将安卓应用程序安装包的源程序数据加密生成待加壳数据;步骤2:计算待加壳数据长度得到待加壳数据的长度值;步骤3:判断采用第一类加壳方法还是第二类加壳方法,如果是第一类,执行步骤4;如果是第二类,执行步骤6;步骤4:将待加壳数据和待加壳数据的长度值依次添加到加壳程序文件尾部;步骤5:重新生成checksum检验码字段、signature签名字段和file_size文件总长度信息替换原来加壳程序文件头部中的checksum检验码字段、signature签名字段和file_size文件总长度信息,构成新加壳程序文件,执行步骤8;步骤6:将待加壳数据的长度值和待加壳数据依次添加到加壳程序文件头的尾部;步骤7:重新生成加壳程序文件头部中的相关项替换原有的,并分析map_off数据,修改相关的数据偏移量,构成新加壳程序文件;步骤8:将新加壳程序文件的入口类配置为指定的类,完成对待加壳数据的加壳。

【技术特征摘要】

【专利技术属性】
技术研发人员:吕麟
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1