⚙️ 思科固件逆向·硬件驱动
30章实战
🔧 自定义硬件 · 深度逆向
01
逆向工程导论
固件逆向
思科硬件生态
自定义驱动特殊性
法律与道德边界
02
环境搭建与工具链
Linux逆向工作站
Ghidra/IDA Pro
Binwalk
串口调试
03
固件获取与初步分析
Flash芯片读取
TFTP/HTTP
加密压缩识别
Binwalk解包
04
文件系统解析
Squashfs/JFFS2
UBIFS
挂载提取
startup-config
05
CPU架构与指令集基础
MIPS vs ARM
MIPS64/PowerPC
调用约定
栈帧分析
06
静态分析入门
Ghidra反编译
函数识别
交叉引用
字符串定位
07
动态分析基础
QEMU用户态
GDB调试
断点/内存转储
模拟陷阱
08
硬件驱动模型概述
Linux内核驱动
IOS/IOX接口
PCI/PCIe枚举
MMIO/I/O
09
设备树与硬件抽象层
Device Tree
平台数据
寄存器映射
中断控制器
10
驱动入口点分析
module_init/probe
驱动注册
PCI ID表
OF Match
11
MMIO寄存器逆向
基地址获取
偏移与位域
Ghidra脚本
以太网MAC
12
DMA引擎逆向
描述符结构
环形缓冲区
DMA中断
数据包收发
13
中断处理机制
IRQ映射
ISR定位
tasklet/workqueue
网卡中断
14
PHY芯片驱动逆向
IEEE 802.3
MDIO/MDC
PHY probe
型号识别
15
I2C/SPI总线驱动
I2C控制器
SPI控制器
从设备地址
温度传感器
16
GPIO与LED控制
GPIO寄存器
复用功能
LED触发
心跳灯逻辑
17
Flash与存储驱动
SPI Flash
NAND Flash
坏块管理
读写函数
18
时钟与定时器
时钟源/PLL
定时器寄存器
HRTIMER
系统滴答
19
电源管理驱动
PMIC通信
电压调节
休眠唤醒
PoE供电
20
加密引擎驱动
硬件加速器
描述符链
密钥管理
IPsec卸载
21
数据平面加速
NPU交互
流分类/转发
硬件ACL
ACL匹配
22
驱动与用户态通信
ioctl命令码
procfs/sysfs
netlink
CLI后端
23
固件补丁与修改
二进制补丁
函数Hooking
驱动参数修改
支持新硬件
24
驱动重编译与加载
源码框架提取
交叉编译
内核模块
自定义驱动
25
调试与日志分析
printk
动态调试
JTAG
定位驱动bug
26
安全漏洞挖掘
缓冲区溢出
整数溢出
格式化字符串
经典漏洞模式
27
漏洞利用与缓解
ROP链
内核提权
KASLR/CFI
PoC触发
28
实战:思科PoE驱动
固件提取
驱动流程图
寄存器分析
控制逻辑还原
29
实战:路由器WIFI驱动
PCIe枚举
Firmware加载
MAC/PHY配置
逆向实战
30
课程总结与进阶方向
知识体系回顾
开源社区
eBPF/Rust驱动
未来趋势