BAP可以分别对PIN和TEMU等生成的TRACE文件进行分析。前一篇文章对PIN生成的TRACE文件做了简单的介绍,这一篇理清下对TEMU等动态分析工具生成TRACE文件的认识。
1、文件头(TraceHeader)
typedef struct _trace_header {
unit32_t magicnumber; //幻数
unit32_t version; //版本
unit32_t n_proc; //进程号????
unit32_t gdt_base; //全局描述表的基地址
unit32_t idt_base; //中断描述表
} TraceHeader;
2、实体头(entry_header)
typedef struct _entry_header {
unit32_t address; //指令在内存中的地址
unit32_t tid; v //线程标示
unit16_t inst_size; //x86指令的字节数
unit8_t num_operands; //操作数,ESP指令除外
unit32_t eflags; //标志寄存器
unit32_t cc_op; //QEMU执行的操作
unit32_t df; //直接寄存器
unit32_t hflags;
unit32_t aldt;
unit32_t agdt;
unit32_t atr;
unit32_t aidt;
operandVal oper;
OperandVal operand[MAX_NUM_OPERANDS];
OperandVal memregs[MAX_NUM_MEMREGS][MAX_NUM_MEMREGS]; //
OperandVal rawbyte[MAX_INST_BYTES]; //x86指令的原始字节。
unsigned char rawbytes[MAX_INST_BYTES]; //x86指令的原始字节。字符表示
}EntryHeader;
转载于:https://blog.51cto.com/upkevin/789820