本附录列出了许多反汇编和二进制分析工具,包括逆向工程、反汇编API以及执行跟踪的调试器。

C.1 反汇编工具

C.1.1 IDA Pro(Windows、Linux、macOS)

IDA是行业标准的递归反汇编工具,它是交互型的,是内置Python和IDC脚本API的反编译工具,也是目前最好、最强大的反汇编工具之一,但价格昂贵(最低基础版本价格为700美元)。旧版本(v7)是免费提供的,但其仅支持x86-64,且不包含反编译器。

C.1.2 Hopper(Linux、macOS)

Hopper是比IDA Pro更简单、更便宜的替代方案。尽管开发尚不完善,但其依然具有许多IDA的功能,包括Python脚本和反编译功能。

C.1.3 ODA(所有操作系统)

在线反汇编工具(Online Disassembler,ODA)是一种免费、轻巧的在线递归反汇编工具,非常适合快速实验。可以上传二进制文件或在控制台中输入字节。

C.1.4 Binary Ninja(Windows、Linux、macOS)

Binary Ninja是一款很有前景的工具,它提供了交互式递归反汇编功能,支持多种体系架构,并提供对C、C++和Python脚本的支持。Binary Ninja并非免费,全功能个人版的价格为149美元。

C.1.5 Relyze(Windows)

Relyze是一种交互式递归反汇编工具,通过Ruby语言提供二进制文件比对功能。它也是商业产品,但价格比IDA Pro便宜。

C.1.6 Medusa(Windows、Linux)

Medusa是具有Python脚本功能的、支持多体系结构的交互式递归反汇编工具。与大多数反汇编工具相反,它完全免费和开源。

C.1.7 radare(Windows、Linux、macOS)

radare是一个多用途的、面向命令行的逆向工程框架,与其他反汇编工具不同,它提供的是一组工具而不是一个统一的接口,任意的命令行组合使这个框架变得灵活。radare提供了线性和递归两种反汇编模式,并且支持交互式和脚本编写。该框架也是免费并且开源的。

C.1.8 objdump(Linux、macOS)

objdump是本书中使用的最流行的线性反汇编工具之一,它是免费并且开源的,是GNU binutils的一部分。objdump几乎可以为所有Linux发行版预打包,在macOS和Windows(如果安装了Cygwin[1])上可用。

C.2 调试器

C.2.1 GDB(Linux)

GNU调试器(GNU Debugger,GDB)是Linux操作系统上的标准调试器,主要用于交互式调试,其还支持远程调试。虽然可以使用GDB跟踪执行,但第9章展示了其他工具,如Pin,Pin更适合自动化执行。

C.2.2 OllyDbg(Windows)

OllyDbg是一款通用的Windows调试器,具有内置的执行跟踪功能和脱壳二进制文件的高级特性。它是免费的,但并不开源。虽然它没有直接的脚本功能,但是有一个用于开发插件的接口。

C.2.3 Windbg(Windows)

Windbg是Microsoft发布的Windows调试器,可以调试用户层和内核模式的代码,以及分析崩溃转储。

C.2.4 Bochs(Windows、Linux、macOS)

Bochs是一款可移植的PC模拟器,可以在大多数平台上运行,你还可以使用它来调试仿真代码。Bochs是开源的,并在GNU LGPL下发布。

C.3 反汇编框架

C.3.1 Capstone(Windows、Linux、macOS )

Capstone不是一个独立的反汇编程序,而是一个免费的开源反汇编引擎,可以使用该引擎构建自己的反汇编工具。其提供了轻量级的多体系架构API,并支持C / C++、Python、Ruby及Lua等多种语言的绑定。其提供的API允许对反汇编指令的属性进行详细检查,这在构建自定义工具时非常有用。第8章完全专注于使用Capstone构建自定义的反汇编工具。

C.3.2 distorm3(Windows、Linux、macOS)

distorm3是针对x86代码的开源反汇编API,旨在快速进行反汇编,其提供了多种语言的绑定,包括C、Ruby及Python等。

C.3.3 udis86(Linux、macOS)

udis86是一个干净、简约、开源以及文档良好的x86反汇编库,可以使用该库在C中构建自己的反汇编工具。

C.4 二进制分析框架

C.4.1 angr(Windows、Linux、macOS)

angr是面向Python的逆向工程分析框架,可用作构建自己的二进制分析工具的API。它提供了许多高级功能,包括向后切片和符号执行,并且有相当不错的文档,但正在积极开发中。angr是免费和开源的分析框架。

C.4.2 Pin(Windows、Linux、macOS)

Pin是动态的二进制检测(有关动态二进制检测的更多信息,请参见第9章)引擎,可用于构建自己的工具,在运行时添加或修改二进制的行为。Pin是免费的,但不开源,它由Intel开发,仅支持Intel CPU体系结构,包括x86。

C.4.3 Dyninst(Windows、Linux)

与Pin一样,Dyninst是一个动态的二进制工具API,但也可以将其用于反汇编。Dyninst是免费并且开源的,比Pin更注重研究。

C.4.4 Unicorn(Windows、Linux、macOS)

Unicorn是一种轻量级的CPU仿真器,支持多种平台和体系结构,包括ARM、MIPS及x86。它由Capstone的作者维护,有多种语言绑定,包括C和Python等。Unicorn不是反汇编工具,而是用于构建基于仿真的反汇编工具的分析框架。

C.4.5 libdft(Linux)

libdft是免费的开源动态污点分析库,用于第11章中所有的污点分析示例。libdft的优点是快速且易于使用,其两种变形支持字节粒度的影子内存或者8种污点颜色。

C.4.6 Triton(Windows、Linux、macOS)

