查看原文
其他

【新开源报道 33】安全软件公司 Avast 开源机器码反编译器 RetDec

2017-12-16 开源最前线
开源最前线(ID:OpenSourceTop) 猿妹 整编

编译自:https://www.techspot.com/news/72296-avast-launches-open-source-decompiler-machine-code.html、GitHub等


为帮助安全社区开展恶意软件的逆向工程,Avast 已经发布了一个开源版本的机器码反编译器 RetDec,该版本已经开发了7年多。


机器码反编译器 RetDec


授权协议:MIT

操作系统:C/C++ 

开发厂商:Avast

Github:https://github.com/avast-tl/retdec



RetDe 简介



随着 IoT物联网设备的普及,机器码反编译工作对于防范和发现安全威胁和恶意软件来说至关重要。,Retdec 支持多种架构,其中包括ARM、PIC32、PowerPC 和 MIPS 等。


除了在 GitHub 上发现的开源版本之外,RetDec 也被作为一个 web 服务提供和 API ROPMEMU - 分析、解析、反编译复杂的代码重用攻击的框架。


用户只需上传一个受支持的可执行文件或机器码,就可产生一个可执行的等效代码,查看软件是否有恶意攻击意图代码但全还原机器码的原始汇编指令,按照目前的情况仍然是无法实现的。



Avast 还提供了 REST API,允许第三方应用程序使用反编译服务。rda 反汇编程序的插件也适用于那些使用反编译软件的人。



RetDec 支持格式


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


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


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



RetDec 特性


Retdec 具有以下特性:

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

● 编译器和打包器检测。

● 加载和指令解码。

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

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

● 指导习语的重构。

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

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

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

● 集成的反汇编。

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

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



安装和使用


目前,只支持Windows(7或更高版本)和Linux。


windows:


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

32b Windows(v3.0):https://github.com/avast-tl/retdec/releases/download/v3.0/retdec-v3.0-windows-32b.zip

64b Windows(v3.0):https://github.com/avast-tl/retdec/releases/download/v3.0/retdec-v3.0-windows-64b.zip


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


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


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

bash decompile.sh test.exe


更多信息请运行:bash decompile.sh --help


Linux


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


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

GNU Bash:https://www.gnu.org/software/bash/

UPX:https://upx.github.io/

bc:https://www.gnu.org/software/bc/

Graphviz:http://www.graphviz.org/


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

./decompile.sh test.exe


有关更多信息,请运行:./decompile.sh --help


附:新开源报道汇总

《【新开源报道 32】谷歌开源 TFGAN:轻量级生成对抗网络工具库》

《【新开源报道 31】国内首套开源持续集成(CI) 解决方案 flow.ci 开源啦》

《【开源推荐 30】苹果开源领域又一深造:开源机器学习框架 Turi Create》

《【新开源推荐 29】AI开发者的福音:360公司宣布开源深度学习调度平台 XLearning!》

《【新开源推荐 28】百度正式开源 Linux 发行版 MesaLock Linux》

《【新开源报道 27】百度开源高性能 Python 分布式计算框架 Bigflow》

《【新开源报道 26】滴滴开源基于 Vue.js 的移动端组件库 cube-ui》

《【新开源报道 25】Google 开源 Docker 镜像差异分析工具 container-diff》

《【新开源报道 24】美团点评开源MySQL闪回工具 —— MyFlash》

《【新开源报道 23】IBM 推出首套开源现代化字体 —— IBM Plex》

《【新开源报道 22】Microsoft 开源用于 VS Code 的 Java Debugger》

《【新开源报道 21】阿里开源容器技术Pouch和P2P文件分发系统“蜻蜓”》

《【新开源报道 20】Uber正式开源其分布式跟踪系统Jaeger》

《【新开源报道 19】Uber与斯坦福大学开源深度概率编程语言Pyro》

《【新开源报道 18】谷歌开放内部工具 Colaboratory 来协助 AI 开发》

《【新开源报道 17】这波开源满分!清华大学开源网络嵌入的工具包 —— OpenNE

《【新开源报道 16】AI开发者福音!微软亚马逊联合发布深度学习库 Gloun》

《【新开源报道 15】谷歌发布量子开源软件,量子计算机对科学家免费开放 》

《【新开元报道 14】微软开源用于Spark的深度学习库MMLSpark》

《【新开源报道 13】Facebook 开源帮助开发者消灭最顽固的软件 bug 的工具》

《【新开源报道 12】不只是阿里巴巴的操作系统,AliOS 宣布开源》

《【新开源报道 11】重磅!阿里巴巴正式开源全球化OpenMessaging和ApsaraCache项目》

《【新开源报道 10】IBM 和谷歌等巨头联手为开发者推出开源容器安全工具Grafeas》

《【新开源报道 9】Google开源Abseil,为C++和Python开发提供支持》

《【新开源报道 8】serverless 领域的福音!Oracle 宣布开源 Fn project》

《【新开源报道 7】苹果在 GitHub 上公布 macOS 和 iOS 内核源码》

《【新开源报道 6】百度开源移动端深度学习框架mobile-deep-learning(MDL)》

《【新开源报道 5】百度正式开源其 RPC 框架 brpc》

《【新开源报道 4】IBM 开源动态的应用服务器运行时环境 Open Liberty》

《【新开源报道 3】微信后台团队最近开源力作:PhxQueue分布式队列》

《【新开源报道 2】喜大普奔!阿里即将开源 ApsaraCache,云数据库 Redis 版分支》

【新开源报道 1】腾讯 Web UI 解决方案 QMUI Web 正式回迁开源》



●本文编号114,以后想阅读这篇文章直接输入114即可

●输入m获取文章目录

↓↓↓ 点击"阅读原文" 进入GitHub详情页 

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存