控制流和控制流图
控制流
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一起使用可以更低成本获取准确的时间戳。
 
控制流图分析
反汇编
划分基本块
构建控制流图
数据流图可以存为二叉树(一个基本块最多跟两个基本块,顺序执行和跳转得到的块)。