上一节一起学习了使用afl-gcc对有源码的程序如何插桩,并且插桩的机制,这一节我们来一起学习如何使用QEMU对没有源码的二进制程序进行插桩。
首先要运行build_qemu_support.sh这个脚本,这个时候如果有没安装pixman的错误的时候直接用apt安装即可。
apt-get install libpixman-1-dev
然后这个脚本是构建了一个linux系统的虚拟机并且存放在afl-qemu-trace这个文件中,在运行AFL的时候就直接加上-Q选项就可以了。
具体的怎么获取执行路径跟源码插桩类似,这里把插入的代码变成编译QEMU时使用的补丁,那么QEMU虚拟机内置的tracing部件就可以起到二进制插桩的作用。
这篇文章讲的很清楚