某梆企业版加固脱壳及抽代码还原方法--dvmResolveClass
原文链接:https://blog.csdn.net/justFWD/article/details/51164281
某梆加固企业版还是会调用系统的dvmDexFileOpenPartial 接口,因此可以这里添加hook
51df6008-52cd50__unpackedDex.dmp即是dump出来的dex,拖到jeb里,可以看到这些函数都是空的
汇编显示,大片的指令都为nop,这些指令都被抽掉了,执行之前才会还原。
它hook了dvmResolveClass还动态加解密指令
可以看到,它执行了两次___Decrypt_dvmResolveClass,解密完等原始dvmResolveClass执行完后,还会再把指令清掉。
之前网上有还原娜伽抽代码的教程,是把解密算法还原出来,用算法来解密的,不过___Decrypt_dvmResolveClass函数的流程图如下图所示:
还是挺复杂的,弄出算法的成本相当高。
还是另想办法。第C838行的BLX R3就是在调用原始dvmResolveClass函数,这时指令已经被还原了。那么我们在这个点做hook,把代码还原出来。
先来看下dvmResolveClass函数的实现
输入参数有ClassObject* referrer, u4classIdx,这里的classIdx经过测试,似乎经常飘乎不定,并不可用。需要通过referrer->descriptor得到类名后,再定位到对应的class_data_item
dexClsIndex是通过类名计算出来的实际classIdx,patchDexMethod通过referrer将Method里面的指令写到第一步dump出来的dex里的对应位置上。
虽然大部分类都的代码都被还原了,但还是存在这样的类:
这样会就把之前没有还原到的类给补全。
(创建了一个Android逆向分析群,欢迎有兴趣的同学加入,群号码:376745720)
某梆企业版加固脱壳及抽代码还原方法--dvmResolveClass相关推荐
- 某梆企业版加固脱壳及抽代码还原方法
某梆加固企业版还是会调用系统的dvmDexFileOpenPartial 接口,因此可以这里添加hook 51df6008-52cd50__unpackedDex.dmp即是dump出来的dex,拖到 ...
- 梆梆企业版加固技术之防篡改剖析
(本文仅限于技术讨论,不得用于非法途径,造成不良后果,与作者无关) 本篇主要介绍梆梆安全加固防篡改的原理和方法.选择梆梆,是因为其在防篡改方面是比较突出的.如果后续有时间会陆续将梆梆企业版使用的加固技 ...
- php加固apk,脱壳再打包某梆梆免费加固APP
Apk: 梆梆免费加固apk,非2019最新版. 准备工具: Apktool dex-tools-2.1-SNAPSHOT smali-2.3.4 DexExtractor jd-gui 整体也是这个 ...
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | 查找 DexFile 对应的C代码 | dalvik_system_DexFile.cpp 分析 )
文章目录 前言 一.查找 DexFile 对应的 C++ 代码 1.根据 Native 文件命名惯例查找 C++ 代码 2.根据方法名查找 二.dalvik_system_DexFile.cpp 源码 ...
- python 工程结构加固_【安卓逆向】360加固-脱壳修复
360加固-脱壳修复 最近花了一些时间学习逆向脱壳,这方面一直投入的时间比较少.样本经过某加固宝进行加固,这里简单记录一下脱壳过程和思路,感谢某数字公司对安全加固的无私贡献,让我有机会小小的提高一下这 ...
- 基于dalvik模式下的Xposed Hook开发的某加固脱壳工具
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/77966109 这段时间好好的学习了一下Android加固相关的知识和流程也大致把A ...
- 【Android 逆向】整体加固脱壳 ( DEX 优化流程分析 | DexPrepare.cpp 中 dvmContinueOptimizati() 函数分析 )
文章目录 前言 一.DexPrepare.cpp 中 dvmContinueOptimizati() 方法分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DEX 优化流程分析 | D ...
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | RawDexFile.cpp 分析 | dvmRawDexFileOpen函数读取 DEX 文件 )
文章目录 前言 一.RawDexFile.cpp 中 dvmRawDexFileOpen() 方法分析 前言 上一篇博客 [Android 逆向]整体加固脱壳 ( DexClassLoader 加载 ...
- 【Android 逆向】整体加固脱壳 ( DexClassLoader 加载 dex 流程分析 | DexFile loadDexFile 函数 | 构造函数 | openDexFile 函数 )
文章目录 前言 一.DexFile.loadDexFile 函数分析 二.DexFile 构造函数分析 三.DexFile.openDexFile 函数分析 前言 上一篇博客 [Android 逆向] ...
最新文章
- 只有你想不到,没有它做不到——可随时变身的模块化机器人
- 古代password
- Apache Tomcat 曝文件包含漏洞:攻击者可利用该漏洞读取webapp目录下的任意文件...
- 开发日记-20190803 关键词 读书笔记《Linux 系统管理技术手册(第二版)》DAY 19
- NODE-WEBKIT教程(12)全屏
- centos ezhttp mysql_Windows 访问CentOS上Mysq配置说明
- C++总结笔记(五)——构造函数和析构函数
- linux spidev 应用_嵌入式Linux设备树语法总结
- Thinking in Java Reading Note(5.初始化与清理)
- 图像处理——alpha融合
- 基本的广告法违禁词、违规词以及敏感词大全
- 简述c、c++和java三大语言特性
- sql函数—Lpad、Rpad
- Python爬取小姐姐美照
- 检测屏幕.html,15款html5响应式网站跨屏幕测试工具
- 台式计算机中的CPU指的是,电脑硬件认识之什么是电脑的CPU(cpu详细介绍)
- HMACSHA1 加密算法
- Placing Lampposts ,UVa 10859 树形dp
- java 1 2 等于_java 判断语句中一个等于号和两个等于号的区别是什么?
- 【Android实战】保存QQ账号与密码
热门文章
- Baby拍时尚大片,小露香肩秀完美侧颜,五官精致宛如芭比娃娃
- CentOS7安装Oracle 11gR2 图文详解
- 进程间的五种通信方式介绍
- 使用自定义字体包太大导致加载太慢解决办法 用font-spider字蛛解决自定义字体包太大的问题
- 2019零基础学Android第1课——Android开发环境搭建
- cmd代码表白_学会这些(滑动关机、应用多开、QQ微信消息攻击、表白神器),逼格瞬间提升1000倍...
- LQ0015 质因数个数【数论】
- wps excel中怎样对比两列中的数据,并且把相同的数据粘贴在结果列。
- 小红书用户消费心理及种草价值:后疫情时代消费心理研究
- tesla p100 linux,Ubuntu16.04深度学习开发环境配置(TeslaP100+cuda9.0+tensorflow)