The invention discloses a method of compiling the virtual shell Android local layer instruction based on ELF infection, the method to protect so files for Hex extraction and mapping of virtual, virtual machine to form the so file, and the key code of the so file section is encrypted, the encrypted form so for encrypted so; the file of ELF infection using virtual machine so file, the formation of infected so files; the encrypted so file using Cydia Hook to replace the Substrate framework, encrypted virtual virtual machine instruction in the so file encryption code to replace the code in the so file. The idea of compile time virtual is used in this invention. This idea does not relate to different versions of ARM platform, so it has good compatibility. It can prevent memory Dump analysis and increase attacker's attack cost.
【技术实现步骤摘要】
一种基于ELF感染的Android本地层指令编译虚拟化加壳方法
本专利技术属于Android应用程序加固
,具体涉及一种基于ELF感染的本地层so文件的编译时虚拟化加壳保护,并结合CydiaSubstrate框架进行hook实现核心功能正常调用的保护技术。
技术介绍
近年来,随着手机应用的蓬勃发展,每年的产量呈指数式的增长,据统计,目前我国主要的应用商店的APP已累计超过1000万。APP在给人们生活带来方便的同时,也给不法分子造就了可乘之机,严重影响APP产业的健康发展。对于APP的保护由最初的dex的简单加固到目前对dex的抽取加固,保护的对象也由dex层转移到了本地层,同时开发者将APP很多的核心算法写到了本地层,从而保护本地层成为了AndroidAPP代码保护的重要趋势。现有的对于本地层文件的保护主要有UPX加壳、ELF文件Section段加密和OLLVM混淆,这些Android本地层保护方法只是能够从表面上起到阻止静态分析的作用,但都不能从本质上来应对动态分析和有经验的逆向攻击者。有经验的逆向攻击者进行动态分析调试,选择合适的时机对在内存中还原的so进行Dump;除此之外,现有的OLLVM混淆主要是针对源码级别的代码编译混淆,虽然保护力度大,但是可操作性弱。因此以上方法在Android本地层so保护时都存在一定的局限性,而Android本地层的so文件又通常是整个AndroidApp中核心逻辑代码的重要实现部分,所以亟待一种既能够防止内存Dump分析同时又能够兼顾以上保护优点的方法。
技术实现思路
针对上述现有技术中存在的问题,本专利技术的目的 ...
【技术保护点】
一种基于ELF感染的Android本地层指令编译虚拟化加壳方法,其特征在于,包括以下步骤:查找so文件中需要进行保护的关键代码段,对关键代码段进行指令Hex抽取和映射虚拟,形成虚拟机so文件;对所述的需要保护的关键代码段进行加密处理,得到关键代码段被加密后的so文件;利用虚拟机so文件对加密后的so文件进行ELF感染,形成感染后的so文件;利用Cydia Substrate框架对加密后so文件进行Hook替换,使虚拟机so文件中的虚拟指令码替换加密后so文件中被加密的代码。
【技术特征摘要】
1.一种基于ELF感染的Android本地层指令编译虚拟化加壳方法,其特征在于,包括以下步骤:查找so文件中需要进行保护的关键代码段,对关键代码段进行指令Hex抽取和映射虚拟,形成虚拟机so文件;对所述的需要保护的关键代码段进行加密处理,得到关键代码段被加密后的so文件;利用虚拟机so文件对加密后的so文件进行ELF感染,形成感染后的so文件;利用CydiaSubstrate框架对加密后so文件进行Hook替换,使虚拟机so文件中的虚拟指令码替换加密后so文件中被加密的代码。2.如权利要求1所述的基于ELF感染的Android本地层指令编译虚拟化加壳方法,其特征在于,所述的查找so文件中需要进行保护的关键代码段,对关键代码段进行指令Hex抽取和映射虚拟,形成虚拟机so文件,包括:根据开发者提供的标签进行查找,定位到关键代码段,对关键代码段进行Hex抽取,将抽取后的结果使用自定义的映射规则进行映射变换,使关键代码段中的每一个代码按照映射规则对应一个虚拟指令码;与此同时,自定义用于指令读取以及解释所述虚拟指令码的解释引擎,该解释引擎根据虚拟指令码调用相应的处理函数以等同实现虚拟指令码对应的关键代码...
【专利技术属性】
技术研发人员:赵贝贝,房鼎益,汤战勇,宋丽娜,陈晓江,李振,龚晓庆,陈峰,
申请(专利权)人:西北大学,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。