FART 中的脱壳点选择和分析

前言 在前面的文章中,我们已经了解了 FART 的整体使用场景和脱壳流程。然而,FART 之所以能够高效地完成脱壳,核心在于它选择了恰到好处的"脱壳点"——即 DEX 文件在内存中被解密完成、但尚未被系统做进一步处理的那个瞬间。 本文将深入分析 FART 在 Dalvik 和 ART 两个运行时下分别选择了哪些脱壳点,这些脱壳点各自的优缺点是什么,以及在实际对抗不同壳时...

发布于 Android 逆向

FART 使用场景和流程分析

FART 简介 FART(First Android Unpack Tool)是由安全研究员归零(GitHub ID:hanbinglengyue/FART)开源的一款基于 ART 虚拟机的自动化脱壳工具。与传统的内存 dump 方案不同,FART 选择在 ART 的类加载流程中主动介入,通过系统级 hook 实现对加密 DEX 的完整还原。 项目开源地址:https://github.c...

发布于 Android 逆向

不同代的壳和加壳技术

前言 在 Android 逆向工程中,"加壳"是最常见的应用保护手段。所谓"壳",就是在原始 APK 外层包裹一层加密或混淆逻辑,使得攻击者无法直接通过 jadx、apktool 等工具反编译出真实的业务代码。随着攻防对抗的升级,加壳技术经历了从简单到复杂、从用户态到内核态的多次迭代。 本文将系统梳理五代壳的核心原理、代表产品及对应的脱壳思路,帮助你...

发布于 Android 逆向

加壳 APP 运行流程和原理

前言 在 Android 逆向工程中,「加壳」是一种常见的 APP 保护手段。加壳的核心思想是:将原始的 DEX 文件加密后藏起来,用一段壳程序替代它运行,在运行时再将真实 DEX 解密并加载到内存中。理解加壳 APP 的运行流程,是后续学习脱壳技术的基础前提。 本文将从 APK 文件结构出发,对比正常 APP 与加壳 APP 的启动差异,逐步拆解壳程序的运行机制。 APK 文件结构回顾...

发布于 Android 逆向

在 ART 下抽取壳的实现

什么是抽取壳 在 Android 安全领域,抽取壳(Extraction Packer) 是一种常见且经典的加固方案。它的核心思想非常直观——把 DEX 文件中每个方法的字节码(机器指令)"抽走",只留一个空壳。当应用运行时,壳程序再将这些字节码动态地填回原位,使程序能够正常执行。 具体来说,抽取壳会: 解析 classes.dex,找到每个方法对应的 code_it...

发布于 Android 逆向

逆向分析和脱壳的意义

前言 Android 系统的开放性使其成为全球使用最广泛的移动操作系统,同时也成为安全研究的重要战场。随着移动应用安全防护技术的不断升级,加壳(加固)技术已经成为行业标配。对于安全从业者而言,理解逆向分析和脱壳的意义,是深入 Android 安全领域的必经之路。 本文将从实际应用场景出发,系统讲解逆向分析的价值、加壳技术的现状、脱壳的核心意义,以及如何将脱壳融入到完整的逆向流程中。 为什...

发布于 Android 逆向

2026-10-20

发布于 

OLLVM 指令替换与分割基本块

前言 在之前的文章中我们介绍了 OLLVM 控制流平坦化的原理与实现。除了控制流平坦化之外,OLLVM 还提供了两个同样重要的混淆 Pass:指令替换(Instruction Substitution,-sub)和分割基本块(Block Splitting,-spl)。这两个 Pass 的核心目标各不相同——前者让每条指令变得"面目全非",后者让代码结构变得"...

发布于 Android 逆向

Unicorn 工具的入门和实际使用

Unicorn 工具的入门和实际使用 Unicorn 是一个开源的跨平台 CPU 模拟器框架,基于 QEMU 二进制翻译技术构建,支持 ARM、ARM64、x86、x64、MIPS、PowerPC、SPARC 等多种 CPU 架构。它是逆向工程、安全研究、恶意代码分析等领域中非常重要的工具之一。本文将从基础概念入手,详细介绍 Unicorn 的实际使用方法。 Unicorn 引擎架构 U...

发布于 Android 逆向

Unicorn 模拟调用 SO 文件和 JNI 接口函数,包括 JNI_OnLoad

Unicorn 模拟调用 SO 文件和 JNI 接口函数,包括 JNI_OnLoad 在 Android 逆向工程中,很多时候我们需要在不依赖真机的情况下分析 SO 文件中的算法逻辑。Unicorn 作为一个轻量级的 CPU 模拟器框架,提供了底层的指令模拟能力。本篇将介绍如何使用 Unicorn 引擎加载 SO 文件、模拟 ARM 环境、调用 JNI_OnLoad 以及处理 JNI 接口...

发布于 Android 逆向
1…89101112…19