常见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原创稿件,未经允许禁止转载!