• 我们在哪一颗星上见过 ,以至如此相互思念 ;我们在哪一颗星上相互思念过,以至如此相互深爱
  • 我们在哪一颗星上分别 ,以至如此相互辉映 ;我们在哪一颗星上入睡 ,以至如此唤醒黎明
  • 认识世界 克服困难 洞悉所有 贴近生活 寻找珍爱 感受彼此
第十二章:符号执行

第十二章:符号执行

12.1 概述 用“未知数(比如代数里的x、y)”代替真实数值去“模拟运行”程序,看所有可能的分支路径会得出什么结论。 12.1.1 符号执行与正常执行的对比 想象你在玩一个解谜游戏,游戏里有很多岔路,每条岔路门口有个守卫,他会根据你手里的钥匙(输入值)决定让不让你通过。 普通执行(具体执行): 你拿一把真的钥匙(比如 x=5, y=3)去试试,能通过就走……

第十一章:基于libdft 的动态污点分析

第十一章:基于libdft 的动态污点分析

11.1  libdft 简介 想象你之前要自己搭建整个厨房监控系统(DTA),而现在有了libdft——一个专业的”食品安全监控套装”! 11.1.1 libdft的内部结构 – “工具箱里有什么?” libdft工具箱包含四个核心组件: 1. 影子内存(标记映射)- “污染记录本&……

第十章:动态污点分析的原理

第十章:动态污点分析的原理

概述 10.1  什么是DTA DTA也称为数据流追踪(Data Flow Tracking,DFT)、污点追踪(taint tracking)或污点分析(taint analysis),是一种程序分析技术,用于分析所选程序状态对程序其他部分状态的影响。 追踪“污点”的传播路径。 看看这个不干净的东西最终会影响到哪里。 10.2  DTA 三步:污点源、污点……

第九章:二进制插桩

第九章:二进制插桩

9.1 概念 在代码任意位置插入自定义代码,实时监控或修改。 静态插桩:直接修改二进制代码,例如修改call,插入监控代码。 动态插桩:运行时插入代码,不修改原代码。 while program_running:     next_instruction = fetch()  # 获取下条指令      if is_monitor_point(n……