首页 > 编程语言 >推荐一款采用 .NET 编写的 反编译到源码工具 Reko

推荐一款采用 .NET 编写的 反编译到源码工具 Reko

时间:2022-12-04 08:55:13浏览次数:67  
标签:反编译 文件 工具 源码 NET Reko

今天给大家介绍的是一款名叫Reko的开源反编译工具,该工具采用C#开发,广大研究人员可利用Reko来对机器码进行反编译处理。我们知道.NET 7 有了NativeAOT 的支持,采用NativeAOT 编译的.NET程序 无法通过ILSpy 之类的传统工具得到源码,这款Reko 可能是唯一一款可以把NativeAOT 编译的程序真正得到源码的,当然你得首先会编程才行。编译本质上是一个有损过程。 将高级源代码程序转换为低级机器代码可执行二进制文件时,诸如复杂数据类型和注释之类的信息会丢失。 有用的反编译通常需要用户的帮助。 用户可以提供被编译器丢弃的类型信息,并为过程添加注释或给出友好名称。

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

image

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

项目地址:https://github.com/uxmal/reko 

工具下载和安装:https://github.com/uxmal/reko/releases/tag/version-0.11.1

.NET 6 是跨平台的,可以在你需要安装的操作系统上安装 .NET 6.0:https://dotnet.microsoft.com/zh-cn/download/dotnet/6.0 ,如果需要开发Reko,并使用VS 2022,则必须安装VS的C#组件,如果在Mac,Linux平台上推荐使用Rider 。

在windows 下载好MSI文件之后,直接运行安装程序即可。安装完成后会在开始菜单里创建一个“Reko Decompiler”快捷方式,你可以直接点击图标启动Reko客户端。

打开GUI客户端后,你可以参考GUI.md文档开始工作。

Reko开始于一个空项目。二进制文件的分析从将它添加到项目中(使用菜单栏命令File > Open) 开始。Reko会尝试确定这个文件是什么二进制文件格式。常见的格式,比如MS-DOS或EXE会被自动加载;它们的内部结构会被从头到尾地分析加载(will be traversed),加载结果会在左侧的项目概览中中展现出来。

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

标签:反编译,文件,工具,源码,NET,Reko
From: https://www.cnblogs.com/shanyou/p/16949381.html

相关文章

  • Spring源码-01-调试代码
    Spring源码-01-调试代码Spring源码工程下新建模块用于调试源码一新建模块名称以spring为前缀二引入依赖plugins{id'java'}group'org.springframework'......
  • Microsoft.IO.RecyclableMemoryStream源码解读
    一、RecyclableMemoryStreamManager源码地址:https://github.com/Microsoft/Microsoft.IO.RecyclableMemoryStream小对象池和大对象池管理、RecyclableMemoryStream创建、......
  • 代编写金字塔交易策略,金字塔波浪策略交易源码 定制
    一、策略思想:   趋势交易是投资中非常常见的交易手法,其高收益吸引了众多的投资者通过观察,在一轮完整的趋势行情中,价格并不会一路上涨或下跌,正如波浪理论所解释的......
  • 安卓APP源码和报告——学生信息管理系统
    详情介绍《移动开发技术II》实践考核方案适用网络工程(网络软件开发)2018级一、考核内容:环境配置及移动开发生命周期、控件的使用、用户界面设计、数据存储与访问、广播、服务......
  • C++学习------csetjmp头文件的源码学习
    引言csetjmp是C++对setjmp.h头文件的封装,通过这个头文件提供的工具允许程序员通过提供执行跳转的方法来绕过正常的函数调用和返回规程,从而保留调用环境。其中定义了一些函数......
  • 如何禁止F12 or右键查看源码
    方法1.引入jquery.min.js1.<scripttype="text/javascript"src="http://code.jquery.com/jquery-1.4.1.min.js"></script>2.插入一段js脚本<scripttype="text/ja......
  • 问题解决系列:从源码讲解为什么是 'JZ0SL_ Unsupported SQL type 1111'
    一、问题场景正在做代码改造,使用​​mybatis​​​+​​sybase​​进行数据库操作,运行过程中,提示以下报错:java.io.IOException:JZ0SL:UnsupportedSQLtype1111.本篇博客......
  • 将makefile中的宏传递给源码
    前言:今天遇到一个问题,在makefile中定义个宏,宏为一个字符串,希望将该字符串传递给代码。但是一直传递不过去,最后才找到原因,这里小结一下。直接上代码,makefile如下:1C_F......
  • IL Spy反编译小工具下载
    关注微信公众号【工控羊】或者微信号【gksheep】,微信公众号后台输入数字编号【1001】即可获取下载链接。......
  • idea查看源码快捷键
    查看当前类的层次结构⭐⭐⭐⭐⭐ Ctrl+H查看类结构⭐⭐⭐⭐ Alt+7快速检索类⭐⭐⭐⭐⭐ Ctrl+N(Win)查看方法/类的实现类⭐⭐⭐⭐ Ctrl+Alt+B(Win)......