目录

  1. 简述(脱壳前学习的知识、壳的历史、脱壳方法)
  2. 第一代壳
  3. 第二代壳
  4. 第三代壳
  5. 第N代壳

简述

  1. Apk文件结构
  2. Dex文件结构
  3. 壳史
  4. 壳的识别

Apk文件结构

Dex文件结构

壳史

第一代壳 Dex加密

  1. Dex字符串加密
  2. 资源加密
  3. 对抗反编译
  4. 反调试
  5. 自定义DexClassLoader

第二代壳 Dex抽取与So加固

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

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

  1. Dex Method代码动态解密
  2. So代码膨胀混淆
  3. 对抗之前出现的所有脱壳法
  4. HOOK Dalvik的解释器的壳

第四代壳 arm vmp(未来)

  1. vmp

壳的识别

1.用加固厂商特征:

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

2.基于特征的识别代码

第一代壳

  1. 内存Dump法
  2. 文件监视法
  3. Hook法
  4. 定制系统
  5. 动态调试法

内存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 + dumpDEX
  • dumpDex https://github.com/CvvT/dumpDex

文件监视法

  • Dex优化生成odex
  • inotifywait-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”

第二代壳

  1. 内存重组法
  2. Hook法
  3. 动态调试
  4. 定制系统
  5. 静态脱壳机

内存重组法

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()

第三代壳

  1. dex2oat法
  2. 定制系统

dex2oat法

ART模式下,dex2oat生成oat时,内存中的DEX是完整的

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

定制系统

Hook Dalvik_dalvik_system_DexFile_defineClassNative

枚举所有DexClassDef,对所有的class,调用dvmDefineClass进行强制加载

第N代壳

  1. so + vmp
  2. 动态调试 + 人肉还原
转载链接:http://www.mottoin.com/89035.html

Android常见App加固厂商脱壳方法的整理相关推荐

  1. android elf 加固_Android常见App加固厂商脱壳方法的整理

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

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

    转自:http://www.mottoin.com/89035.html 目录 简述(脱壳前学习的知识.壳的历史.脱壳方法) 第一代壳 第二代壳 第三代壳 第N代壳 简述 Apk文件结构 Dex文件结 ...

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

    这篇文章主要介绍了常见android app加固厂商脱壳方法研究,需要的朋友可以参考下 目录简述(脱壳前学习的知识.壳的历史.脱壳方法) 第一代壳 第二代壳 第三代壳 第N代壳 简述Apk文件结构De ...

  4. android 监控行为,一种针对Android系统App行为的监控方法

    主权项: 1.一种针对Android系统App行为的监控方法,通过安全内核实现方法在Android内核层添加模块,实现对整个Android系统的系统调用的拦截与监控:包括如下步骤:S1.编写内核模块: ...

  5. APP加固和脱壳方案总结

    原文链接 APP安全合规 APP安全浅析 APP隐私合规 APP安全检测 APP安全检测解决方案浅析 CTF逆向指南 App逆向|ART下整体壳的解决方案(一) App逆向|ART下抽取壳的解决方案( ...

  6. Android 常见内存泄漏及解决方法

    Android中的内存泄漏: 先说一下为什么会出现内存泄漏: Android程序开发中,如果一个对象已经不需要被使用了,本该被回收时,而这时另一个对象还在持有对该对象的引用,这样就会导致无法被GC回收 ...

  7. Android packages Android常见APP对应包名

    instagram com.instagram.android facebook com.facebook.katana messenger com.facebook.orca whatsapp co ...

  8. android控件使用大全,Android常见控件使用详解

    本文实例为大家分享了六种Android常见控件的使用方法,供大家参考,具体内容如下 1.TextView 主要用于界面上显示一段文本信息 2.Button 用于和用户交互的一个按钮控件 //为Butt ...

  9. 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | 加固厂商在 ART 下使用的两种类加载器 | InMemoryDexClassLoader 源码 )

    文章目录 一.加固厂商在 ART 下使用的两种类加载器 ( InMemoryDexClassLoader | DexClassLoader ) 二.InMemoryDexClassLoader 源码分 ...

最新文章

  1. 数据智能与计算机图形学领域推荐论文列表
  2. linux下mysql的root密码忘记解决方
  3. linux下查看cpu负载及分析
  4. python 对话框的创建及调用_单击按钮创建新对话框
  5. 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
  6. 为什么不建议学python贴吧_为什么那么多自学Python的后来都放弃了,总结下来就这些原因...
  7. python docx包_[Python02] Python-docx包的使用,快速处理 Word 文件!
  8. rfc方式的集成 sap_转载: 与SAP集成的接口方式比较:IDOC BAPI RFC 之间的区别
  9. 博通:NFC将成手机标配nbsp;新芯…
  10. springmvc请求参数获取的几种方法
  11. 如何高效的使用Google
  12. Python 总体架构
  13. 【云原生 | Docker篇】 Docker容器配置阿里云镜像加速器
  14. matlab所有画图函数总结——20210318
  15. wps带阴影的边框怎么设置_win10系统设置wps阴影边框的具体办法
  16. 2023-2029年中国LED产业园区行业市场深度监测及战略咨询研究报告
  17. WinCC RT Adv 项目下载与自动运行
  18. Masm 如何调试汇编代码
  19. linux redis 远程访问
  20. 利用Html与css从零开始制作基础静态网页(web课设)

热门文章

  1. C语言课设-班级成绩统计分析
  2. 【循环测试试题】数字游戏
  3. QDockWidget 简单的自定义标题栏
  4. 百度Web前端开发实战案例解析
  5. 汽车理论动力性仿真-MATLAB
  6. windows10 结桌面进程,蓝屏
  7. Google 街景已增至37个城市
  8. 世纪前线网络质量测试工具 是什么_上海控安发布汽车信息安全评估工具箱:一款标准化、自动化的安全测试工具...
  9. 2015年图灵奖--惠特菲尔特·迪菲和马丁·赫尔曼简介
  10. 安徽省计算机应用对口招生好考吗,安徽省对口高考计算机专业考本科是不是难考...