记录一次DLL分析实战
- 1.VT查看分析报告
- 2.判断文件是否加壳
- 3.查看导入函数
- 4.查看是否有任何其他文件或基于主机的迹象
- [5.使用工具IDA Pro进行字符串分析](#5.使用工具IDA Pro进行字符串分析)
1.VT查看分析报告
全绿,没有报毒:
可以看到这个dll是32位的:
下面可以看它调用的其他dll:
以及它对外提供的函数接口:
其中RunCmd很可疑,看起来是调用cmd窗口的接口,后续需要重点关注
可以看到它联系的IP地址和域信息:
行为模块可以查看它恶意加载的流程:
2.判断文件是否加壳
使用 PEiD 可以查看该信息,如下无壳:
使用Exeinfo PE新一代查壳工具:
这款查壳工具的加壳特征库比较准确而且范围很广,如ThemIDA、WinLicense、VMProtect、ZProtect、Shielden都可以轻松识别出来,但对于具体加壳程序的版本都是模糊的
3.查看导入函数
用 Dependency Walker 可以看到导入函数
重点是 CreateProcessA
和 Sleep
导入函数,这两个函数经常在后门程序中使用:
CreateProcessA
函数用于创建一个新的进程并执行指定的可执行文件。它是通过指定一组参数来启动新进程的,包括可执行文件的路径、命令行参数、安全属性等。该函数返回一个布尔值,表示新进程是否成功创建
Sleep
函数用于使当前线程暂时休眠一段指定的时间。它接受一个以毫秒为单位的时间参数,并把当前线程从运行状态转为休眠状态,直到指定的时间过去后再恢复运行
4.查看是否有任何其他文件或基于主机的迹象
使用 strings -n 4 -nobanner xxx.dll
指令查看 xxx.dll
中的字符串
如下,除了已知的 CreateProcessA 和 Sleep,我们还注意到 exec 和 sleep。exec 可能用于通过网络给后门程序传送命令 ,再利用 CreateProcess 函数运行某个程序 。sleep 可能用于让后门程序进入休眠模式
5.使用工具IDA Pro进行字符串分析
通过 View > Open Subviews > Strings,或者 Shift + F12 打开 Strings 窗口,使用 Strings 窗口,查看dll中的字符串: