关于Gtirb
Gtirb是一款针对二进制代码与数据的分析转换工具,同时也是一款机器代码分析和重写数据结构的工具。它旨在促进执行二进制反汇编、分析和转换,并且支持以良好格式输出程序之间的二进制IR通信。
Gtirb以 LLVM-IR 为模型,旨在提供类似的功能,即鼓励工具之间的通信和互操作性。
功能结构
Gtirb的结构如下,实线表示继承。虚线表示通过 UUID 引用:
工具要求
CMake v3.10.0+
Protobuf v3.0.0+
Boost v1.67+
Gtirb支持在Windows 和 Ubuntu 20 上 轻松安装,并提供了公共Docker镜像。
工具安装
Python API
可以使用 pip 从 PyPI 安装最新的稳定 GTIRB Python API:
pip install gtirb
或从预先构建的轮子中安装最新的不稳定版本的 Python API:
pip install https://download.grammatech.com/gtirb/files/python/gtirb-0.dev-py3-none-any.whl
Windows
Windows 版本打包为 .zip 文件,可点击【这里】获取。
Ubuntu
Ubuntu 20 的软件包可在 GTIRB apt 存储库中找到,可以按照以下说明进行安装。
首先,添加 GrammaTech 的 APT 密钥:
wget -O - https://download.grammatech.com/gtirb/files/apt-repo/conf/apt.gpg.key | apt-key add -
接下来更新 sources.list 文件:
echo "deb [arch=amd64] https://download.grammatech.com/gtirb/files/apt-repo [distribution] [component]"| sudo tee -a /etc/apt/sources.list
最后更新您的包数据库并安装核心Gtirb工具:
sudo apt-get update sudo apt-get install gtirb-pprinter ddisasm
代码构建
Gtirb的 C++ API 应该能够使用支持至少 C++17 的 GCC、Clang 和 Visual Studio 编译器在 64 位系统中成功构建。Gtirb使用 CMake,必须至少安装 3.10 版本。
常见的构建过程如下:
mkdir build cd build # Note: You may wish to add some -D arguments to the next command. See below. cmake <path/to/gtirb> cmake --build . # Run the test suite. ctest
为了定制 Gtirb构建,您可以通过导航到构建目录并运行来获取定制选项列表:
cmake -LH
工具使用
Python应用程序
安装协议缓冲区编译器(protoc)。如果还没有安装 Python protobuf 库,请安装它。
$ pip install protobuf
在专用目录中生成 Python 消息定义(例如python/)。
$ mkdir -p python $ for f in src/proto/*.proto; do protoc -Isrc/proto --python_out=python $f done
编写应用程序。确保它导入了IR_pb2或您需要的部分。
运行应用程序,确保包含您的消息定义的目录位于PYTHONPATH.
Java应用程序
安装协议缓冲区编译器(protoc),protobuf可以点击【这里】获取,并保存到合适的位置。
在专用目录中生成 Java 消息定义(例如 java/):
$ mkdir -p java $ for f in src/proto/*.proto; do protoc -Isrc/proto --java_out=java $f done
编译 Java 消息定义:
$ mkdir -p java/classfiles $ CLASSPATH=<path/to/protobuf_jar> javac -d java/classfiles java/proto/*.java
编写应用程序,确保它从proto包中导入需要的所有类。
编译并运行应用程序即可。
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
Gtirb:【GitHub传送门】
参考资料
https://grammatech.github.io/gtirb/
https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)