Skip to content

Latest commit

 

History

History
82 lines (63 loc) · 3.8 KB

File metadata and controls

82 lines (63 loc) · 3.8 KB

📜 Day 1: 什么是逆向工程

📌 学习目标

✅ 理解什么是 逆向工程,并了解它的应用场景。
✅ 了解 逆向工程正向工程 的区别。
✅ 熟悉 软件逆向 的基础概念,如 静态分析动态分析
✅ 了解常见的逆向工具,并安装基本环境。


📖 知识点

1️⃣ 什么是逆向工程?

逆向工程(Reverse Engineering,简称 RE)是一种通过分析现有系统的结构、功能、实现原理,以理解其工作方式的过程。

🔹 逆向工程的本质是拆解和理解,它不仅适用于软件,也被广泛应用于硬件、网络协议、安全研究、AI 模型分析等

2️⃣ 逆向工程的应用场景

领域 应用
软件分析 逆向 APP、软件破解、逆向协议、API 调试
安全研究 恶意软件分析、漏洞挖掘、病毒分析、Web 安全测试
硬件分析 晶片分析、PCB 设计、物联网设备破解
AI 逆向 AI 模型解析、权重提取、推理优化
游戏逆向 游戏外挂开发、资源提取、网络封包分析

🌟 案例 1:软件破解

  • 你下载了一款付费应用,但是没有购买权限。你可以通过逆向工程分析其验证逻辑,并尝试绕过它。

🌟 案例 2:协议分析

  • 某 APP 仅支持官方客户端访问 API,你可以通过逆向分析其 API 结构,然后自己编写代码调用它。

3️⃣ 逆向工程 vs. 正向工程

正向工程 逆向工程
思维方式 设计并构建 拆解并分析
目标 从 0 到 1 开发产品 理解已有产品
应用场景 软件开发、系统设计 破解、漏洞挖掘、优化
工具 IDE(VS Code、Android Studio) 反编译工具、调试器

4️⃣ 静态分析 vs. 动态分析

静态分析 动态分析
方式 直接查看文件代码、结构 运行程序,监控行为
工具 反编译工具(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 逆向工具

📌 推荐阅读


🔥 任务完成后,你将掌握: ✅ 逆向工程的核心概念
✅ 逆向工程 vs. 正向工程的区别
✅ 基础工具安装与使用

🚀 下一步(Day 2)Android 逆向的历史与发展 🎯