常见android app加固厂商脱壳方法研究
这篇文章主要介绍了常见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动态调试 + 人肉还原
常见android app加固厂商脱壳方法研究相关推荐
- 常见app加固厂商脱壳方法研究
转自:http://www.mottoin.com/89035.html 目录 简述(脱壳前学习的知识.壳的历史.脱壳方法) 第一代壳 第二代壳 第三代壳 第N代壳 简述 Apk文件结构 Dex文件结 ...
- android elf 加固_Android常见App加固厂商脱壳方法的整理
目录 简述(脱壳前学习的知识.壳的历史.脱壳方法) 第一代壳 第二代壳 第三代壳 第N代壳 简述 Apk文件结构 Dex文件结构 壳史 壳的识别 Apk文件结构 Dex文件结构 壳史 第一代壳 Dex ...
- Android常见App加固厂商脱壳方法的整理
目录 简述(脱壳前学习的知识.壳的历史.脱壳方法) 第一代壳 第二代壳 第三代壳 第N代壳 简述 Apk文件结构 Dex文件结构 壳史 壳的识别 Apk文件结构 Dex文件结构 壳史 第一代壳 Dex ...
- Android App加固原理分析
Android App加固原理分析 对App进行加固,可以有效防止移动应用被破解.盗版.二次打包.注入.反编译等,保障程序的安全性.稳定性.对于金融类App,尤其重要. 对App dex进行加固的基本 ...
- android recovery分区内刷镜像,Android手机Recovery模式取证方法研究.pdf
Android手机Recovery模式取证方法研究 2015 年第 9 期 信息通信 2015 (总第 153 期) INFORMATION & COMMUNICATIONS (Sum. No ...
- android设置主题的方法,Android_修改Android App样式风格的方法,android中可以自定义主题和风格 - phpStudy...
修改Android App样式风格的方法 android中可以自定义主题和风格.风格,也就是style,我们可以将一些统一的属性拿出来,比方说,长,宽,字体大小,字体颜色等等.可以在res/value ...
- APP加固和脱壳方案总结
原文链接 APP安全合规 APP安全浅析 APP隐私合规 APP安全检测 APP安全检测解决方案浅析 CTF逆向指南 App逆向|ART下整体壳的解决方案(一) App逆向|ART下抽取壳的解决方案( ...
- Android APP一键退出的方法总结分析
本文出处: 炎之铠csdn博客:http://blog.csdn.net/totond 炎之铠邮箱:yanzhikai_yjk@qq.com 本文demo地址:https://github.com/t ...
- Android App性能自动化评测方法
前言 App运行在设备上的性能表现也是质量保障的一个重要环节.因此,当我们确保了基本功能的准确之后,还需要有一定的方法评测App在不同设备上的性能表现.本文将从性能指标,评测方法,自动化体系建设等三个 ...
最新文章
- Java 理论与实践: 修复 Java 内存模型,第 2 部分 (VOLATILE, FINA...
- JSONObject JSONArray各种用法以及js eval()函数与JSON.parse的区
- PowerToys,微软开源的超实用小工具合集
- fusioncharts同一页面显示2个仪表盘,且以java字符串作为xml数据
- Airflow 中文文档:初始化数据库后端
- JavaScript传参年月日格式日期自动运算问题解决
- Spring Cloud 架构 五大神兽的功能
- boost学习之BOOST_FOREACH
- jenkins html报告不显示样式
- 使用jQuery获取视口大小
- 自学TP5源码(一)
- 手机屏幕驱动板1080x1920分辨率HDMI红米note3 note4 note4x屏幕Fondar自制投影 光固化
- linux重装系统步骤 包含raid【主要针对服务器重装】
- ATT CK 阶段之 Initial Access --Drive-by Compromise
- Android appWidget——每日一句应用开发
- 工厂系列系统之 MES 系统8 生产计划-订单
- python 获取csv的列数_Python读取excel的两种方法
- 《大规模元搜索引擎技(1)》一第1章 绪言
- Review of Software Construction
- Hyper-V虚拟化