(翻译自README.md,并通过自己的实际操作情况重新整理了一遍)

笔者注:我已经成功地根据README.md下载了Release版本,也自己试了下从源码编译,跟着README都挺顺利的。如果操作过程中遇到问题,请留言。

Reko 简介

Reko (瑞典语: “适当的, 乐于助人的”) 是一个二进制文件的反编译器。

该项目可在GNU通用公共许可证下免费获得.

该项目具有图形界面,也可以直接通过命令行使用。前端使用ASP.NET
Reko项目文件包含有关二进制文件的其他信息,这些信息有助于反编译过程或者格式化输出。


ARM 二进制可执行文件的 Map view

ARM 二进制可执行文件的 Decompiled view

Reko追求的目标是在最小的用户干预下、对于各种各样的处理器结构和可执行文件格式都支持反编译。完整的支持列表请见网址Reko 支持的处理器和可执行文件格式

请注意,很多的软件证书禁止对它们的机器码二进制文件进行反编译器或者其他逆向工程。你只有拥有了合法的反编译权限才能使用这个反编译器(例如如果这个二进制文件是你自己的)。

1. 下载 Reko

官方的 Releases 每隔几个月就会在 GithubSourceForge上发布。

不想或无法自己生成Reko的用户,可以从Cirrus CI integration builder 或者 Github Actions integration builder下载二进制文件。

笔者下载的链接:windows_x64 0.10.2

当然,你想自己构建生成也是可以的,详见下文的Hacking部分。

2. 安装 Reko

安装Reko之前,必须先装NET 5.0:

如果需要开发Reko,并使用VS2019,则必须安装VS的C#组件。

3. 相关文档

想了解Reko的各种特性,你可以读 user’s guide.md | github。如果你对项目的内部工作原理感兴趣,请看 reko wiki

笔者注:国内镜像 user’s guide_(hub.fastgit.org)wiki (hub.fastgit.org)
为方便打开,之后的github内的链接一律直接使用镜像hub.fastgit,org,不做说明。

4. 获得帮助

你可以在 issue tracker | github 上报告你遇到的任何问题或者询问与Reko相关的任何问题。
你也可以试试 Reko 聊天室 Gitter.im。Reko 是靠志愿者在闲暇时自发构建的,所以有时候不会回复得特别及时。

笔者注:志愿者们回复得超级快。点赞!

5. 自己编译生成 Reko

想要构建生成reko,首先要clone源代码:git clone https://hub.fastgit.org/uxmal/reko.git。你可以用一个IDE或者命令行去构建解决方案文件Reko-decompiler.sln。Reko的构建生成需要.NET 5.0C# 9。如果你是一个IDE使用者,请用Visual Studio 2019的最新版。

①如果你想用命令行构建它,用下列命令(如果你下载了 msbuild的话):

msbuild -p:Configuration={config} -p:Platform={platform} -v:m -m Reko-decompiler.sln

注:将 {config} 替换为Debug 或者 Release, 将 {platform} 替换为 x64 或者 x86.
注:命令行编译方式容易出问题。不推荐。

笔者注:

  1. 这里的命令行指的是VS中的工具-命令行
  2. 注意不要删掉克隆的文件夹下的.git文件夹,否则可能出现MSB3073错误(如下图)。

②如果你不打算用命令行编译:双击src文件夹下的Reko-decompiler.sln工程文件,打开后,编译选项选择Release和x64(或其他),右键解决方案,选择重新生成解决方案,即可编译。

不能直接点击运行,否则会出现下图所示的错误:

Note: 如果你仍然不能编译,请告诉我们,我们会帮助你解决问题。如果你对贡献代码有兴趣,可以看看我们的开发路线图road map,看看可供探索的领域。我们的 Wiki 中有更多关于Reko内部工作原理的信息。请查阅 style guide

5.1 与 WiX 相关的 Warnings 或 Errors

如果你没有在你的开发机器上下载WiX工具集的话,你在VS中加载解决方案的时候将会收到warnings 或者 errors。如下图所示。

这个WiX工具集仅仅在你制造MSI安装包的时候被用到,如果你已经能够编译这个项目,你可以忽略这些错误——因为构建生成的过程会将所有必需的文件都复制到一个独立的目录下。

如果你真的想要用WiX工具链构建生成一个MSI安装器,你可以在这下载WiX工具:http://wixtoolset.org/releases/

5.2 与 VS 中的 CMake 相关的 Errors(这一节直接跳过吧我也没太明白说的啥)

你做了些什么之后,VS可能会重新构建生成依赖CMake的NativeProxy。你可以下载 CMake 并确保它被添加到你的环境变量PATH中,或者在VS中禁用这个工作(指重新生成NativeProxy)。

在VS中下好CMake已经足够去在Developer Command Prompt(笔者注:这是VS中的命令行工具)中运行msbuild了,但是可能还是无法在VS中成功地构建生成,除非你把CMake添加到你的环境变量PATH中。在VS外面下载CMake,可以让你在安装的时候将它添加到环境变量中。

5.3 编译后怎么打开 Reko ?

编译之后,src下的 Drivers文件夹包含了以用户界面为启动方式的可执行文件; WindowsDecompiler 文件夹包含了为 Windows用户提供的GUI客户端;CmdLine 文件夹下包含了一个命令行驱动程序。
点击Drivers文件夹,进入如下图的目录即可。

6. 版本说明

请在NEWS.md查看。


