(翻译自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. jconsole配置

    使用jconsole远程监控可执行jar(非Tomcat)运行状况的配置 程序启动参数配置: nohup /data/soft/jdk1.8.0_251/bin/java -Dcom.sun.mana ...

  2. Markdown语法基础教学

    Markdown语法基础教学 简介 Markdown是一种轻量级的标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成结构化的HTML.它的目标是实现"易读易写",并且 ...

  3. DeepSeek + 在线Excel , 打造智能表格新纪元

    微信搜一搜[葡萄城社区]关注,了解更多动态 SpreadJS 已经接入 DeepSeek 啦! 相信这段时间,大家都被[DeepSeek]刷屏了.DeepSeek 以其强大的技术能力和创新的解决方案, ...

  4. MES生产制造管理系统-BI看板 MES大屏看板

    可视化看板最主要的目的是为了将生产状况透明化,让大家能够快速了解当前的生产状况以及进度,通过大数据汇总分析,为管理层做决策提供数据支撑,看板数据必须达到以下基本要求: 数据准确--真实反映生产情况 数 ...

  5. [Ynoi2015] 盼君勿忘 题解

    CSP 前学习珂学,祝自己 \(while(1)\ rp++\). 考虑求解出每种数对答案的贡献. 设 \(t=r-l+1,k_x=\sum\limits_{i=l}^r [a_i=x]\),由容斥得 ...

  6. JavaScript 之 高级程序设计 基础篇 (一)

    导读 此篇文章为作者拜读JavaScrpit 第四版(红宝石)的笔记内容.适用于有经验的程序员阅读:作者 java开发出身.在之前前后端不分离的时代 使用esayUI JQuery的时代 经常写 js ...

  7. 分块-byx

    Update:2025.5.25 树状数组是基于二进制划分与倍增的思想,线段树基于分治的思想.之所以能够高效修改和查询,就是把序列分成了大大小小的"段",花费额外(增加空间,空间换 ...

  8. 让 LLM 来评判 | 设计你自己的评估 prompt

    设计你自己的评估 prompt 这是 让 LLM 来评判 系列文章的第三篇,敬请关注系列文章: 基础概念 选择 LLM 评估模型 设计你自己的评估 prompt 评估你的评估结果 奖励模型相关内容 技 ...

  9. 目标检测 | Spatially Sparse Convolution

    Spatially Sparse Convolution 导言 为什么需要稀疏化? 在3D表示中,除了点云(Point Cloud)和网格模型(Mesh),我们常常还会使用到一种称为体素(Voxel) ...

  10. Go1.24版本终于来了!各位开发者,准备好迎接这些激动人心的新功能了吗?让我们一起来探讨下Go1.24中有哪些精彩的亮点?

    前言 Gopher们,Go 1.24.0 正式发布了!与 Go 1.23.0 相比,这个版本带来了众多改进.让我们一同看看 Go 1.24.0 都有哪些新变化吧! 在 Windows 下,请在 htt ...