Concolic Exection 的执行流程
(1)配置temu中的tracecap文件(/ini/main.ini),对一些关键操作进行设置,如何时开始记录指令到trace文件中
(1)在temu的guest os中加载目标程序(exe),生成.trace文件。.trace文件中记录着一条执行的路径,但是用二进制机器码的形式记录的,人工是不可读的,可以用vine下的工具把trace文件翻译成汇编并在控制台显示(~bitblaze/vine-1.0/trace_utils/trace_reader -traceexamples/five.trace | grep T1)
(2)用vine下的trace工具对.trace文件进行处理,生成.il/.wp/.stp文件(~bitblaze/vine-1.0/trace_utils/appreplay -traceexamples/five.trace -stp-out five.stp-ir-out five.il -wp-out five.wp )。其中,.il文件时中间语言文件,具有可读性。.stp文件是stp求解器的目标文件,其语法遵循stp官方文档的规范(http://people.csail.mit.edu/vganesh/STP_files/stp-docs.html),同样具有可读性。.wp文件是。。。
(3)迭代对.il文件进行取反,生成新的可执行路径及其对应的.il/.stp文件,每一个.il文件对应一条可执行路径,直到所有可执行路径遍历完成为止。
(4)对所有stp文件,分别调用~bitblaze/vine-1.0/stp/stp程序,对.stp文件进行求解,生成完整的测试输入,覆盖所有的可执行路径;