The invention discloses a method, a device and a mobile terminal for detecting a two time package of APP, which is used to detect whether a package generated by a APP is packaged and processed two times. The method includes steps: S1, scanning and analyzing the source code of the APP, generating a random function library, and the random function library contains a list of one or more functions; The detection code base contains one or more code segments, in which the detection code library can be used as a source of reusable code segments contained in one or more source programs; S3, the random function library randomly inserts the code fragment in the detection code library into the APP project at random. In source code; S4, compiles and generates APK with two package detection functions. The invention can effectively combat static and dynamic analysis.
【技术实现步骤摘要】
检测APP二次打包的方法、装置及移动终端
本专利技术涉及一种检测APP二次打包的方法、装置及移动终端,属于Android系统领域。
技术介绍
因为Android平台的开放性和自由性,使其在快速发展的同时也吸引了越来越多恶意程序开发者的目光,在当前利益的驱使下,一些恶意开发者从官方市场中下载应用安装包,将正常的应用程序进行破解,更改应用程序中的广告库或者插入一些新的广告库,然后利用自己的签名对应用进行二次打包,并发布在应用商店中,这些应用只是在传播的过程中遭受到了恶意的篡改,应用本身并没有恶意行为;而另一些恶意开发者则会在应用中插入恶意代码模块,然后再次将应用打包并发布到应用市场中,一旦用户下载并安装后,这些恶意应用程序会在用户毫不知情的状况下,触发恶意扣费、系统破坏、隐私泄露、劫持短信等恶意行为这些行为不仅破坏市场秩序,侵犯开发者的知识产权和利益,最重要的是泄露用户隐私,给用户带来经济上的损失,使移动用户面临越来越多的安全问题。通常二次打包的步骤是:解包(反编译)-插入或篡改代码-生成新包-二次签名-运行,所以为了防止二次打包,只需要对是否篡改代码和二次签名这两点做检测,效果上只要检测其中一点就可以。现有的技术的问题在于,开发者通常在APP程序入口点加入二次打包校验代码,校验不通过,APP退出。无论是在Java代码或者Jni代码中实现,往往检测点过于简单而且单一。破解者通过反编译静态分析或者动态分析,找到检测代码,移除该代码就能绕过二次打包检测,造成安全隐患。二次打包检测的原理和方法对于开发者和破解者都是公开的,如果不能对抗静态和动态分析,那么二次打包保护 ...
【技术保护点】
1.一种检测APP二次打包的方法,其特征在于,所述检测APP二次打包的方法包括:S1,扫描和分析APP源码,生成随机函数库,所述随机函数库包含一个或多个函数列表;S2,生成检测代码库,所述检测代码库包含一个或多个编码的代码段,其中所述检测代码库可以用作包含在一个或多个源程序中的可重复使用的代码段的源;S3,所述随机函数库把所述检测代码库中的代码片段随机插入到APP工程源码中;S4,编译生成具有二次打包检测功能的APK。
【技术特征摘要】
1.一种检测APP二次打包的方法,其特征在于,所述检测APP二次打包的方法包括:S1,扫描和分析APP源码,生成随机函数库,所述随机函数库包含一个或多个函数列表;S2,生成检测代码库,所述检测代码库包含一个或多个编码的代码段,其中所述检测代码库可以用作包含在一个或多个源程序中的可重复使用的代码段的源;S3,所述随机函数库把所述检测代码库中的代码片段随机插入到APP工程源码中;S4,编译生成具有二次打包检测功能的APK。2.根据权利要求1所述的一种检测APP二次打包的方法,其特征在于,所述步骤S1包括:S101,设置随机函数库的生成规则,选取函数调用频率,随机分布选取敏感函数,插入函数的数量;S102,静态扫描APP代码工程中所有源码,生成包含所有函数信息的functions.map映射文件;S103,读取步骤S101中设置的随机函数库的生成规则,如不设置,默认规则为选取使用频率最高的100个函数;S104,不符合规则的函数,不处理;S105,符合规则的函数,根据规则生成随机函数库。3.根据权利要求1所述的一种检测APP二次打包的方法,其特征在于,所述步骤S2包括:S201,将二次打包检测代码,放入插件所在磁盘目录;S202,识别代码,生成检测代码库。4.根据权利要求1所述的一种检测APP二次打包的方法,其特征在于,所述步骤S3包括:读取所述检测代码库中所有代码片段列表,读取所述随机函数库中所有函数列表,所述代码片段列表有N个,所述函数列表有M个,所述M个函数列表可以和所述N个片...
【专利技术属性】
技术研发人员:张涛,
申请(专利权)人:深圳壹账通智能科技有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。