- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
摘要
摘要
Android应用程序加壳是一种常见的Android应用软件代码保护技术,加壳后
的Android应用原程序字节码被隐藏,可以防止敏感信息泄露,也可能被攻击者利
用来隐藏恶意API进而绕过检测。当前主流的Android应用脱壳技术是非虚拟化
保护技术,其脱壳方法主要是通过在固定脱壳点插入脱壳代码采集Dex文件信息
并对其进行脱取,之后进行组装修复,而这种方法容易被反调试和反向劫持技术
绕过。针对强度最高的虚拟化技术保护壳,目前只有对特定安全厂商定制的脱壳
器,没有一套通用高效的自动化脱壳解决方案。
针对以上问题,本文提出了一种可以应用在最新Android系统环境下(Android
runtime,ART)的Android应用程序通用脱壳方法,首先通过启发式方法对加壳技术
进行分类(普通壳、抽取型壳、DexVMP壳),然后针对不同类别的加壳方法设计
通用有效的脱壳方案,本文的主要工作包括以下两点:
(1)针对现有主流基于单一壳的脱壳框架对采用不同加壳技术保护壳的
Android应用脱壳成功率低的问题,本文设计启发式方法对壳型进行分类并对其设
计不同的脱壳方案来脱壳,并在真实环境中对30,000个实际App进行了测试。实
验结果表明,本文所提方法的脱壳成功率高达94.6%,比Fart、Youpk等当前主流
开源通用脱壳工具分别提高了9.9%和6.9%,同时,本文所提方法的平均脱壳效
率相比其他主流脱壳系统提升了1.73M/s。此外,相对工业界脱取修复效果最好的
Fart,本文所提方法在普通壳的Dex文件完整度上提了2.5%,在抽取壳的Dex文
件完整度上相较于其他主流脱壳系统平均提高了13.7%。
(2)本文结合脱壳点动态搜索和基于抽象语法树的参数跟踪技术来缓解固定脱
壳点易失效的问题,并通过守护线程来防止脱取操作被inlinehook。针对现有抽取
型壳脱取方案无法修复全部方法体进而导致脱取dex文件完整度低的的问题,提
出了覆类加载和全类调用的方法。针对特定厂商定制的DexVMP脱壳方法大多需
要进行逆向工作,其普适性差且无法自动化脱壳的问题,提出了基于支配点插桩
的模糊测试方法,在真实环境中的实验结果表明,本文所提方法对三个主要提供
虚拟化保护技术的厂商360安全、爱加密和梆梆安全的DexVMP脱壳率分别达到
89.3%,84.3%,87.7%。
关键词:ART环境,移动安全,自动化,通用脱壳
IV
ABSTRACT
ABSTRACT
Androidapplicationpackingisacommonandroidapplicationsoftwarecodeprotec-
tiontechnology.Theoriginalprogrambytecodeofthepackagedandroidapplicationis
hidden,mayalsobeexploitedbyattackerstohidemaliciousAPIsandbypassdetection.
Thecurrentmainstreamandroidapplicationunpackingtechnologyisnon-virtualization
protectiontechnology.TheunpackingmethodismainlytocollectDexfileinformation
byinsertingunpackingcodeatafixedunpackingpoint,extractit,andthenassembleand
repairit.Thismethodiseasilybypassedbyanti-debuggingandreversehijackingtech-
niques.Forthemostpowerfulprotectionshellofvirtualizationtechnology,thereareonly
shel
文档评论(0)