星巡研究院

渗透视角下的二进制安全

### 静态 - 1 工具链 #### 1. 链路定位 * 在整册链路中的位置:静态分析入口,在不运行程序的前提下把机器码还原为可读结构。 * 作用:选对反汇编引擎,决定能否正确切分代码与数据。 #### 2. 前置知识 * 机器码字节流与指令边界。 * 线性扫描与递归下降两种反汇编策略。 * 反汇编(汇编文本)与反编译(高级语言)的层次差。 #### 3. 技术原理 * 基础工具 `objdump`/`readelf` 以线性扫描为主:从入口逐字节解码,遇数据混入易错位。高级工具(IDA Pro/Ghidra)用递归下降:从已知调用 / 跳转目标出发,沿控制流可达块解码,自动跳过嵌入数据,准确性更高但依赖可达性。反编译在反汇编之上重建 CFG 与类型。 * 线性扫描让位置决定指令边界:从入口逐字节顺序解码,解码器不区分代码与数据,遇到嵌在代码段中的跳转表、常量池、字符串立即数时,会把数据字节当作指令继续解码。一旦指令边界偏移,后续解码连锁错位,错误向下传播,直到下一个对齐点才可能恢复。其优点是覆盖全部字节、不遗漏可达与不可达代码,缺点是误判无法自愈。
这是进阶内容

升级理论包获取本册全部章节,从机器本质系统入门