【笔记】reko 0.10.2 反编译工具安装和使用记录|(1) README.md
(翻译自README.md,并通过自己的实际操作情况重新整理了一遍)
笔者注:我已经成功地根据README.md下载了Release版本,也自己试了下从源码编译,跟着README都挺顺利的。如果操作过程中遇到问题,请留言。
Reko 简介
Reko (瑞典语: “适当的, 乐于助人的”) 是一个二进制文件的反编译器。
该项目可在GNU通用公共许可证下免费获得.
该项目具有图形界面,也可以直接通过命令行使用。前端使用ASP.NET。
Reko项目文件包含有关二进制文件的其他信息,这些信息有助于反编译过程或者格式化输出。
![]() ARM 二进制可执行文件的 Map view |
![]() ARM 二进制可执行文件的 Decompiled view |
Reko追求的目标是在最小的用户干预下、对于各种各样的处理器结构和可执行文件格式都支持反编译。完整的支持列表请见网址Reko 支持的处理器和可执行文件格式 。
请注意,很多的软件证书禁止对它们的机器码二进制文件进行反编译器或者其他逆向工程。你只有拥有了合法的反编译权限才能使用这个反编译器(例如如果这个二进制文件是你自己的)。
1. 下载 Reko
官方的 Releases 每隔几个月就会在 Github 和 SourceForge上发布。
不想或无法自己生成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.0和C# 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.
注:命令行编译方式容易出问题。不推荐。
笔者注:
- 这里的命令行指的是VS中的
工具-命令行。- 注意不要删掉克隆的文件夹下的.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的更多相关文章
- Myecplise反编译工具安装
我使用的是Myecplise8.5 下载jad.exe文件jad158g.win.zip:http://varaneckas.com/jad/ 下载jadeclipse插件 net.sf.jadcli ...
- ubuntux下apk反编译工具安装
1,下载dex2jar工具.(http://download.csdn.net/detail/u013647453/8286693) 2,下载jd-gui工具(http://jd.benow.ca/) ...
- .NET反编译工具 .net Reflector_8.3.0.95 下载激活
在网上找了很久,很多地方都没有注册机,终于机缘巧合下找到了这个有注册机的反编译工具,放于百度网盘,供大家下载 里面有包含如何破解,不过此处也多做一次解释: 注:1.记得断开网络 2.至于杀毒软件,我没 ...
- .net混淆、反编译工具调查
常用的工具列表[比较常见的] 混淆器.加密 Dotfuscator VS默认带的工具,不过是个社区版 强度不大 dotNET Reactor 使用了NativeCode 和混淆的形式 Xenocode ...
- 转--Android资源总结(环境搭建/ 反编译工具)
在Android发展前景相当好的情况下,本人最近搜集了一些关于Android的相关资源,当然包含以前发布的博客内容,进行了一次大整合,希望对和我一样是Android的初学者管用,如在文章中有所错误,敬 ...
- 反编译工具 使用.NET JustDecompile来反编译你的程序代码
原文地址:http://www.it165.net/pro/html/201310/7383.html 前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序 ...
- Java反编译工具Jad及插件JadClipse配置教程
Jad是一个Java的一个反编译工具,和eclipse的插件JadClipse,二者结合可以方便的在eclipse中查看class文件的源代码. 下面介绍一下配置: 下载JadClipse,http: ...
- Atitit.java 反编译 工具 attilax 总结
Atitit.java 反编译 工具 attilax 总结 1. 三大核心核心引擎——1 2. JAD Jad attitude推荐这个1 2.1. Jdec.2 2.2. 二. 源码开放的 J ...
- java反编译工具jad
下好以后解压就可以用了,软件就只有一个exe文件和一个帮助文件.在众多的JAVA反编译工具中,有几种非常著名的工具使用了相同的核心引擎——JAD,其中主要包括:FrontEnd Plus.mDeJav ...
- Myeclipse 反编译工具插件
JadClipse是java的反编译工具,是命令行执行,反编译出来的源文件可读性较高.可惜用起来不太方便.还好 找到myeclipse下的插件,叫JadClipse,安装好之后,只要双击.class文 ...
随机推荐
- IDEA中创建Spring Boot项目(SSM框架)
一.IDEA创建新Maven项目 创建maven项目完成 因为创建多模块项目,删除根目录src目录 二.maven多模块项目配置 需要创建的模块 umetric-web 控制层 umetric-we ...
- 华盛顿大学-分布式系统课设-lab0
前言 无意间发现一个华盛顿大学分布式系统的课程实验,感觉课程组设计得非常用心.不同于一般实验仅仅给出若干测试样例并判断程序的输出是否正确,实验中的验证环节通过DFS搜索来遍历分布式系统可能的状态,以此 ...
- 多项式算法再探:FMT 和 FWT
我们知道,FFT 和 NTT 可以用来解决下面这种问题: \[c_k=\sum_{i+j=k}a_ib_j \] 不过,这并不是卷积的全部形态,比如下面这种: \[c_k=\sum_{i*j=k}a_ ...
- Linux MiniMal版本常规所需环境安装
Docker 环境安装 前置工作 之 基础环境安装 当前环境 centos7.9 64位 minimal版本 当前环境为 root用户 若当前存在Docker环境 需卸载 yum remove doc ...
- Emacs 的优点及与 DE 的比较
一.引言 在编程领域,对于工具的选择一直是开发者们热议的话题.今天,我们来探讨一下 Emacs 及其所具有的优点,并思考使用 Emacs 写程序是否真的比使用集成开发环境(IDE)更方便. 二.Ema ...
- PCI-5565PIO主要应用场景
PCI-5565PIO主要应用场景包括军事领域.工业自动化和控制系统.仿真与培训以及数据采集与分发.在军事领域,PCI-5565PIO可用于航空航天系统的飞行控制计算机.导航系统和传感器系统之间的 ...
- C++最基本调用动态链接库dll方法的小结
针对当时初学动态链接.静态链接,有些文档整理一下发出来算是给自己和读者一个小结. 首先创建DLL 编辑头文件 dllmain.h 头文件: #pragma once #if defined(_DLL_ ...
- Processing中获取表格数据( .tsv\.csv )的经验分享
在日常收集数据的需求中,会有很多场合用到表格数据类型,如.tsv和.csv,一来高效查看和编辑,二来数据条理清晰,导入数据结构方便.在Prcocessing中帮我预留好了loadTable().loa ...
- ABC245Ex题解
前言 \(2024.11.21\) 联考第三题,本人由于太菜没有推出 \(m=p^x\) 的性质遂部分分跑路,作文以记之. 简要题意 对于一个长度为 \(n\),值域为 \([0,m-1]\) 的序列 ...
- Golang 入门 : 变量声明
变量声明 在Go中,变量是包含值的一块存储.可以使用变量声明为变量命名.只需使用var关键字,后跟所需的名称以及变量将保存的值的类型. 一旦你声明了一个变量,就可以用=为它分配该类型的任何值: qua ...


