通用代码反编译工具Reko介绍

Reko不仅包含核心反编译引擎和后端代码分析模块,而且还提供了用户友好的操作界面。目前,该工具提供了Windows GUI和ASP.NET后端。反编译引擎需要从前端获取用户的输入,可接受的输入为单独的可执行文件或反编译项目文件。Reko项目文件中还包含了代码文件的额外信息,来为研究人员的反编译操作或格式化输出提供帮助。在整个过程中,负责分析输入代码的主要是反编译引擎。

Reko的目标就是帮助用户在最小化操作交互的情况下,帮助用户完成对多种处理器架构和可执行文件格式的反编译处理。需要注意的是,很多软件许可证会禁止他人对该软件的机器码进行反编译或逆向分析,所以希望大家不要将本工具用于恶意目的。

工具下载和安装
运行下列命令下载Reko:

$ git clone git://github.com/uxmal/reko.git
Windows用户
在Windows平台上,首先需要安装下列依赖组件:

NETFramework 4.7.2:【下载地址】

下载好MSI文件之后,直接运行安装程序即可。

非Windows用户
如果你使用的不是Windows系统,那么你首先得安装下列依赖组件:

Monov5.14.0:【传送门】

安装好mono之后,你就可以直接从整合构建服务器下载源代码,或直接构建Reko源码来使用工具了。

工具下载好并完成环境配置之后,你就可以使用一款IDE或命令行来构建Reko-decompiler.sln文件了。如果你习惯使用IDE,推荐你Visual Studio 2017或MonoDevelop v5.10及以上版本。如果你习惯使用命令行,你可以使用下列命令:

msbuild Reko-decompiler.sln
工具使用
在Windows上,安装完成后会在开始菜单里创建一个“Reko Decompiler”快捷方式,你可以直接点击图标启动Reko客户端。

在非Windows系统上,你需要使用下列命令运行WindowsDecompiler.exe:

mono WindowsDecompiler.exe
运行命令行客户端
在Windows上,假设你已经把Reko的安装目录写到了PATH环境变量里,那你就可以直接在命令行中输入下列命令来使用工具了:

decompile some_binary_file.exe
在非Windows平台上,假设你已经把Reko的安装目录写到了PATH环境变量里,那你就可以直接在命令行中输入下列命令来使用工具了:

mono decompile some_binary_file.exe
使用Reko进行逆向分析
如果你对编程比较熟的话,你可以直接访问Reko对象模型。比如说,你想输出程序中已知操作进程的名称和地址的话,你可以这样写:

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);

        }

    }

}

}

南昌手牵手科技

猜你喜欢

转载自blog.csdn.net/aliyunc/article/details/89401330