这篇博客只是简单记录和吐槽一下。Datalog Disassembly发表于USENIX Security 2020。GitHub repo是:GitHub - GrammaTech/ddisasm: A fast and accurate disassembler
看到其repo上说
Pre-built packages are available to install ddisasm on Windows or Ubuntu.
See the GTIRB readme for details.
所以想试一下怎么通过安装这个GTIRB来安装Datalog Disassembly:GitHub - GrammaTech/gtirb: Intermediate Representation for Binary analysis and transformation
按照上面这个链接的介绍,要在Ubuntu 20.04安装,实际上很简单:
wget -O - https://download.grammatech.com/gtirb/files/apt-repo/conf/apt.gpg.key | apt-key add -
echo "deb https://download.grammatech.com/gtirb/files/apt-repo focal stable"| sudo tee -a /etc/apt/sources.list
- sudo apt-get update
- sudo apt-get install libgtirb gtirb-pprinter ddisasm
但当我运行了第一步,就会报错:
正在解析主机 download.grammatech.com (download.grammatech.com)... E: This command can only be used by root.
52.55.10.209
正在连接 download.grammatech.com (download.grammatech.com)|52.55.10.209|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 2456 (2.4K) [application/pgp-keys]
正在保存至: “STDOUT”- 0%[ ] 0 --.-KB/s 用时 0s
无法写入 “-” (成功)。
我也没有仔细看这个原因,难道是因为没有以root运行? 切换成root之后(参考这里:ubuntu怎么切换到root用户,切换到root账号方法_@红@旗下的小兵的博客-CSDN博客_切换root)果然就可以了(注意,如果用sudo是不能代替这里的root用户的)。呵呵呵,觉得大家写这些步骤的时候都太不用心了,不知道ubuntu一般并不以root账号运行吗?
另外一种解决方法是,当报了下面的错后:
错误:5 https://download.grammatech.com/gtirb/files/apt-repo focal InRelease
由于没有公钥,无法验证下列签名: NO_PUBKEY EE667DBA5CF2A4BC
参考网友的方法:由于没有公钥,无法验证下列签名 :NO_PUBKEY 的解决方法_Half_A的博客-CSDN博客_由于没有公钥,无法验证下列签名:
手动加入这个key:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EE667DBA5CF2A4BC
然后后面就可以正常安装了。所以还是想吐槽一下,我很少很少能看到readme写得贴心完整的,往往是各种bug,各种猜测,不得不说很多人做事都太不细心了。