恶意代码分析实战 — 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,然后退出结束。
结论:
通过以上分析,大致理清了程序的执行流程
- 判断当前网络连接状态,无联网则退出
- 尝试请求pracxx.com站点中页面cc.htm,解析<!–后边的注释代码,并输出到success提示字符
- 如果解析成功,程序休眠一分钟,然后退出