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

Lab 06-02

导入表分析,wininet.dll中有关于网络连接和读取文件的操作

Strings分析

Main中第二个call

进入分析

InternetOpenA初始化对wininet.dll动态链接库调用,将IE 7.5/pma作为User-Agent参数,然后调用InternetOpenUrlA打开链接地址 www.pracxx.com,返回值赋值给hFile句柄,并且与0进行比较,完成不同跳转

调用InternetReadFile在句柄hFile中读取网络数据,根据入栈push参数,lpBuffer保存数据数组,长度为0x200个字节

下一步对读取的数据进行分析,首先比较数据头,快捷键R转义字符,发现是<!–四个字符,正是HTML的注释符

设置下Buffer局部变量大小 0x200 = 512,Ctrl+K来到stack区,右键Array设置数组大小为512

设置后stack空间有了比较正确的显示

此时代码区也直观的显示

程序将<!–后边的内容赋给al,并返回

返回的al赋值给[ebp + var_8] –> ecx,通过call 打印输出success和得到的ecx保存的命令command,之后程序sleep 60s,然后退出结束。

结论:

通过以上分析,大致理清了程序的执行流程

  1. 判断当前网络连接状态,无联网则退出
  2. 尝试请求pracxx.com站点中页面cc.htm,解析<!–后边的注释代码,并输出到success提示字符
  3. 如果解析成功,程序休眠一分钟,然后退出

您可能还喜欢...