Reko是一款开源的反编译工具,采用C#开发。它可以帮助研究人员对机器码进行反编译处理,支持多种处理器架构和可执行文件格式。该工具包含核心反编译引擎和后端代码分析模块,并提供了用户友好的操作界面。目前,Reko提供了Windows GUI和ASP.NET后端。
使用Reko时,需要从前端获取用户的输入,可以接受单独的可执行文件或反编译项目文件作为输入。Reko项目文件中还包含了代码文件的额外信息,以便为研究人员的反编译操作或格式化输出提供帮助。在整个过程中,主要负责分析输入代码的是反编译引擎。
需要注意的是,很多软件许可证会禁止他人对该软件的机器码进行反编译或逆向分析,因此请不要将本工具用于恶意目的。
如果你想使用Reko,可以通过以下步骤下载和安装:
1. 运行下列命令下载Reko:
```
$ git clone git://github.com/uxmal/reko.git
```
2. 对于Windows用户,首先需要安装下列依赖组件:
- NETFramework 4.7.2(下载地址)
- 下载好MSI文件之后,直接运行安装程序即可。
3. 对于非Windows用户,你需要安装下列依赖组件:
- Monov5.14.0(传送门)
- 安装好mono之后,你就可以直接从整合构建服务器下载源代码,或直接构建Reko源码来使用工具了。
4. 下载好并完成环境配置后,你可以使用一款IDE或命令行来构建Reko-decompiler.sln文件。推荐使用Visual Studio 2017或MonoDevelop v5.10及以上版本作为IDE,或者使用命令行:`msbuild Reko-decompiler.sln`。
在Windows上,安装完成后会在开始菜单里创建一个“Reko Decompiler”快捷方式,你可以直接点击图标启动Reko客户端。在非Windows系统上,你需要使用下列命令运行WindowsDecompiler.exe:`mono WindowsDecompiler.exe`。
Reko是一款功能强大的通用代码反编译工具,它采用C#开发。如果你对编程比较熟的话,你可以直接访问Reko对象模型。比如说,你想输出程序中已知操作进程的名称和地址的话,你可以这样写:
```csharp
using Reko;
using Reko.Core;
class DumpProcedures {
public static int Main(string [] args) {
var dec = DecompilerDriver.Create();
if (!dec.Load("myfile.exe"))
return -1;
dec.ScanPrograms();
foreach (var program indec.Project.Programs) {
foreach (var entry in program.Procedures){
Console.Write("Address{0}, procedure name {1}", entry.Key, entry.Value);
}
}
}
}
```
参考资料: