常见app加固厂商脱壳方法研究
目录
1. 简述(脱壳前学习的知识、壳的历史、脱壳方法)
2. 第一代壳
3. 第二代壳
4. 第三代壳
5. 第N代壳
6. 简述
7. Apk文件结构
8. Dex文件结构
9. 壳史
10. 壳的识别
11. 第一代壳:Dex加密、Dex字符串加密、资源加密、对抗反编译、反调试、自定义DexClassLoader
12. 第二代壳:Dex抽取与So加固、对抗第一代壳常见的脱壳法、Dex Method代码抽取到外部(通常企业版)、Dex动态加载、So加密
13. 第三代壳:Dex动态解密与So混淆、Dex Method代码动态解密、So代码膨胀混淆、对抗之前出现的所有脱壳法
14. 第四代壳:arm vmp(未来)
15. 壳的识别
16. 用加固厂商特征识别
17. 基于特征的识别代码
18. 第一代壳:内存Dump法、文件监视法、Hook法、定制系统、动态调试法
19. 内存Dump法:内存中寻找dex.035或者dex.036,/proc/xxx/maps中查找后,手动Dump,android-unpacker,drizzleDumper,升级版的android-unpacker,read和lseek64代替pread,匹配dex代替匹配odex,IDA Pro + dumpDEX,dumpDex
20. 文件监视法:Dex优化生成odex,inotifywait-for-Android,监视文件变化
您好!您可以使用以下方法脱壳安卓 dex 文件:
1. Hook dvmDexFileOpenPartial
2. DumpApk
3. DexHunter-最强大的二代壳脱壳工具
4. elfrebuild
5. 修改安卓源码并刷机
6. gcore防Dump解决方案
这些方法可以用于对付不同的壳和动态加载的jar,以及无代码抽取且Hook dvmDexFileOpenPartial失败的情况。其中,DexHunter是最强大的二代壳脱壳工具之一,可以绕过三进程反调试。
以下是重构后的内容,我保持了原有的段落结构:
1. 断点mmap调试,针对Hook dexFileParse无效
原理: dexopt优化时, dvmContinueOptimization()->mmap()
2. 静态脱壳机
分析壳so逻辑并还原加密算法
http://bbs.pediy.com/showthread.php?t=198995
3. 自定义linker脱so壳
https://github.com/devilogic/udog
第三代壳
4. dex2oat法
定制系统
ART模式下,dex2oat生成oat时,内存中的DEX是完整的
http://bbs.pediy.com/showthread.php?t=210532
定制系统
Hook Dalvik_dalvik_system_DexFile_defineClassNative
枚举所有DexClassDef,对所有的class,调用dvmDefineClass进行强制加载第N代壳
so + vmp
动态调试 + 人肉还原来源:Digg 投稿 Mottoin原创稿件,未经允许禁止转载!