freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

RetDec:一款功能强大的基于LLVM的可重定目标机器代码反编译器
Alpha_h4ck 2023-03-14 19:41:48 295293
所属地 广西

关于RetDec

RetDec是一款功能强大的基于LLVM的可重定目标机器代码反编译器,该工具支持的反编译器不限于任何特定的目标体系结构、操作系统或可执行文件格式。

当前版本的RetDec支持下列文件格式:

ELF

PE

Mach-O

COFF

AR(文档)

Intel HEX

原始机器代码

当前版本的RetDec支持下列体系结构:

32位:Intel x86、ARM、MIPS、PIC32和PowerPC

64位:x86-64,ARM64(AArch64)

功能介绍

1、提供带有详细信息的可执行文件静态分析数据;

2、编译器和封装器检测;

3、加载和指令解码;

4、基于签名的静态链接库代码移除;

5、提取和利用调试信息(DWARF、PDB);

6、指令语法重构;

7、C++类层次结构(RTTI、vtables)的检测和重构;

8、从C++二进制文件(GCC、MSVC、Borland)中分离符号;

9、函数、类型和高级构造器重构;

10、整合反汇编工具;

11、以两种高级语言输出:C和类似Python的语言;

12、生成调用图、控制流图和各种统计信息;

工具安装

广大研究人员可以访问该项目的【Releases页面】下载预编译的RetDec稳定版。

当前版本的RetDec支持Windows 7+、Linux、macOS和FreeBSD操作系统,请预留大约5-6GB的磁盘空间。

工具使用

Windows

1、安装Microsoft Visual C++ Redistributable for Visual Studio 2017

2、安装UPXGraphviz

3、如需反编译名为text.exe的代码文件,可以运行下列命令:

$RETDEC_INSTALL_DIR\bin\retdec-decompiler.exe test.exe

Linux

1、安装UPXGraphviz

2、如需反编译名为text.exe的代码文件,可以运行下列命令:

$RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe

使用RetDec代码库

我们还可以直接在自己项目(需要使用CMake构建)中使用RetDec库。RetDec安装时包含了所有需要的头文件、代码库和CMake脚本。

接下来,就可以通过下列方式来使用其组件了:

find_package(retdec 5.0 REQUIRED

   COMPONENTS

      <component>

      [...]

)

target_link_libraries(your-project

   PUBLIC

      retdec::<component>

      [...]

)

Docker中构建RetDec

构建镜像

在Docker中构建RetDec不需要在本地安装所需的依赖库,直接运行下列命令即可构建RetDec镜像:

docker build -t retdec - < Dockerfile

上述命令将从代码库的主分支构建镜像。

除此之外,我们也可以使用本地代码库拷贝来构建镜像,即使用开发版本的Dockerfile.dev:

git clone https://github.com/avast/retdec.git

docker build -t retdec:dev . -f Dockerfile.dev

容器运行

如果你的uid不是1000,请确保RetDec能够访问目录中包含的输入代码文件:

chmod 0777 /path/to/local/directory

接下来,你就可以在容器中运行反编译器了:

docker run --rm -v /path/to/local/directory:/destination retdec retdec-decompiler /destination/binary

许可证协议

本项目的开发与发布遵循MITZlib开源许可证协议。

项目地址

RetDec:【GitHub传送门

参考资料

https://retdec.com/static/publications/retdec-slides-botconf-2017.pdf

https://www.youtube.com/watch?v=HHFvtt5b6yY

https://retdec.com/static/publications/retdec-slides-recon-2018.pdf

https://retdec.com/publications/

# 反汇编 # 反编译 # 反编译器 # 机器码
本文为 Alpha_h4ck 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
Alpha_h4ck LV.10
好好学习,天天向上
  • 2359 文章数
  • 1024 关注者
Tetragon:一款基于eBPF的运行时环境安全监控工具
2025-01-21
DroneXtract:一款针对无人机的网络安全数字取证工具
2025-01-21
CNAPPgoat:一款针对云环境的安全实践靶场
2025-01-21
文章目录