以下介绍的工具主要是在日常分析和学习科研中使用,部分是开源的。
固件相关
1.固件解析工具 Binwalk
2.嵌入式设备固件后门静态分析框架 Fiemalice
3.FirmWalk分析固件中的硬编码
4.FirmAFl 固件仿真Fuzz工具
仿真相关
1.动态仿真平台Firmadyne
2.Qemu:会将各种处理器的指令集统一翻译成本地处理器的指令。 开源,的虚拟化平台,
3.XEN开源的虚拟机框架,类似一个驱动程序
4.Argos系统仿真器,采用动态污点分析技术用于检测0day漏洞攻击,主要用于主机蜜罐,分析被检测到的攻击
5.vmware 和 virtualbox(开源) 下层是x86上层也是x86
符号执行
1..二进制程序分析工具集(符号执行) Angr(开源)
2.STP、Z3是常用的可满足性模理论(SMT)求解器
3.KLEE 符号执行技术的构造程序测试用例,也利用约束求解和符号执行在关键的程序点上对符号的取值范围进行分析
模型检查:
1.BLAST 是针对C程序的模型检测工具,采用基于反例的自动抽象技术和lazy-abstration。
2.Magic 基于反例的自动抽象技术的C语言自动证明工具,还可以检测并发程序。
3.SLAM微软开发的软件模型检查工具,将API的调用规则进行总结和归纳得到安全属性,然后用于C程序的检查。主要研究软件规约、描述语言/程序分析/模型检测之间的关系,目标是验证C程序是否满足特定的时态安全属性。
插装相关:
1.pin 一套二进制代码插桩框架,有良好的用户扩展接口,插桩分析不需要手动设置断电,可以批量提取各个执行点的寄存器和内存状态。
2.Valgrind二进制插装引擎
3.Pin、DynamoRIO、Valgrind、Nirvana只能分析单个用户模式进程,对操作系统内核及多进程的执行无能为力
污点传播
3.Taintcheck基于开源X86模拟器Valgrind设计实现的,指令级的污点标记器,
4.TAJ 在WALA工具上针对JAVA语言的web语言程序污点分子工具
模糊测试
1.AFL,模糊测试
2.PEACH:模糊测试框架,允许关注给定对象的单独子部分。优势:代码重用。
3.Sulley 模糊测试框架(python),主要对各种网络协议进行模糊测试
4.Kitty(开源框架),常用于二进制协议的测试中
5.Boofuzz,常用于文本协议的测试中
程序逆向
1.IIDA pro 反汇编软件,也可以动态调试(最新7.3支持撤销)
插件 :
IDa compare,分析恶意代码的变种和程序补丁(openrace 提供插件)。提供SDK插件接口,用 python。
Bindiff Ida, 二进制文件差异对比工具,打补丁前后
acfg提取器
2.Bitblaze 二进制程序分析平台
3.EBDS套件 批量补丁分析工具和二进制补丁对比工具
4..eye binary diffing suite 开源的二进制比较工具套件,主要用于微软产品的补丁分析DarunGrim 是用来对二进制比对分析的工具,使用sqlite数据库来存储分析结果
5.udis86 开源逆向工具,简单,X86,x64
6.capstone 开源逆向工具,复杂
7.Hindra(开源)
8.BinNavi 逆向分析平台,漏洞挖掘,恶意代码分析,嵌入式设备逆向分析。分析输入数据流在程序的传播路径,通过流程控制图表示。x86,arm,powerpc,mips。不能反汇编,借助IDA
9.Bap 二进制逆向分析平台,二进制代码反汇编,汇编代码转为中间语言,在中间语言的基础上进行后续分析,
探测、扫描相关
1.nmap 端口扫描来判断计算机提供的网络服务,源码开放,主机发现,端口三秒,版本探测,操作系统侦测
2.wifipineapple 物理层的嗅探器
3.nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具
(1)实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
(2)端口的扫描,nc可以作为client发起TCP或UDP连接
(3)机器之间传输文件
(4)机器之间网络测速
4.nessus 扫描软件:漏洞扫描与分析软件。提供完整的计算机漏洞扫描服务,并随时更新其漏洞数据库。可进行系统的漏洞分析扫描。
5.Fortify SCA:静态代码分析器、一个软件源代码缺陷静态测试工具。通过分析应用程序可能会执行的所以路径、从源代码层面上识别软件漏洞,提供分析报告。
6.pixy 开源的PHP静态分析工具,检测SQL注入和XSS等污点类型漏洞
7.Dart 自动测试软件工具包含:使用静态源代码分析技术提取程序外部环境执行特征。随机测试自动化输入生成。分析程序在随机测试下的行为,自动生成按照选定路径执行输入。组合形成导向性随机测试技术。可以自动捕捉诸如程序奔溃、断言错误之类的标准化错误,实现对目标程序的完全自动化的测试。
流量相关
1.dsniff 监控网络流量和重定向网络数据包
2.Scapy强大的交互式数据包处理程序
3.mitmproxy/mitmdump:能够捕获、分析、修改HTTP/HTTPS数据包
4.Burp Suite:工具集:
Proxy:是一个拦截HTTP/S的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
Spider:是一个应用智能感应的网络爬虫,它能完整的枚举应用程序的内容和功能。
intruder:是一个定制的高度可配置的工具,对web应用程序进行自动化攻击,如:枚举标识符,收集 有用的数据,以及使用fuzzing 技术探测常规漏洞
Repeater:是一个靠手动操作来补发单独的HTTP 请求,并分析应用程序响应的工具
Sequence:是一个用来分析那些不可预知的应用程序会话令牌和重要数据项的随机性的工具。
Decoder:是一个进行手动执行或对应用程序数据者智能解码编码的工具。
compaper:是一个实用的工具,通常是通过一些相关的请求和响应得到两项数据的一个可视化的“差异”。
数据流分析工具:Fortify SCA、Coverity Prevent、FindBugs、IBM Appscan Source Edition。
5.Wireshark
6.Device Monitor Stdio 串口、usb数据抓取
攻击相关
1.LOIC(使用metasploit框架) 实施拒绝服务的工具
用Msfpescan可以在PE文件中扫描跳转指令并转换为VA的工具。
2.paimei 漏洞触发点
3.MOPS是基于控制流分析的C代码漏洞挖掘工具
4.Metasploit
5.ISF:工业控制系统下的Metasploit
文件格式相关
1.Lord PE 文件偏移地址和虚拟地址转换计算,查看PE文件中的节信息
2.objdump来查看object的内部结构。
3.readelf 查看ELF文件格式。
4.PEid 分析一部分pe文件结构,可以做插件,可以写规则检测文件加壳(有特征)。
5.十六进制编辑器:UltraEdit、Hex Workshop、WinHex、010editor
6.010editor 除了编辑文本,还可以对范本进行分析。用于文本格式解析,提取文件的格式字段内容文件格式范本 avi,bmp,pdf等等;脚本分析功能,磁盘编辑功能;
调试相关
1.OllyDbg 集成反汇编、十六进制编辑、动态调试等多种功能于一身的功能强大的调试器。用于32位的windows,与SoftIDE、Windbg相比无法调试内核,但提供GUI界面
2.SoftICE 可调试内核
3.GDB
4.WIndbg 调试器 支持符号库,提高语义符号帮助理解,支持内核调试,
进程监控
1.ProcessMonitor 进程监控工具,对进程行为监控与记录,包括文件操作行为,注册表操作行为,网络行为。综合了:进程管理器,文件监控工具,注册表监控工具,网络监控工具。(APT检测 可以以它作为baseline)
中间语言
1.REIL是一种平台无关的中间语言,由汇编指令以一对多的关系转换得到。由17种不同的指令
恶意软件规则
1.YARA
编译器:
1.Clang 构建在LLVM编译器框架下,分析编译C、C++、OC、OC++
2.GCC
。