[发明专利]面向安卓应用程序的渐进控制流混淆方法和电子设备在审
申请号: | 201911360253.9 | 申请日: | 2019-12-25 |
公开(公告)号: | CN111190601A | 公开(公告)日: | 2020-05-22 |
发明(设计)人: | 刘茜 | 申请(专利权)人: | 航天信息股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53;G06F21/14 |
代理公司: | 北京思创大成知识产权代理有限公司 11614 | 代理人: | 张立君 |
地址: | 100195 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 面向 应用程序 渐进 控制 混淆 方法 电子设备 | ||
1.一种面向安卓应用程序的渐进控制流混淆方法,其特征在于,包括:
获取目标应用程序的smali文件;
将所述smali文件中的各个函数拆分成可执行的逻辑块;
确定各个逻辑块的混淆级别,并根据混淆级别将所有逻辑块划分为多个集合;
按照混淆级别从高到低的顺序从所述多个集合中选择部分集合,对选中的集合中的逻辑块进行混淆;
判断当前混淆后的代码是否达到期望的复杂度,如果没有达到,则对当前混淆后的代码进行进一步混淆,直到达到期望的复杂度。
2.根据权利要求1所述的方法,其特征在于,所述获取目标应用程序的smali代码,包括:
将目标应用程序的apk文件解压,获取对应的classes.dex文件;
使用apktool将classes.dex文件反编译成smali文件。
3.根据权利要求1所述的方法,其特征在于,所述确定各个逻辑块的混淆级别,包括:
根据每个逻辑块的长度和/或安全级别,确定该逻辑块的混淆级别。
4.根据权利要求1所述的方法,其特征在于,所述根据混淆级别将所有逻辑块划分为多个集合,包括:
将混淆级别处于同一范围的逻辑块,划分至同一个集合。
5.根据权利要求1所述的方法,其特征在于,所述按照混淆级别从高到低的顺序从所述多个集合中选择部分集合,包括:
从所述多个集合中选择混淆级别最高的预定数量个集合。
6.根据权利要求1所述的方法,其特征在于,所述判断当前混淆后的代码是否达到期望的复杂度,包括:
对当前混淆后的代码进行攻击;
如果在预定时间内,当前混淆后的代码被成功破解,则判断未达到期望的复杂度;
如果在预定时间内,当前混淆后的代码未被破解,则判断达到期望的复杂度。
7.根据权利要求1所述的方法,其特征在于,所述对当前混淆后的代码进行进一步混淆,包括:
从未被选中的集合中根据混淆级别选择集合进行混淆。
8.根据权利要求1所述的方法,其特征在于,所述对当前混淆后的代码进行进一步混淆,包括:
继续对已被混淆的逻辑块进行下一轮混淆。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储有可执行指令;
处理器,所述处理器运行所述存储器中的所述可执行指令,以实现权利要求1-8中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现权利要求1-8中任一项所述的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天信息股份有限公司,未经航天信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911360253.9/1.html,转载请声明来源钻瓜专利网。