移动应用加固技术移动应用加固技术
梆梆安全梆梆安全
CTO陈彪
加固的原因加固的原因
• AndroidJava编写,容易逆向
• Android应用允许自签名,同时应用市场混乱,导
致大量应用被二次打包,植入广告、木马等
• Root后,利用调试、Hook等技术手段对应用进行
动态攻击动态攻击
加固功能加固功能
• 代码加壳
• 反调试
• 完整性检查
保护对象保护对象
• Java-AndroidDex
• C/C++/ObjjC-AndroidSo、Apppplemach-o
• 各种开发框架的文件各种开发框架的文件
✓✓ httml、、JsJs、、Luaua、、CC#等等
DexDex加固加固 -第第一代整体加密代整体加密
技术技术
• 基于Java本身提供的类加载技术
• classes.dex被完整加密,放到APK的资源中
• 运行时修改程序入口,将加密后的classes.dex在
内存中解密,并让Dalvik虚拟机加载执行
加固前后的变化加固前后的变化
加固前的加固前的apkk 加固后的加固后的APKAPK
AndroidManifest.xml
AndroidManifest.xml
assets/bangcle_classes.j
ar
classes.dex
classesdexclasses.dex
存在的问题存在的问题
• 难以对抗动态分析
• 内存中存在连续完整的解密后的代码,可通过内存dump的方式得到解密代码
• 针对内存针对内存ddump,各家加各家加固厂商都会打商都会打一些些patchh
✓Dex加载完毕后,抹掉或者混淆内存中dex的头部或者尾部信息
✓检查ZJdroid是否存在,如存在,加固应用不运行
✓…
• 这些patch都是治标不治本的措施,难以从本质上解决内存dump的问题
• 例如:通过修改Dalvik虚拟机,在载入dex时候进行dump,而不是在Dex已
加载完成之后
DDex加固加固 -第二代第二代
• 基于方法替换方式
✓原理:Java虚拟机在第一次执行某个类的某个方
法前,才需要真正加载这个方法的代字节码
✓将原APK中的所有方法的代码提取出来,单独加
密密
✓✓当当Daalvik要执行某个方法时,加固引擎才解密该要执行某个方法时,加固引擎才解密该
方法,并将解密后的代码交给虚拟机执行引擎执
行行
加固前后的变化加固前后的变化
加加固前APK 加固后APK
AndroidManifest.xm
AndroidManifest.xmAndroidManifest.xm ll
l
classes.des
classes.dex classes.dex
加固前后的变化加固前后的变化
加固前
您可能关注的文档
最近下载
- 铁法煤业(集团)有限公司大兴煤矿升级改造.doc VIP
- 《老子道德经》上下卷(河上公注明嘉靖时期顾氏世德堂刊本).pdf VIP
- 春天吹着口哨.doc VIP
- 量子输运格林函数方法.doc VIP
- 2025至2030中国小型基站行业深度研究及发展前景投资评估分析.docx
- 安静书素材-0024.我们去购物LetsGoShopping-SweetShop.pdf VIP
- 《橇装式汽车加油站技术标准》SHT 3134-2023.docx VIP
- SHT 0370-1995复合钙基润滑脂.pdf
- 廖彩杏英语绘本汽车安静书Cars-Quiet-Book(1-12页).pdf VIP
- 水利工程竣工验收监理工作总结报告.docx VIP
原创力文档

文档评论(0)