1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2017年5月21日 |
---|
#7 in #decompiler
140KB
3K SLoC
包含 (DOS exe, 76KB) tests/samples/pe-hello.exe
retdec-rust
一个Rust库和工具,通过它们的公共 REST API 提供对 retdec.com 反编译服务的便捷访问。
您可以将库集成到自己的工具中
extern crate retdec;
use retdec::{Decompiler, DecompilationArguments, File, Settings};
let decompiler = Decompiler::new(
Settings::new()
.with_api_key("YOUR-API-KEY")
);
let mut decompilation = decompiler.start_decompilation(
DecompilationArguments::new()
.with_input_file(File::from_path("hello.exe")?)
)?;
decompilation.wait_until_finished()?;
let output_code = decompilation.get_output_hll_code()?;
print!("{}", output_code);
或者您可以使用提供的工具进行独立的反编译
$ decompiler -k YOUR-API-KEY hello.exe
无论哪种方式,您都会得到反编译的C代码
//
// This file was generated by the Retargetable Decompiler
// Website: https://retdec.com
// Copyright (c) 2017 Retargetable Decompiler <[email protected]>
//
int main(int argc, char ** argv) {
printf("Hello, world!\n");
return 0;
}
此外,该软件包还提供了对 fileinfo 服务(二进制文件分析)的访问。
状态
目前,该软件包仅提供对 反编译 和 文件分析 服务的非常基本的支持。 更多功能的支持正在开发中。
目前支持的 retdec.com API 的概述可在此处找到 here.
安装
要将软件包包含到您的项目中以便将其用作库,请将以下行添加到您的 Cargo.toml
文件中
[dependencies]
retdec = "0.1.0"
如果您想使用开发版本(当前的 master
分支),请使用以下两行代替
[dependencies]
retdec = { git = "https://github.com/s3rvac/retdec-rust" }
如果您只想使用命令行工具(decompiler
,fileinfo
),请按以下方式安装项目
cargo install retdec
文档
自动生成的API文档在此处可用
贡献
欢迎贡献。注意
-
要生成API文档,请运行
cargo doc --lib --no-deps
-
要运行单元测试,请执行
cargo test --lib
-
要运行文档测试,请执行
cargo test --doc
-
要运行所有测试,包括集成测试,请执行
RETDEC_API_KEY=YOUR-API-KEY cargo test
注意:在运行集成测试之前,您需要将
RETDEC_API_KEY
环境变量设置为您的API密钥。集成测试与retdec.com
的API通信,因此需要一个有效的API密钥。
许可
根据您选择的以下任一项许可
- Apache License,版本 2.0,(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选。
从其他语言访问
如果您想从其他语言访问 retdec.com 反编译服务,请查看以下项目
- retdec-python - 用于从Python访问服务的库和工具。
- retdec-cpp - 用于从C++访问服务的库和工具。
- retdec-sh - 从shell访问服务的脚本。
依赖项
~13–22MB
~386K SLoC