同样先查壳


然后查看字符串

接下来使用IDA进行分析,因为是未加壳的代码,程序功能可以很轻松的通过程序逻辑以及调用的API函数来分析

10003415函数块分析


看到这些关键函数就知道了功能的

首先,InternetOpen,InternetConnect是使用HTTP协议进行互联网的访问操作

HttpOpenRequest,HttpSendRequest是http请求操作,可能是从网站是查询或者下载某些资源

InternelReadFile是从远程URL上读取服务端文件

GetTempPath和GetLongPathName是读取本地的目录路径

fwrite和fflush是往本地文件中写入

所以这个函数的主要功能:从恶意代码链接的网页上读取某个恶意文件,并且将其写入本地指定的某个目录中

有些值是常量字符串也是可以在程序的string列表中找到的,比如:

szVerb = ‘get’,szVersion = ‘HTTP/1.1’


10004317函数块分析:

这里分析下,当a1是大写字母,要减去‘A’,范围就是0 - 25,当a1是小写字母,要减去‘G’,范围就是26 - 51,当a1是数字,要a1 + 4,范围就是52 - 61

这里就可以理解为数字字母与0 - 61的一一对应,作者设计的一种加密解密关系

查看这个函数被其他那些函数调用过

这样可以基本确认,只要涉及到编码解码的时候,都会用到这个函数


10004706函数块分析(Install)

这里的SubKey是这个

这里全是新建注册表键值的操作

既然是DLL,就会有导出的功能,IDA的Exports分析一下

这里就可以使用书上的方法,运行这个dll


然后利用工具:process monitor

发现事件在不断增长,且全部都是与网页相关的访问,不断对注册表进行访问和添加


开启了什么服务确实没有分析出来,从这篇分析报告里找到的思路

http://blog.csdn.net/isinstance/article/details/77839928