同样先查壳
然后查看字符串
接下来使用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
发现事件在不断增长,且全部都是与网页相关的访问,不断对注册表进行访问和添加
开启了什么服务确实没有分析出来,从这篇分析报告里找到的思路