LLVM 简介、编译流程、CLion 调试

LLVM 项目概述 LLVM是于2002年创建的一个模块化和可重用的编译器和工具链技术的集合。它能够编译UNIX的内核,并用于漏洞挖掘。LLVM包括了多个核心组件,其中关键的包括: 核心库(LLVM Core) - 优化器 负责将源码优化到LLVM的中间语言(Intermediate Representation, IR)。 Clang LLVM的前端编译器,将C/C++代码编译...

发布于 Android 逆向

AndroidNativeEmu 调用 JNI 函数和模拟 Java 函数交互

AndroidNativeEmu 调用 JNI 函数和模拟 Java 函数交互 AndroidNativeEmu 是一个基于 Unicorn 引擎的 Android Native 函数模拟执行框架,用 Python 编写。它提供了比原生 Unicorn 更高级的抽象,能够模拟 JNI 环境、加载 SO 文件、调用导出函数等。与 Unidbg(Java 实现)相比,AndroidNative...

发布于 Android 逆向

Capstone、Unicorn、Keystone 工具的介绍

Capstone、Unicorn、Keystone 工具的介绍 在逆向工程和二进制分析领域,有三个基于同一技术体系的工具经常被配合使用:Capstone(反汇编引擎)、Unicorn(CPU 模拟器)和 Keystone(汇编引擎)。它们三者都基于 QEMU 的相关技术,分别覆盖了二进制分析中"反汇编→模拟执行→汇编"的完整链路。本文将详细介绍这三个工具的定位、功能和使...

发布于 Android 逆向

Frida 开发和调试环境搭建

前言 Frida 是一款开源的跨平台动态插桩工具,它可以在应用程序运行时注入自定义的 JavaScript 脚本,实现对函数调用的 Hook、参数修改、返回值篡改等操作。与 Xposed 不同,Frida 无需重启设备、无需安装框架,即插即用,且同时支持 Android、iOS、Windows、macOS 和 Linux 等多个平台。 在 Android 逆向工程中,Frida 已经成为最...

发布于 Android 逆向

Frida 构造数组、对象、Map 和类参数

为什么需要构造复杂参数 在 Android 逆向工程中,我们经常需要 Hook 某些关键函数来分析其行为,或者主动调用目标方法来获取结果。但很多 Java 方法的参数并不是简单的字符串或整数——它们可能是数组、自定义对象、Map、List 甚至枚举类型。如果我们想要在 Frida 脚本中正确调用这些方法,就必须学会如何在 JavaScript 环境中构造出符合 Java 类型系统要求的参数...

发布于 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 逆向

使用 Frida 增强 FART 脱壳能力

FART 的局限性分析 FART 作为首款 ART 环境自动化脱壳工具,虽然开创了系统级自动脱壳的先河,但在实际使用中存在一些局限性: 需要刷机 FART 原版的核心实现需要修改 Android 系统源码(AOSP)并重新编译为自定义 ROM,然后刷入目标手机。这一要求带来了几个问题: 设备受限:不是所有 Android 手机都支持刷入自定义 ROM,特别是搭载高通 Bootloade...

发布于 Android 逆向

FART & FRIDA,FART修复组件和辅助 VMP 分析

FART 与 Frida 的互补关系 FART 和 Frida 是 Android 逆向工程中两个极其重要的工具,它们在脱壳领域具有天然的互补关系。理解它们各自的优势和局限,以及如何将它们结合起来使用,能够大幅提升脱壳的效率和成功率。 FART 的优势与局限 FART 的优势: 系统级权限:FART 通过修改 AOSP 源码实现,运行在系统层面,拥有最高权限,可以访问虚拟机的所有内部数...

发布于 Android 逆向

FART 组件设计和源码分析

FART 架构设计概述 FART(First ART Unpack Tool)是第一个基于 ART 虚拟机源码修改的自动化脱壳工具,由作者非虫开发并开源。它通过修改 AOSP 源码,在 Android 系统层面对 DEX 加载过程进行拦截,实现了对抽取壳的全自动脱壳。 FART 的整体架构设计围绕三个核心模块展开:主动调用机制、DEX Dump 机制和 DEX 修复机制。这三个模块协同工作...

发布于 Android 逆向
1101112131417