恶意代码分析实战 — Lab 06-03

Lab 06-03

Kernel32.dll中有关于文件创建、拷贝、删除等操作

Wininet.dll有关于网络连接操作

Advapi32.dll有关于注册表操作

Strings分析,有注册表自启动项,C:\Temp\cc.exe程序等

Idapro载入,与上一个Lab 06-02程序相比,增加了如图的call调用

此函数的参数有eax = argv,代表的是main函数的第二个参数argv[0],即执行程序的名称Lab06-03.exe

第二个参数var_8是从call sub_401040中返回的al赋值而来,al就是之前分析的获取cc.htm页面注释<!– 后的命令内容,为char类型

进入此call,分析为switch结构

分析switch程序,arg_0是获取到的cc.htm注释后部分第五个字符,将字符减去‘a’,赋值给var_8,然后与4比较,有五个分支,0,1,2,3,4以及默认的default

将var_8的值乘以4,再跳转相应的偏移。之所以要乘以4,是因为32位的系统中,每个内存地址的长度为4个字节,因此乘以4,就会抵达相应的内存地址来执行。

分别分析下每个case

0、case 0 创建目录C:\\Temp

1、case 1 复制Lab06-03.exe为C:\\Temp\\cc.exe

2、case 2  如果存在C:\\Temp\\cc.exe就删除此文件

3、case 3 在注册表CurrentVersion\\Run下创建一个Malware键值,内容指向C:\\Temp\\cc.exe,实现此恶意程序的自启动

4、case 4 休眠100s

5、case default 打印错误命令提示符

您可能还喜欢...