🛠️ MCP逆向·Ghidra
30章 实战
⚡ 友好色系
01
MCP协议概述
协议定义 · 物联网场景 · 协议栈架构
02
MCP数据包结构
帧头/帧尾 · 数据域 · 校验域
03
逆向环境搭建
虚拟机 · Wireshark · 串口监听
04
Ghidra基础入门
安装配置 · 创建项目 · 导入二进制
05
Ghidra反汇编引擎
反汇编选项 · 函数识别 · 交叉引用
06
MCP固件提取
Flash提取 · 加密与解密初步
07
固件加载到Ghidra
地址重定位 · 基址设置 · 内存映射
08
关键函数定位
字符串搜索 · API追踪 · 中断向量表
09
数据包解析函数逆向
处理函数识别 · 参数传递分析
10
状态机逆向
状态枚举 · 状态转换表分析
11
加密算法识别
常见算法特征 · S盒/常数表
12
CRC校验逆向
算法识别 · 多项式提取 · 校验还原
13
Ghidra脚本编写基础
Python脚本接口 · API调用
14
Ghidra脚本实战
批量提取字符串 · 自动标注结构
15
会话建立过程逆向
握手包 · 会话密钥协商
16
心跳机制逆向
心跳包格式 · 超时重传逻辑
17
数据重传机制逆向
序列号管理 · ACK/NACK处理
18
多路复用逆向
通道ID分配 · 数据包路由
19
安全机制逆向
身份认证 · 数据加密 · 防重放
20
固件更新流程逆向
固件包格式 · 签名验证 · 烧录
21
调试接口逆向
UART调试口 · JTAG/SWD分析
22
日志系统逆向
日志级别 · 输出函数 · 格式化
23
配置管理逆向
参数存储 · 读取 · 修改逻辑
24
错误处理逆向
错误码 · 异常流程 · 看门狗
25
硬件交互逆向
GPIO · SPI/I2C · 定时器
26
协议模拟器构建
编写模拟器 · 测试用例设计
27
Fuzz测试
Ghidra Fuzz框架 · 漏洞挖掘
28
补丁分析
固件版本对比 · 补丁定位 · 漏洞修复
29
逆向报告撰写
报告结构 · 关键发现 · 技术细节
30
综合实战
从零逆向真实MCP固件