恶意代码实践作业5.2 初步动态分析
恶意代码实践作业5.2 初步动态分析
1.静态分析确定的线索
根据上次静态分析的结果,可判断这个文件的作用应该是替换kernel32.dll
文件。过程是先关闭C:\Windows\System32\kernel32.dll
,再将文件中的lab01-01.dll
内容复制在C:\Windows\System32
中的kerne132.dll
文件中。所以我们这次搜寻的关键是kernel32.dll
文件
上次静态分析过程中通过IDA反编译出的主函数部分代码:
代码大致如下:
if ( argc == 2 && !strcmp(argv[1], aWarningThisWil) )
{
v3 = CreateFileA(FileName, 0x80000000, 1u, 0, 3u, 0, 0);
v4 = CreateFileMappingA(v3, 0, 2u, 0, 0, 0);
v5 = MapViewOfFile(v4, 4u, 0, 0, 0);
v7 = CreateFileA(ExistingFileName, 0x10000000u, 1u, 0, 3u, 0, 0);
v8 = CreateFileMappingA(v7, 0, 4u, 0, 0, 0);
v9 = (const char **)MapViewOfFile(v8, 0xF001Fu, 0, 0, 0);
qmemcpy(v14, v13, v16);
}
CloseHandle(hObject);
CloseHandle(v50);
if ( !CopyFileA(ExistingFileName, NewFileName, 0) )
exit(0);
sub_4011E0(aC, 0);
}
return 0;
}
2.动态分析对上述线索的验证分析过程
1 Process Explorer
ollydbg单步调试,从头到尾未出现子进程,程序在7C92E4F4
处终止
2 Process Monitor
设置过滤信息为PID=20228(Process Explorer中显示的信息),可以看到在ida伪代码中一些修改注册表、打开读取文件、读取文件、关闭文件创建文件的函数,但没有之前分析的copy等操作,也没看到所copy的Lab01-01.dll
3 Wireshark抓包
设置地址为机器的ip号,什么都没抓到,静态分析中也确实没看到有联网的记录
4 比较运行前后的系统文件
kernel32.dll
该文件没有被修改,但是在运行期间确实被访问了
lab01-01.dll
该文件没有找到,本来猜测在Lab01-01.exe
中,但其中只有一个PE头
kerne132.dll
该文件没有找到,可能是没有找到lab01-01.dll
的缘故,所以没有实际copy的数据
3.动态分析的结论
该文件会对系统目录下的kernel32.dll
进行访问并试图改动
该文件不会连接网络进行下载等操作
4.动态分析中尚不能确定,有待进一步分析的内容
由于缺少Lab01-01.dll
,使得程序无法进行文件复制对kernel32.dll
进行修改
从原书中找到了代码链接,已导入码云仓库中,欢迎下载
https://gitee.com/sin29/PracticalMalwareAnalysis-Labs