动态分析工具
动态分析是指在可控环境中运行软件程序或者模拟软件执行的情况下,利用分析工具,监控代码的所有操作,观察代码执行流程及状态,获取执行过程中的各种数据。
Process Moniter
Process Monitor是一款系统进程监视软件,总体来说,Process Monitor相当于Filemon+Regmon,其中的Filemon专门用来监视系统 中的任何文件操作过程,而Regmon用来监视注册表的读写操作过程。有了Process Monitor,使用者就可以对系统中的任何文件和注册表操作同时进行监视和记录,通过注册表和文件读写的变化, 对于帮助诊断系统故障或是发现恶意软件、病毒或木马来说,非常有用。
Wireshark
Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。与很多其他网络工具一样,Wireshark也使用pcap network library来进行封包捕捉。可破解局域网内QQ、邮箱、msn、账号等的密码。
OllyDbg
OllyDbg是一款Windows平台反汇编动态调试追踪工具,只支持Ring3级别的用户态程序。OllyDbg主要应用在应用软件调试领域,在调试过程中能够提供指令、内存、寄存器、栈等基本信息。除此之外还支持Trace功能,通过Trace功能可以记录调试过程中执行的指令,用于分析前序执行指令。
WinDbg
Windbg是在windows平台下,强大的用户态和内核态调试工具。相比较于Visual Studio,它是一个轻量级的调试工具,所谓轻量级指的是它的安装文件大小较小,但是其调试功能,却比VS更为强大。它的另外一个用途是可以用来分析dump数据。
常用命令
查看版本信息:version、vertarget
查看模块信息:lm、!dlls、!lmvi等
调用栈:用k命令显示调用栈,用.frames命令切换栈帧
内存操作:读内存用d命令,写内存用e命令
自动分析:!analyze、!owner等
符号命令:.reload加载符号, .sympath设置符号路径, !sym设置符号选项
进程线程:!process显示进程信息; .process显示当前进程,或用.process /i 切换当前进程;!peb显示进程环境块内容;~命令显示线程列表,用~n s可切换当前线程,n表示线程号;.thread显示当前线程。
Pin
Pin是一种动态二进制检测框架,适用于x86,x64架构,一般用于程序动态分析用,在多个平台上都支持。该工具原本适用于计算机架构分析用的,但是由于丰富的api,与强大的功能现在运用的地方很多。比如计算机安全,环境模拟器,并行计算。
代码插桩模式
INS级别:即在每一条原始程序指令前,后插入自己的代码
TRACE级别:在指令跳转时进行插入,进一步进行基本块的分析
RTN级别:通过符号表信息找到需要插入的位置
IMG级别:用于监控模块的装载和卸载
虚拟化辅助分析平台
VMWare Workstation
VMWare Workstation是一款功能强大的桌面虚拟计算机软件,提供用户可在单一的桌面上同时运行不同的操作系统,和进行开发、测试 、部署新的应用程序的最佳解决方案。VMware Workstation可在一部实体机器上模拟完整的网络环境,以及可便于携带的虚拟机器,其更好的灵活性与先进的技术胜过了市面上其他的虚拟计算机软件。
VMware Workstation允许操作系统和应用程序在一台虚拟机内部运行。虚拟机是独立运行主机操作系统的离散环境。在 VMware Workstation 中,你可以在一个窗口中加载一台虚拟机,它可以运行自己的操作系统和应用程序。你可以在运行于桌面上的多台虚拟机之间切换,通过一个网络共享虚拟机(例如一个公司局域网),挂起和恢复虚拟机以及退出虚拟机,这一切不会影响你的主机操作和任何操作系统或者其它正在运行的应用程序。