探秘DexHunter:安卓应用加固解密利器
项目简介
DexHunter,一个自动解压加固DEX文件的神器,源自对Android运行时源码的深度改造。这个项目旨在帮助开发者和安全研究者绕过复杂的安卓应用保护机制,提取出隐藏在打包应用内的原始代码。DexHunter由修改后的ART和DVM运行时组成,适用于Android 4.4.3版本。
项目技术分析
DexHunter的核心在于其对Android系统运行时的定制。它利用了对class_linker.cc
(在ART中)和dalvik_system_DexFile.cpp
(在DVM中)的改动,实现在运行过程中自动解包。当目标应用启动前,只需将特定的配置文件dexname
推送到设备的/data/
目录下,即可触发解包过程。在执行过程中,DexHunter巧妙地避开了硬化服务对libc函数的钩子,确保了内存数据的正确导出。
应用场景与技术亮点
- 安全研究:用于分析加固过的安卓应用程序,发现潜在的安全漏洞。
- 反调试:对抗那些采用动态指令还原方法来防止反编译的保护机制。
- 代码恢复:对于被隐藏或混淆的代码,DexHunter可以帮助恢复其原始结构。
特别提示:
- 为了提高效率,DexHunter直接复用了原始的"class_def"段内容,如有问题可自行解析重组。
- 结果中的某些"annotation_off"或"debug_info_off"字段可能无效,不影响执行,但对反编译有影响。
- 针对动态指令还原保护,需要修改"DOInvoke"(ART)或"dvmMterp_invokeMethod"(DVM)以捕获执行时的指令。
- 关注特性字符串,随着硬化服务的更新,需及时调整以保持兼容性。
- 使用系统调用而非libc函数,解决可能的挂钩问题。
项目特点
- 自动化:一键操作,自动解包,简单高效。
- 灵活性:适用于ART和DVM两种运行时环境。
- 持续升级:鼓励社区参与,共同应对新的加固技术挑战。
- 文档完整:提供详细的技术讲解PPT和演示视频,便于理解和学习。
参考资源
slide.pptx
:HITCON 2015会议上的演讲材料,详细介绍DexHunter的设计与实现。demo.mp4
:解包硬化的应用实例视频。test.apk
:示例应用。dexname
:配置文件。art
和dalvik
目录:分别包含修改后的ART和DVM运行时代码。image
7z 文件:演示视频中使用的系统镜像文件。
如果你对此项目有兴趣或者在使用中有任何问题,可以联系作者zyq8709@gmail.com。使用本代码请引用相关论文,感谢支持!
DexHunter是一个前沿且实用的开源项目,不断挑战着安卓应用的加密防护边界。无论是安全研究员还是开发者,都可以从中受益,深入理解并应对安卓应用加固的挑战。让我们一起探索,体验DexHunter带来的解密魅力吧!