恶意软件分析——逆向工具介绍
病毒分析除了需要扎实的经验,对于工具的利用也要熟能生巧。以下是病毒分析中经常用到的有效手段:
一、环境配置。
虚拟机网络模式:仅主机模式。
管理员权限运行恶意软件样本。
虚拟机推荐:FLARE VM
是一款以Windows为基础的免费开源的虚拟机,专为逆向分析工程师、恶意软件分析研究员、事件响应人员、安全取证人员以及渗透测试者设计。
二、工具利用
使用ProcessHacker查看进程的权限。
使用ProcessExplorer查看进程的父进程。防止恶意软件切断进程溯源链躲避主动防御。
进程背景色为蓝色表示进程和ProcessExplorer运行在同一系统用户环境下。
进程背景色为紫色表示进程中代码可能被压缩或者加密。
使用everything可以清楚看到临近时间文件的修改与变动。防止恶意软件篡改系统文件,比如hosts文件。这种方法比ProcessMonitor更加清晰直观。
API monitor,最强大的API监控工具。对待rootkit有明显作用,通过筛选过滤规则可以清晰看到进程调用API过程。
一般过滤规则如下。通常都会在捕捉到的API中筛选定位到进程的主模块,不然会有大量系统模块的函数调用。
区段捕捉
区段或附加数据的熵值高达 7.9,说明了里面有大量的随机数据。这些随机数据很可能是加密过的指令,在运行时才会被解开。
一般程序区段入口点在rsrc资源段或者reloc重定向段,并且这两个区段具有可执行属性,那么程序很有可能被感染型病毒感染。
二、OD和IDA双向配合进行分析
run跟踪是记录程序运行过哪些指令的(这些指令可能很多,比如递归查看一个call运行的所有指令),想run跟踪的记录,要先打开run跟踪。
跟踪一个call运行了哪些代码,有递归所有call和只对一层call的方法,操作方式分别是CTRL+F11和CTRL+F12。
先在call下断点,再再call下面一行下断点,运行程序,让程序在call处断下来,点击CTRL+F11,等待一会儿,可能会有十几秒,程序会停在call下面一行下断点处,查看run trace窗口,记录了这个call运行的所有指令。
当然也可以在RUN跟踪的时候设置中断的条件。
指定某寄存器的值。
bp CreateFileA,[STRING[esp+4]]“c:1212.txt”
指定API某一参数时断下。
如果是UNICODE,就[UNICODE[ESP+4]]“c:1212.txt”