当前位置: 首页 > 软件库 > 开发工具 > 编译器 >

RetDec

基于 LLVM 的机器码反编译器
授权协议 MIT
开发语言 C/C++
所属分类 开发工具、 编译器
软件类型 开源软件
地区 不详
投 递 者 仲孙俊贤
操作系统 Windows
开源组织
适用人群 未知
 软件概览

安全软件公司 Avast 宣布了研发 7 年的机器码反编译器 RetDec 的开源版本。

RetDec 是可重定向的机器码反编译器,同时有在线反编译服务和 API ROPMEMU - 分析、解析、反编译复杂的代码重用攻击的框架,能对常见和传统的硬件架构的机器码进行反编译,支持 ARM, PIC32, PowerPC 以及 MIPS 架构的机器码。

RetDec 现在也开始提供网页服务。在 IoT 物联网设备越来越普及的今日,机器码反编译工作对于防范和发现安全威胁和恶意软件来说至关重要,尽管完全还原机器码的原始汇编指令是不可能的,但反汇编工作能够让生产可执行的等效代码,查看软件是否有恶意攻击意图代码。

反编译器不限于任何特定的目标架构,操作系统或可执行文件格式:

  • 支持的文件格式:ELF,PE,Mach-O,COFF,AR(存档),Intel HEX和原始机器码。

  • 支持的体系结构(仅限 32b):Intel x86,ARM,MIPS,PIC32 和 PowerPC。

特征:

  • 具有详细信息的可执行文件的静态分析。

  • 编译器和打包器检测。

  • 加载和指令解码。

  • 基于签名的静态链接库代码的删除。

  • 调试信息的提取和利用(DWARF,PDB)。

  • 指导习语的重构。

  • C ++类层次结构(RTTI,vtables)的检测和重构。

  • 从C ++二进制文件中去除符号(GCC,MSVC,Borland)。

  • 重构函数,类型和高级构造。

  • 集成的反汇编。

  • 以两种高级语言输出:C和Python类语言。

  • 生成调用图,控制流图和各种统计信息。

安装和使用

目前只支持Windows和Linux。

Windows

  1. 从下面的列表中下载并解压缩一个预先构建的包,或者自己构建并安装反编译器(过程如下所述):

  2. 为Visual Studio 2015安装Microsoft Visual C ++可再发行组件。

  3. 按照RetDec的Windows环境设置指南安装MSYS2和其他所需的应用程序。

  4. 现在,你已经开始运行反编译器了。要反编译一个名为的二进制文件test.exe,请进入$RETDEC_INSTALLED_DIR/bin并运行:

    bash decompile.sh test.exe

    有关更多信息,请运行

  5. bash decompile.sh --help

Linux

  1. 目前还没有针对Linux的预建包。你将不得不自己建立和安装反编译器。该过程如下所述。

  2. 构建反编译器之后,您将需要通过发行版的包管理器安装以下包:

        3.现在,你已经开始运行反编译器了。要反编译一个名为的二进制文件test.exe,请进入$RETDEC_INSTALLED_DIR/bin并运行:

./decompile.sh test.exe

有关更多信息,请运行

./decompile.sh --help
  • mips题目,看起来有点难受 想起来前几天defcon的时候刚好把retdec的环境搭起来,虽然还是有点小问题,但是正好借机解决一下嘛 首先看了binary ninja的插件,跑了一下python缺少模块,又找不到它内置的python在哪,查了一下可以在binary ninja的script console窗口中import pip来安装 import pip pip.main([‘install

  • 安装graphviz sudo apt-get install graphviz 下载源代码 git clone https://github.com/avast-tl/retdec.git 安装依赖库 sudo apt-get install build-essential cmake git perl python3 bison flex libfl-dev autoconf automa

  • cents7 8cc83 1.openssl1.1.1k 安装: wget http://www.openssl.org/source/openssl-1.1.1k.tar.gz --no-check-certificate tar -xvf openssl-1.1.1k.tar.gz ./config --prefix=/usr/local/openssl111 --openssldir=/us

  • 下载 V4.0 解压 问题和解决方案 Q: Error: failed to limit maximal memory to half of system RAM Error: Decompilation to LLVM IR failed A: --no-memory-limit (参考) Q: Error: Decompilation of file /…/test.bc failed A:

 相关资料
  • 本文向大家介绍基于编译虚拟机jvm—openjdk的编译详解,包括了基于编译虚拟机jvm—openjdk的编译详解的使用技巧和注意事项,需要的朋友参考一下 java只所以被推广,实际上很大原因是因为本身是跨平台的,很大作用是因为虚拟机的关系。 一般情况下开发人员不需要关注虚拟机内部实现就可以日常开发了,但是有时候涉及到性能的时候就需要了解虚拟机的实现机制了。 那么今天写的内容更多的是关于编译一套自

  • 问题内容: 您可以推荐用于Eclipse的Java反编译器吗?我的其他问题是,使用来自其他Java程序的反编译代码有什么限制?非法还是什么?我对许可证知之甚少。谢谢阅读。 问题答案: 我建议在Google上弹出一个JD Java反编译器。它真的很好。 至于限制,您必须阅读特定软件的许可,否则可能会写明禁止任何反编译方式。

  • 问题内容: 有什么方法可以对Java即时编译器生成的本机代码进行汇编转储吗? 和一个相关的问题:是否有任何方法可以使用JIT编译器而无需运行JVM将我的代码编译为本地机器代码? 问题答案: 是的,有一种方法可以打印生成的本机代码(需要OpenJDK 7)。 不,无法使用JDK的JIT将Java字节码编译为本地代码并将其另存为本地可执行文件。 即使这是可能的,它也可能没有您想象的有用。JVM进行了一

  • 我已经收到这个错误很长时间了,我不知道该怎么办。 为了保持问题简短,我将错误写入.rtf文件并将其放入CloudApp中。这是链接:http://cl.ly/0T3n1Q123u352T372t0m 我觉得和“CLAPIDeserializer.m”有关系。 我会感谢任何帮助。谢谢你。 错误: CompileC/Users/juniorpond/Library/Developer/Xcode/de

  • 问题内容: 普通CPU(例如Android设备)是基于寄存器的计算机。Java虚拟机是基于堆栈的计算机。但是基于堆栈的计算机是否依赖于基于寄存器的计算机工作?由于基于堆栈的计算机不是OS,因此不能单独运行吗?除了JVM,是否有任何基于堆栈的计算机示例?有人说1个操作数,2个操作数;你为什么需要这个? 问题答案: JVM在任何地方都没有提到寄存器的存在。从它的角度来看,内存仅存在于少数几个地方,例如

  • 问题内容: 众所周知,有很多Java反编译器工具可以将.cl​​ass转换为.java文件。 因此,我们需要保护.java文件免于反编译。我知道这是一个大话题,也许没有止境。 通常,有两种方法:混淆器和定制的类加载器。 是否有将这两种方式结合在一起的成熟解决方案或开源框架? 另一个方面与exe4j有关,它将jars打包到exe文件中,似乎可以保护java代码,因为我们看到的是exe文件而不是jar