✅ 理解什么是 逆向工程,并了解它的应用场景。
✅ 了解 逆向工程 与 正向工程 的区别。
✅ 熟悉 软件逆向 的基础概念,如 静态分析 和 动态分析。
✅ 了解常见的逆向工具,并安装基本环境。
逆向工程(Reverse Engineering,简称 RE)是一种通过分析现有系统的结构、功能、实现原理,以理解其工作方式的过程。
🔹 逆向工程的本质是拆解和理解,它不仅适用于软件,也被广泛应用于硬件、网络协议、安全研究、AI 模型分析等。
| 领域 | 应用 |
|---|---|
| 软件分析 | 逆向 APP、软件破解、逆向协议、API 调试 |
| 安全研究 | 恶意软件分析、漏洞挖掘、病毒分析、Web 安全测试 |
| 硬件分析 | 晶片分析、PCB 设计、物联网设备破解 |
| AI 逆向 | AI 模型解析、权重提取、推理优化 |
| 游戏逆向 | 游戏外挂开发、资源提取、网络封包分析 |
🌟 案例 1:软件破解
- 你下载了一款付费应用,但是没有购买权限。你可以通过逆向工程分析其验证逻辑,并尝试绕过它。
🌟 案例 2:协议分析
- 某 APP 仅支持官方客户端访问 API,你可以通过逆向分析其 API 结构,然后自己编写代码调用它。
| 正向工程 | 逆向工程 | |
|---|---|---|
| 思维方式 | 设计并构建 | 拆解并分析 |
| 目标 | 从 0 到 1 开发产品 | 理解已有产品 |
| 应用场景 | 软件开发、系统设计 | 破解、漏洞挖掘、优化 |
| 工具 | IDE(VS Code、Android Studio) | 反编译工具、调试器 |
| 静态分析 | 动态分析 | |
|---|---|---|
| 方式 | 直接查看文件代码、结构 | 运行程序,监控行为 |
| 工具 | 反编译工具(jadx, Ghidra) | 调试器(Frida, GDB, LLDB) |
| 优势 | 快速分析,避免触发反调试 | 真实运行环境,动态观察 |
| 劣势 | 有时无法直接看到运行逻辑 | 可能触发反调试保护 |
1️⃣ 安装基本逆向工具
🔹 下载并安装 jadx(反编译 APK),分析 classes.dex 结构。
🔹 安装 Frida(Hook 工具),尝试 Hook 一个简单的 Python 脚本。
🔹 安装 Ghidra / IDA Free,打开并查看一个 ELF 文件。
2️⃣ 分析一个简单 APK
- 下载任意 APK 文件(如
Calculator.apk)。 - 使用
jadx反编译该 APK,查看MainActivity.java代码。
📌 Android 逆向工具
jadx:https://github.com/skylot/jadxFrida:https://frida.reGhidra:https://ghidra-sre.orgAPKTool:https://github.com/iBotPeaches/Apktool
📌 推荐阅读
- 《Android 软件安全与逆向分析》
- 《The Art of Reverse Engineering》
- 逆向工程博客:https://reverseengineering.stackexchange.com
🔥 任务完成后,你将掌握:
✅ 逆向工程的核心概念
✅ 逆向工程 vs. 正向工程的区别
✅ 基础工具安装与使用
🚀 下一步(Day 2):Android 逆向的历史与发展 🎯