Triton是一款动态二进制分析框架,支持符号执行和污染分析等,读者可以在第13章中了解到它的符号执行功能。Triton也是免费并且开源的。

本文摘自《二进制分析实战》

如今,读者可以找到许多关于汇编的书籍,甚至可以找到更多有关ELF和PE二进制格式的说明。关于信息流跟踪和符号执行也有大量的文章。但是,没有哪本书可以向读者展示从理解基本汇编知识到进行高级二进制分析的全过程。也没有哪本书可以向读者展示如何插桩二进制程序、如何使用动态污点分析来跟踪程序执行过程中的数据或使用符号执行来自动生成漏洞利用程序。换句话说,直到现在,没有一本书可以教你二进制分析所需的技术、工具和思维方式。

反汇编和二进制分析工具清单相关推荐

  1. 2个字节能存多少个16进制_多个二进制分析工具各项性能进行的分析与比较

    看玄武的公众号的时候看到了这篇文章.二进制工具分析的主要是程序的各种信息,比如格式.体系结构.编译器标识.指令.助记符等. 反汇编 概览 IDA是HexRays公司的商业产品,这个也是大家最熟悉的了. ...

  2. Linux中使用交叉编译、二进制分析工具链

    交叉编译,顾名思义,就是要生成在其它平台上运行的目标代码.例如,现在个人电脑上的CPU都基于X86/X86-64架构.但很多手机或其它嵌入式设备的处理器则可能是基于ARM架构的.如果要在个人电脑上开发 ...

  3. 静态代码分析工具清单:开源篇(各语言)

    本文是一个静态代码分析工具的清单,共有26个工具.包括4个.NET工具.2个Ada工具.7个C++工具.4个Java工具.2个JavaScript工具.1个Opa工具.2个Packaging工具.3个 ...

  4. 静态代码分析工具清单:开源篇

    http://hao.jobbole.com/static_code_analysis_tool_list_opensource_lang/?utm_source=blog.jobbole.com&a ...

  5. 二进制分析工具自动发现DLL劫持漏洞

    aDLL简介 aDLL是一款功能强大的代码分析工具,可以帮助广大研究人员以自动化的方式识别并发现DLL劫持漏洞.该工具可以分析加载至内存中的源码镜像,并在加载过程中搜索DLL,并且利用了微软Detou ...

  6. 如果你是安全工程师、逆向工程师,那么你可能需要一本《二进制分析实战》

    绝大多数计算机程序是使用C或C++等高级语言编写的,该类编程语言无法直接运行.在使用它们之前,必须先将其编译为包含计算机可运行的机器语言的二进制可执行文件.但是,你如何知道编译后的程序与高级源代码是否 ...

  7. 静态代码分析工具列表分析---代码分析工具列表(30款工具)

    本文是一个静态代码分析工具的清单,共有30个工具.包括4个.NET工具.2个Ada工具.7个C++工具.4个Java工具.2个JavaScript工具.1个Opa工具.2个Packaging工具.3个 ...

  8. 开源linux 二进制工具,又一款开源好物:逐字节分析的二进制数据分析工具bitinsight...

    项目名称:bitinsight 项目作者:compilelife 开源许可协议:GPL-3.0 项目地址:https://gitee.com/compilelife/bitinsight 项目简介 b ...

  9. Excel股票分析工具_每日连板清单

    Excel获取每日连板数据 对所有股票数据进行监控,选出涨停板股票清单: 可以查看昨日数据今日的涨跌情况    后端采用VBA通过API获取数据并创建前台分析链接 可以查看昨日数据在今日的涨跌情况, ...

最新文章

  1. 为何Google将几十亿行源代码放在一个仓库?| CSDN博文精选
  2. SAP ABAP 因系统维护使ABAP语法不再被支持导致使用很久的程序报错问题之分析
  3. mapreduce编程实例python-使用Python实现Hadoop MapReduce程序
  4. day12 Python操作rabbitmq及pymsql
  5. 用筛选法求100以内的素数(数组)
  6. SAP Spartacus Definition of Done
  7. vc++创建异性窗体(2)
  8. 机器学习与差分隐私(认证鲁棒性和隐私保护)
  9. Huaman Gene Functions
  10. 2.3 词嵌入的特性
  11. android 缓存程序,Android轻量缓存框架--ASimpleCache
  12. html获取表格行数据,怎么获取表格一行数据
  13. 浅论三维标注技术的重要性
  14. 您好!欢迎关注异贝!异贝是中国8000万中小微企业忠实的朋友,与您一起成长。异贝商学院今天与您分享:健身行业异贝引客、锁客方案设计!
  15. LEADTOOLS V20,史无前例荣耀归来!!!
  16. 【更新】Kendo UI for jQuery发布R2 2018|附下载
  17. 初级黑客必需撑握的8个DOS命令
  18. Java经典面试套路讲解:Java Killer系列
  19. modelsim仿真系列之基于ISE的独立进行后仿真(三)
  20. 在线教育平台项目——整体架构

热门文章

  1. Qt之高仿QQ系统设置界面
  2. Python3记录--个人常用函数及资源(持续更新)
  3. 植物大战 类和对象 ——C++
  4. 头歌-信息安全技术-【实训10】HTML信息隐藏、动态分析技术
  5. 我们用4行代码节省了100万 相见恨晚的PCDN
  6. 在VS Code中t把分支写的代码合并到master中并提交到远程仓库github上
  7. 10nm首秀!这就是英特尔十代酷睿
  8. 一文看懂ArrayList的自动扩容
  9. 我做程序员的那些日子
  10. 从京东双11战报中,找到未来值得国产品牌看好的发展机遇