Frida Hook Java 的高级用法

Hook 构造函数 构造函数在 Java 中用 <init> 表示,是对象创建时的入口。通过 Hook 构造函数,我们可以在对象初始化之前或之后拦截和修改数据。 基本构造函数 Hook Java.perform(function () { var User = Java.use("com.example.app.model.User");...

发布于 Android 逆向

Frida 辅助分析 OLLVM 字符串加密和控制流平坦化

OLLVM 字符串加密原理 在 Android 逆向分析中,字符串是最重要的信息载体之一。APP 中的 API 地址、密钥、URL、调试信息等通常以明文字符串的形式存在于 SO 文件中。OLLVM 的字符串加密 pass(String Encryption)通过在编译时将字符串加密为密文,在运行时通过解密函数还原,有效防止了静态分析。 编译时加密 OLLVM 的字符串加密在 LLVM I...

发布于 Android 逆向

Frida 辅助分析 OLLVM 指令替换和虚假控制流程

OLLVM 指令替换概述 OLLVM(Obfuscator-LLVM)是目前 Android Native 代码混淆中最流行的工具之一。其中"指令替换"(Instruction Substitution)是其核心混淆手段之一,它将简单的算术和逻辑运算替换为数学上等价但更复杂的表达式,极大地增加了逆向分析的难度。 指令替换的基本原理 指令替换的核心思想是:利用数学等价关...

发布于 Android 逆向

Ida Trace 分析 非标准算法 和 OLLVM混淆的非标准算法

IDA Trace 功能介绍 IDA Pro 的 Trace 功能是分析复杂算法和混淆代码的强大工具。与简单的断点调试不同,Trace 能够记录一段时间内指令的完整执行序列,包括每条指令的地址、寄存器值、内存读写等信息,为分析提供全局视角。 Trace 的类型 IDA Pro 提供多种 Trace 模式: Trace 类型 记录内容 适用场景 指令 Trace 每条执行过的...

发布于 Android 逆向

使用 Frida Stalker 追踪算法实现

Frida Stalker 工作原理 Frida Stalker 是 Frida 框架中最强大的代码追踪工具,它能够在运行时对任意线程的代码执行进行实时的、指令级别的追踪。与 Interceptor 只能在函数入口和出口设置钩子不同,Stalker 可以追踪目标线程执行的每一条指令,记录完整的执行路径。 核心机制 Stalker 的工作原理可以概括为以下几个步骤: 1. 线程劫持 ...

发布于 Android 逆向

结合 Frida 和 IDA Trace 分析算法

Frida 和 IDA 的各自优势与局限 在 Android Native 代码逆向分析中,Frida 和 IDA Pro 是两个最核心的工具。它们各自有不同的优势和局限,理解这些差异是制定高效分析策略的基础。 Frida 的优势与局限 优势: 实时动态分析,不需要修改 APK 文件 脚本热加载,即改即用,调试效率高 可以在任何时刻注入和 Hook,不受编译限制 Stalker 提供指...

发布于 Android 逆向

APP 加壳技术的分类与识别,动态加载与双亲委派模型

加壳技术概述 在 Android 逆向工程领域,"加壳"是指对 APK 中的 DEX 文件(Dalvik Executable,Android 的可执行字节码文件)进行加密、混淆或隐藏处理的技术。加壳的目的是保护原始代码不被静态分析和反编译,从而增加逆向分析的难度。理解加壳技术的分类和工作原理,是脱壳工作的前提条件。 一个典型的加壳流程如下:开发者将原始 APK 的 D...

发布于 Android 逆向

ART 和 Dalvik 下的 dex 加载流程及脱壳点

背景知识 Android 系统从 Dalvik 虚拟机演进到 ART(Android Runtime)虚拟机,DEX 文件的加载流程发生了显著变化。对于脱壳工作而言,理解两个运行时下的 DEX 加载全流程,是选择合适脱壳点的前提。Dalvik 运行时(Android 4.4 及之前)采用解释执行 + JIT 编译的方式,而 ART 运行时(Android 5.0 及之后)采用 AOT(Ah...

发布于 Android 逆向

FART 框架介绍,选择脱壳点

FART 框架概述 FART(First Android Unpack Tool,Android 第一款 ART 环境自动化脱壳机)是由安全研究员星痕(hanbinglengyue)开发的开源 Android 脱壳框架。FART 的出现填补了 Android 5.0(ART 运行时)环境下自动化脱壳工具的空白,在逆向工程社区中具有里程碑意义。 在 FART 之前,大多数脱壳工作依赖于手动操...

发布于 Android 逆向

FART 框架的修复组件与 VMP 还原

FART 脱壳后的 DEX 问题分析 FART 脱壳虽然能够自动 dump DEX 数据,但 dump 出来的结果并不总是完美的。根据目标应用使用的壳类型不同,脱壳后可能存在以下两类主要问题: DEX 文件不完整 某些壳程序(特别是新一代的加固方案)不会一次性将完整的 DEX 加载到内存中,而是按需加载——只有当某个类被实际使用时,才将其对应的 DEX 数据解密到内存。FART 在 Li...

发布于 Android 逆向