RetDec:一款功能强大的基于LLVM的可重定目标机器代码反编译器 |
您所在的位置:网站首页 › 编译器编译速度慢 › RetDec:一款功能强大的基于LLVM的可重定目标机器代码反编译器 |
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的磁盘空间。 工具使用Windows1、安装Microsoft Visual C++ Redistributable for Visual Studio 2017; 2、安装UPX和Graphviz; 3、如需反编译名为text.exe的代码文件,可以运行下列命令: $RETDEC_INSTALL_DIR\bin\retdec-decompiler.exe test.exeLinux 1、安装UPX和Graphviz; 2、如需反编译名为text.exe的代码文件,可以运行下列命令: $RETDEC_INSTALL_DIR/bin/retdec-decompiler test.exe使用RetDec代码库我们还可以直接在自己项目(需要使用CMake构建)中使用RetDec库。RetDec安装时包含了所有需要的头文件、代码库和CMake脚本。 接下来,就可以通过下列方式来使用其组件了: find_package(retdec 5.0 REQUIRED COMPONENTS [...] ) target_link_libraries(your-project PUBLIC retdec:: [...] )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许可证协议本项目的开发与发布遵循MIT和Zlib开源许可证协议。 项目地址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/ |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |