控制流和控制流图
控制流
winIPT
获取16进制数据包,fastcode
解析成对应PT包。
- PSB(Packet Stream Boundary): 心跳,定期生成(每4K),流中第一个数据包
- PIP(Paging Information Packet): 修改CR3寄存器
- TSC(Time-Stamp Counter): 追踪挂钟数据(包含软件可见时间戳计数器的某些部分)
- OVF(Overflow): 内部缓冲区溢出(丢弃的数据包)
- CBR(Core Bus Ratio):内核到总线时钟比率
- Control Flow
- TNT(Taken Not-Taken): 直接条件分支
- TIP(Target IP): 间接分支、异常和中断的目标地址
- Cycle Accurate Mode
- CYC: 提供处理器内核时钟周期相对于上一个测量的CYC数据包的经过时间(BroadWell上不可用)
- Timing
- MTC(Mini Timestamp Counter): 更频繁,基于CTC(Crystal ckock counter)值(8bit)。可进行频率调整。与TSC一起使用可以更低成本获取准确的时间戳。
[TSC → TMA → MTC, MTC, MTC → TSC]
。
- MTC(Mini Timestamp Counter): 更频繁,基于CTC(Crystal ckock counter)值(8bit)。可进行频率调整。与TSC一起使用可以更低成本获取准确的时间戳。
控制流图分析
反汇编
划分基本块
构建控制流图
数据流图可以存为二叉树(一个基本块最多跟两个基本块,顺序执行和跳转得到的块)。