笔者注:下一篇看user’s guide

【笔记】reko 0.10.2 反编译工具安装和使用记录|(1) README.md的更多相关文章

  1. Myecplise反编译工具安装

    我使用的是Myecplise8.5 下载jad.exe文件jad158g.win.zip:http://varaneckas.com/jad/ 下载jadeclipse插件 net.sf.jadcli ...

  2. ubuntux下apk反编译工具安装

    1,下载dex2jar工具.(http://download.csdn.net/detail/u013647453/8286693) 2,下载jd-gui工具(http://jd.benow.ca/) ...

  3. .NET反编译工具 .net Reflector_8.3.0.95 下载激活

    在网上找了很久,很多地方都没有注册机,终于机缘巧合下找到了这个有注册机的反编译工具,放于百度网盘,供大家下载 里面有包含如何破解,不过此处也多做一次解释: 注:1.记得断开网络 2.至于杀毒软件,我没 ...

  4. .net混淆、反编译工具调查

    常用的工具列表[比较常见的] 混淆器.加密 Dotfuscator VS默认带的工具,不过是个社区版 强度不大 dotNET Reactor 使用了NativeCode 和混淆的形式 Xenocode ...

  5. 转--Android资源总结(环境搭建/ 反编译工具)

    在Android发展前景相当好的情况下,本人最近搜集了一些关于Android的相关资源,当然包含以前发布的博客内容,进行了一次大整合,希望对和我一样是Android的初学者管用,如在文章中有所错误,敬 ...

  6. 反编译工具 使用.NET JustDecompile来反编译你的程序代码

    原文地址:http://www.it165.net/pro/html/201310/7383.html 前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序 ...

  7. Java反编译工具Jad及插件JadClipse配置教程

    Jad是一个Java的一个反编译工具,和eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码. 下面介绍一下配置: 下载JadClipse,http: ...

  8. Atitit.java 反编译 工具  attilax 总结

    Atitit.java 反编译 工具  attilax 总结 1. 三大核心核心引擎——1 2. JAD  Jad  attitude推荐这个1 2.1. Jdec.2 2.2. 二. 源码开放的 J ...

  9. java反编译工具jad

    下好以后解压就可以用了,软件就只有一个exe文件和一个帮助文件.在众多的JAVA反编译工具中,有几种非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:FrontEnd Plus.mDeJav ...

  10. Myeclipse 反编译工具插件

    JadClipse是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高.可惜用起来不太方便.还好 找到myeclipse下的插件,叫JadClipse,安装好之后,只要双击.class文 ...

随机推荐

  1. C# Winform 当音频播放完成后,播放下一个音频,怎么知道音频有没有播放完成

    程序在预警时,会发出报警音,当报警音频播放时间,超过预警频率时,就会像我们打印文档一样,像打印机发送10次打印任务.当打出第1张纸的时候,这时候想取消打印.就不能在电脑端通过软件操作了.因此为了避免这 ...

  2. flutter-TextField垂直居中

    decoration: InputDecoration( contentPadding: EdgeInsets.symmetric(vertical: 0), // border: InputBord ...

  3. Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!

    Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来! 1. 优势介绍 Obsidian 是一款强大的本地知识管理软件,它像一个积木盒,让你用 Markdown 笔记 ...

  4. 使用Node.js打造交互式脚手架,简化模板下载与项目创建

    在上一篇文章中,我们探讨了如何构建一个通用的脚手架框架.今天,我们将在此基础上进一步扩展脚手架的功能,赋予它下载项目模板的能力. 通常情况下,我们可以将项目模板发布到 npm 上,或者在公司内部利用私 ...

  5. C# 多线程编程及其几种方式

    引言: 进程(process):应用程序的实例要使用的资源的集合.每个进程被赋予了一个虚拟地址空间,确保在一个进程中使用的代码和数据无法由另一个进程访问. 线程(thread):程序中的一个执行流,每 ...

  6. QTableView实现在表格内直接对数据库内容进行修改、新增和删除等操作

    文章目录 前言 QSqlTableModel 新增 删除 修改 提交 取消 前言 本文主要利用QSqlTableModel+QTableView来实现直接在QTableView中进行对数据库数据的操作 ...

  7. TPC-H 研究和优化尝试

    TPC-H测试提供了8张表,最近做这个测试,记录下过程中的关键点备忘. 1.整体理解TPC-H 8张表 2.建立主外键约束后测试22条SQL 3.分区表改造,确认分区字段 4.重新测试22条SQL 5 ...

  8. 解决本地代理问题 git 或者 curl Failed to connect to 127.0.0.1 port 1087 after 8 ms: Connection refused

    问题出现原因 git配置了代理 本地配置了代理 执行这个命令可以看到自己的代理设置: env | grep -I proxy 临时更改代理 在当前终端执行以下命令,就可以临时将代理取消掉 export ...

  9. 浅谈 C# 13 中的 params 集合

    前言 在 C# 13 中,params 的改进使其从可变数量的数组参数升级为可变数量的集合类型参数.这一改进通过支持高性能集合类型(如Span<T>,ReadOnlySpan<T&g ...

  10. 连接MySQL数据库出现时Authentication plugin 'caching_sha2_password' cannot be loaded的解决办法

    问题描述:用Navicat Premium或HeidiSQL连接MySQL数据库时会弹出下面的情况 解决方法: 1.运行命令行窗口,输入以下命令,输入密码后进入到mysql中,(最好将MySQL安装目 ...