📖 MIPS 固件逆向 · 实战手册

30章 从入门到实战
01
MIPS架构概述
MIPS历史、设计哲学、应用领域(路由器、IoT设备)、与ARM/x86的对比。
02
MIPS指令集基础
指令格式(R型、I型、J型)、寄存器约定($zero, $ra, $sp等)、寻址模式。
03
MIPS汇编基础
常用指令(add, sub, lw, sw, beq, j)、过程调用与栈帧、延迟槽。
04
固件逆向环境搭建
Ubuntu虚拟机、Ghidra安装与配置、binwalk、hexdump、file命令。
05
固件提取与识别
从Flash/路由器提取固件、binwalk解包、识别文件系统(SquashFS, JFFS2)。
06
固件头分析
固件头结构(Magic Number, 校验和, 入口点)、手动解析与脚本化解析。
07
Ghidra基础操作
创建项目、导入二进制、自动分析、反编译窗口、符号树、函数列表。
08
MIPS反汇编基础
Ghidra中MIPS反汇编视图、识别函数入口、数据引用与交叉引用。
09
MIPS函数调用约定
参数传递($a0-$a3)、返回值($v0)、栈帧布局、$ra保存与恢复。
10
MIPS延迟槽分析
延迟槽原理、在反汇编中识别延迟槽、延迟槽对控制流的影响。
11
固件中的字符串分析
字符串定位、交叉引用查找、识别配置参数与硬编码密码。
12
固件中的网络协议分析
识别HTTP/HTTPS服务、Telnet/SSH、UPnP、自定义协议。
13
固件中的加密算法识别
静态识别AES/RSA/MD5、查找S盒与常量表、定位密钥。
14
MIPS漏洞分析基础
缓冲区溢出原理、栈溢出、堆溢出、格式化字符串。
15
MIPS ROP链构造
ROP原理、Gadget查找、利用延迟槽构造ROP链。
16
固件后门分析
识别隐藏账号、硬编码Token、调试接口、未授权访问。
17
固件补丁对比分析
使用vbindiff/bindiff对比固件版本、定位补丁函数。
18
MIPS模拟执行
QEMU用户态模拟、系统态模拟、调试固件中的二进制。
19
GDB调试MIPS程序
GDB连接QEMU、设置断点、单步执行、查看内存与寄存器。
20
固件中的内核模块分析
识别.ko文件、分析内核驱动、ioctl命令处理。
21
MIPS架构下的ASLR与NX
理解MIPS的ASLR实现、NX位、绕过技术。
22
固件中的Web漏洞分析
命令注入、文件包含、CSRF、XSS在嵌入式设备中的利用。
23
MIPS架构下的堆利用
堆管理机制、堆溢出利用、tcmalloc/jemalloc分析。
24
固件中的UART调试接口
识别UART引脚、连接串口、获取Shell。
25
固件中的JTAG/SWD调试
JTAG原理、OpenOCD使用、读取Flash与内存。
26
固件签名与安全启动
签名验证流程、公钥提取、绕过安全启动。
27
MIPS架构下的侧信道分析
时序分析、功耗分析在固件逆向中的应用。
28
固件自动化分析工具
Firmadyne、FirmAE、EMUX、固件模拟框架。
29
实战案例:某路由器固件漏洞挖掘
从固件提取到漏洞发现的全流程。
30
实战案例:某IoT设备固件后门分析
从固件提取到后门利用的全流程。