动态调试分析(上)
教程参考自《恶意代码分析实战》
程序来自:http://www.nostarch.com/malware.htm
使用静态逆向分析技术只能分析大多数简单的恶意软件,若恶意软件经过加密或动态地加载调用函数,则无法对其进行分析,这时候就需要用到动态调试分析技术。
PS:由于动态调试分析过程冗杂,所以本话使用问答的方式进行讲解。
Lab 9-1
本节实验使用样本Lab09-01.exe。
我们学习动态调试技术并不是为了用它取代静态分析技术,而是将两者配合使用,因为这两者各有各的优势,动静结合通常是分析恶意软件的常规方法。如下图,寻找main函数地址就是IDA的优势,我们可以先通过IDA定位main函数地址,再用OD跟进。
如何让这个恶意代码安装自身?
使用OD在0x40AF0上下断点,运行到main函数入口点,然后我们发现有一个call 0x402EB0的指令,其实从上图的IDA图中可以知道0x402EB0就是__alloca_probe,我们不必分析。接着判断是否携带有参数,我调试时没有,则顺利执行call 0x401000。
进入0x401000,它的功能是检查注册表项HKLM\SOFTWARE\Microsoft\XPS和键Configuration存不存在。
我的主机上没有该注册表项,故函数返回0,顺着执行0x402410函数。
0x402410函数首先获取获取当前路径名,然后调用cmd进行自删除。
由于现在我们OD附加在Lab09-01.exe上,所以不会被删除。执行完这操作后,程序退出。