Gtirb:一款针对二进制代码与数据的分析转换工具

2024-12-19 10 0

关于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

https://github.com/protocolbuffers/protobuf/releases


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

Matildapp:针对Web 3.0环境的网络安全与渗透测试框架
Jumpserver_decrypto: 解密 Jumpserver ssh配置的开源工具
向日葵远程控制软件远程代码执行漏洞复现(CNVD-2022-10270, CNVD-2022-03672)
Kafka UI三大RCE高危漏洞分析
PbootCMS V3.2.9前台SQL注入漏洞(上)
修复秘籍:如何有效应对CVE-2024-20767和CVE-2024-21216漏洞

发布评论