[发明专利]一种安卓应用程序安装包加壳方法及系统及解壳方法在审
申请号: | 201410314808.7 | 申请日: | 2014-07-03 |
公开(公告)号: | CN104111832A | 公开(公告)日: | 2014-10-22 |
发明(设计)人: | 吕麟 | 申请(专利权)人: | 北京思特奇信息技术股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100086 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用程序 安装 包加壳 方法 系统 | ||
技术领域
本发明涉及一种安卓应用程序安装包加壳方法及系统及解壳方法,涉及到手机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_ids_off、type_ids_off、proto_ids_off、field_ids_off、method_ids_off、class_defs_off和data_off相关项。
进一步,所述步骤8中,如果源文件已经配置了入口类需要把这个入口类用<meta-data>保存在加壳程序文件中,并将加壳程序文件的入口类配置为源文件配置的入口类。
进一步,所述加壳程序文件采用dex文件。
本发明所要解决的技术问题是提供一种主要针对Android平台App,通过对APK安卓应用程序安装包加壳来预防App被破解的安卓应用程序安装包加壳系统。
本发明解决上述技术问题的技术方案如下:一种安卓应用程序安装包加壳系统,包括加密模块、长度计算模块、第一类加壳模块、第二类加壳模块和配置类模块;
所述加密模块将源程序数据加密生成待加壳数据;
所述长度计算模块用于计算待加壳数据长度得到待加壳数据的长度值,并将长度值和待加壳数据发送到第一类加壳模块或第二类加壳模块;
所述第一类加壳模块将待加壳数据写入加壳程序文件的尾部,并在加壳程序文件尾部添加待加壳数据的长度值;重新生成加壳程序文件头部中的相关项替换原有的,并将加壳程序文件发送到配置类模块;
所述第二类加壳模块将待加壳数据的长度值和待加壳数据依次添加到加壳程序文件头的尾部;重新生成加壳程序文件头部中的相关项替换原有的,并分析map_off数据,修改相关的数据偏移量,并将加壳程序文件发送到配置类模块;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京思特奇信息技术股份有限公司,未经北京思特奇信息技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410314808.7/2.html,转载请声明来源钻瓜专利网。