【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )
文章目录
- 一、加壳特征识别
- 1、函数抽取 与 Native 化加壳的区分
- 2、VMP 加壳与 Dex2C 加壳的区分
一、加壳特征识别
1、函数抽取 与 Native 化加壳的区分
函数抽取 与 Native 化加壳的区别 :
- 函数抽取 : 没有将函数 Java 代码转为 Native 代码 , 函数体无效 ;
- VMP 加壳 : 将函数 Java 代码转为 Native 代码 ;
- Dex2C 加壳 : 将函数 Java 代码转为 Native 代码 ;
如果函数是 非 Native 函数 , 并且 函数体 无效 , 说明这是 函数抽取 加壳 ;
如果函数是 Native 函数 , 说明这是 VMP 加壳 或者 Dex2C 加壳 ;
2、VMP 加壳与 Dex2C 加壳的区分
VMP 壳的核心原理是 Dalvik 解释器 , 对于每个 VMP 保护的函数来说 , 都有一个 VMP 解释器 ; 只有一个解释器 , 所有的函数共享这个解释器 ; 这样就导致了 每个函数的逻辑都很相似 ;
函数的注册地址相同 ;
Dex2C 壳对每个 Java 函数进行词法句法分析 , 生成对应的 C 代码 , 然后编译成 so 动态库 , 每个函数的内容都是不同的 ;
函数的注册地址不同 ;
VMP 加壳与 Dex2C 加壳的区分 :
函数的 注册地址相同 , 并且 函数逻辑相似 , 则使用的是 VMP 加壳 ;
函数的 注册地址不同 , 并且 函数逻辑不相似 , 则使用的是 Dex2C 加壳 ;
【Android 逆向】加壳技术识别 ( 函数抽取 与 Native 化加壳的区分 | VMP 加壳与 Dex2C 加壳的区分 )相关推荐
- Android逆向之旅---抖音短视频的Native注册混淆函数获取方法
一.静态分析 最近在小密圈中有很多同学都在咨询有时候有些应用的动态注册Native函数,在分析so之后发现找不到真的实现函数功能地方,我们知道有时候为了安全考虑会动态注册Native函数,但是如果只是 ...
- Android逆向writeup,【技术分享】春秋杯逆向第一题writeup
最近被春秋杯逆向题坑了两天,记录一下解题过程. 程序一运行,就弹个控制台窗口,啥也没有,拖进IDA看了才知道,是在等待用户输入验证的key: 程序的主框架很简单,就是一运行后初始化一些数据,等待用户输 ...
- 【Android 逆向】IDA 工具使用 ( 函数窗口 Function window | 创建引用图 Xrefs graph to | 创建调用图 Xrefs graph from )
文章目录 一.函数窗口 Function window 二.创建引用图 Xrefs graph to 三.创建调用图 Xrefs graph from 一.函数窗口 Function window 左 ...
- 【Android 逆向】加壳技术简介 ( 动态加载 | 第一代加壳技术 - DEX 整体加固 | 第二代加壳技术 - 函数抽取 | 第三代加壳技术 - VMP / Dex2C | 动态库加壳技术 )
文章目录 一.动态加载 二.第一代加壳技术 ( DEX 整体加固 ) 三.第二代加壳技术 ( 函数抽取 ) 四.第三代加壳技术 ( Java 函数 -> Native 函数 ) 五.so 动态库 ...
- Android APK加壳技术方案----代码实现
本文章由Jack_Jia编写,转载请注明出处. 文章链接:http://blog.csdn.net/jiazhijun/article/details/8746917 作者:Jack_Jia 邮 ...
- 抽取样本java实验报告_一个自定义classloader的函数抽取壳样本
原标题:一个自定义classloader的函数抽取壳样本 本文为看雪论坛文章 看雪论坛作者ID:lemn 本文为 看雪安卓高研2w班(7月班)优秀学员作品. 下面先让我们来看看学员的学习心得吧! 学员 ...
- Android扫名片图像识别技术SDK
Android扫名片图像识别技术SDK 一.Android扫名片图像识别技术应用背景 这些年,随着移动互联的发展,APP应用成爆发式的增长,在很多APP中都涉及到对名片信息的录入,如移动CRM.移动端 ...
- 【Android 逆向】Dalvik 函数抽取加壳 ( Dalvik 下的函数指令抽取与恢复 | dex 函数指令恢复时机点 | 类加载流程 : 加载、链接、初始化 )
文章目录 前言 一.Dalvik 下的函数指令抽取与恢复 二.dex 函数指令恢复时机点 1.dex 函数指令恢复 2.Android 源码中搜索 dexFindClass 函数 3.类加载流程 : ...
- 【Android 逆向】Dalvik 函数抽取加壳 ( 类加载流程分析 | Class.cpp#findClassNoInit 函数 | DexFile.cpp#dexFindClass 函数分析 )
文章目录 前言 一.Class.cpp#dvmDefineClass 函数分析 二.Class.cpp#findClassNoInit 函数分析 三.DexFile.cpp#dexFindClass ...
最新文章
- 小程序仿安卓动画滑动效果滑动动画效果实现
- 112. Leetcode 673. 最长递增子序列的个数 (动态规划-子序列问题)
- 再来一波PHP程序员必看书籍
- P7519-[省选联考 2021 A/B 卷]滚榜【状压dp】
- 安装 Nexus——war版本
- 微信云支付so seay
- 守夜人誓言+考研誓言
- B. Silly Mistake(模拟、思维)
- su: Authentication failure问题
- [渝粤教育] 西南科技大学 建筑CAD 在线考试复习资料
- STM32F1和F4的区别
- POWER BI里如何累计求和(一)
- jzoj4270. 【NOIP2015模拟10.27】魔道研究
- php算html语言吗,为何说PHP 是一种 HTML 内嵌式的语言
- SpringBoot之配置文件YML
- Spring Cloud Netfilx Eureka(服务发现工具)
- 彩票中奖java程序 随机30选7_写一个彩票程序:30选7
- TVP尖峰对话李开复沈春华:AI未来进行式与技术的发展
- libzip开发笔记(一):libzip库介绍、编译和工程模板
- 学习Shell的经典好书推荐
热门文章
- JAVA Builder模式构建MAP/LIST的示例
- Java parallel control
- 关于code reiview
- 对于python中的self,cls,decorator的理解
- 记录MNIST采用卷积方式实现与理解
- [BZOJ4553][TJOI2016HEOI2016]序列(CDQ分治)
- chrome浏览器插件开发经验(一)
- java web基础1Tomcat服务器基本知识
- iBatis整理——iBatis批处理实现(Spring环境)
- [导入]MsAjax Lib- Boolean.parse 函数