首先libdft是哥伦比亚大学二零一几年在Pin【二进制插桩平台】上开发的一个动态污点分析框架啊,年代已略微久远。
pin还好说,起码有个官方文档来学习【毕竟是Intel公司推出的,规范】,libdft我找了好久都没找到合适的学习资料【我就是个小菜鸡】,只能一步步摸索,真是一步一个坑,现在还没走出来,过来吐糟一下。
首先第一个问题:This version of libdft is for X86 only
呃呃,打开下图文件路径中的Makefile一看,哦,处理器架构的错。我当时虚拟机下的是Ubuntu的amd64,于是又重新去下了Ubuntu的X86版本【ubuntu-16.04.6-desktop-i386.iso】。貌似libdft只能处理32位的程序,如果需要处理64位,则需要大量的重写工作。
问题2:
在傻乎乎的复制粘贴了几个文件到相关文件下,我无能恼怒,到底要报错到什么时候才结束?原因是Libdft这个框架当时是基于老版本Pin开发的,我下载的Pin是最新版本的,有很多文件新老版本存放的位置都是不一致的,如下图:
所以在用Libdft时,会产生很多No such file or directory报错。额…解决办法是下载老版本pin-2.13。
===========================================
当然,如果你想和我一样摆烂,不想把太多时间花费在环境的搭建上,那你可以使用别人配置好的开发环境来使用libdft。
这个环境的开发作者是丹尼斯,他写了一本书叫《二级制分析实战》,我觉得不错(虽然有点难)。然后书的配套资源有配置好的Libdft环境。