栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

常见android app加固厂商脱壳方法研究

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

常见android app加固厂商脱壳方法研究

目录简述(脱壳前学习的知识、壳的历史、脱壳方法)
第一代壳
第二代壳
第三代壳
第N代壳
简述Apk文件结构Dex文件结构壳史壳的识别Apk文件结构

Dex文件结构

壳史

第一代壳 Dex加密

Dex字符串加密资源加密对抗反编译反调试自定义DexClassLoader

第二代壳 Dex抽取与So加固

对抗第一代壳常见的脱壳法Dex Method代码抽取到外部(通常企业版)Dex动态加载So加密

第三代壳 Dex动态解密与So混淆

Dex Method代码动态解密So代码膨胀混淆对抗之前出现的所有脱壳法

第四代壳 arm vmp(未来)

vmp壳的识别

1.用加固厂商特征:

娜迦: libchaosvmp.so , libddog.solibfdog.so爱加密:libexec.so, libexecmain.so梆梆: libsecexe.so, libsecmain.so , libDexHelper.so360:libprotectClass.so, libjiagu.so通付盾:libegis.so网秦:libnqshield.so百度:libbaiduprotect.so

2.基于特征的识别代码

第一代壳内存Dump法文件监视法Hook法定制系统动态调试法内存Dump法内存中寻找dex.035或者dex.036/proc/xxx/maps中查找后,手动Dump

android-unpacker https://github.com/strazzere/android-unpacker

drizzleDumper https://github.com/DrizzleRisk/drizzleDumper 升级版的android-unpacker,read和lseek64代替pread,匹配dex代替匹配odex

IDA Pro + dumpDEXdumpDex https://github.com/CvvT/dumpDex

文件监视法Dex优化生成odexinotifywait-for-Android https://github.com/mkttanabe/inotifywait-for-Android监视文件变化

notifywait-for-Android https://github.com/mkttanabe/inotifywait-for-Android监视DexOpt输出

Hook法Hook dvmDexFileOpenPartial http://androidxref.com/4.4_r1/xref/dalvik/vm/DvmDex.cpp

定制系统修改安卓源码并刷机

DumpApk https://github.com/CvvT/DumpApk只针对部分壳

动态调试法IDA Pro

gdb gcore法

.gdbserver :1234 –attach pid .gdb (gdb) target remote :1234 (gdb) gcore


coredump文件中搜索“dex.035”

第二代壳内存重组法Hook法动态调试定制系统静态脱壳机内存重组法

Dex篇

ZjDroid http://bbs.pediy.com/showthread.php?t=190494

对付一切内存中完整的dex,包括壳与动态加载的jar

so篇

elfrebuild

构造soinfo,然后对其进行重建

Hook法

针对无代码抽取且Hook dvmDexFileOpenPartial失败

Hook dexFileParse

http://androidxref.com/4.4_r1/xref/dalvik/vm/DvmDex.cpp

https://github.com/WooyunDota/DumpDex

针对无代码抽取且Hook dexFileParse失败

Hook memcmp

http://androidxref.com/4.4_r1/xref/dalvik/vm/DvmDex.cpp

定制系统

修改安卓源码并刷机-针对无抽取代码

https://github.com/bunnyblue/DexExtractor

Hook dexfileParse

DexHunter-最强大的二代壳脱壳工具

https://github.com/zyq8709/DexHunter

DexHunter的工作流程:

DexHunter的工作原理:

绕过三进程反调试

http://bbs.pediy.com/showthread.php?p=1439627

修改系统源码后:

http://www.cnblogs.com/lvcha/p/3903669.html

ls /proc/345/task


./gdbserver :1234 --attach346 ... (gdb) gcore


gcore防Dump解决方案:

http://bbs.pediy.com/showthread.php?t=198995

断点mmap调试,针对Hook dexFileParse无效

原理: dexopt优化时, dvmContinueOptimization()->mmap()

静态脱壳机

分析壳so逻辑并还原加密算法

http://www.cnblogs.com/2014asm/p/4924342.html

自定义linker脱so壳

https://github.com/devilogic/udog

main() -> dump_file()


第三代壳dex2oat法定制系统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动态调试 + 人肉还原

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/156529.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号