GreenHouse论文复现
考虑复现一下该工作
环境
- Ubuntu 20.04
- docker
Docker环境
使用清华源安装docker即可
设置docker build时的代理:
1 | docker build -t greenhouse --network host . |
修改Dockerfile内容:
1 | FROM m.daocloud.io/docker.io/library/ubuntu:20.04 |
Docker Build
进行编译,发现卡死在选择时区界面:
Dockerfile开头添加以下内容:
1 | RUN export DEBIAN_FRONTEND=noninteractive \ |
继续运行,发现报错:
1 | 135.9 INFO: pip is looking at multiple versions of archinfo to determine which version is compatible with other requirements. This could take a while. |
该issue说明了为archinfo更新,导致ubuntu20.04版本过低,先暂时注释掉该部分,后续build好后再补充
ChromeDriver下载错误,应该是以下命令拼接DRIVERVERSION失败,CHROMEVERSION修改为101.0.5112即可
angr环境配置
使用命令docker run -itd greenhouse创建容器,进入容器安装angr
将本地下载好的文件例如archinfo, pyvex, cle...等仓库(v9.2.55版本)复制到/angr-dev目录,然后运行之前注释的命令。
1 | $REPO: archinfo, pyvex, cle, claripy, ailment, angr, angr-doc, binaries |
注意一下capstone版本:
1 | pip3 install capstone==5.0.1 |
后面还有一个pyelftools,本地源码安装好后注释掉即可
至此环境搭建完成(不过后来发现其实提供了docker image的XD)
greenhouse复现
我们这里选择的手动运行Greenhouse,参考MANUAL.md
对应Artifact下载链接
也有相关的复现链接
运行以下命令导入image:
1 | 只执行一次: |
过程中可能遇到无法访问docker daemon的报错, 需要在容器中执行 usermod -aG docker root命令并重新启动容器.
这里参考文章里的华硕的固件模拟FirmAE在模拟时会出现卡死的问题。这里我又选择了之前提取过的一个信号放大器的固件,该固件内容比较简单。用来尝试验证效果。
似乎也会卡死。。。
参考链接
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Small Utopia!
评论