一个加密病毒的分析
实验环境:win7 x64 样本信息:(微步获取) 分析工具:火绒,x64dbg,IDA 一:在虚拟机中运行一下,看一下病毒的运行效果 启动前:(笔者创建了一个txt文件进行测试) 启动后:(文件都被加密了) 病毒作者留下的联系信息: 二:分析一下病毒文件的行为(使用火绒来监控病毒行为) 一大堆事件信息,头皮发麻: 三:静态
实验环境:win7 x64
样本信息:(微步获取)

分析工具:火绒,x64dbg,IDA
一:在虚拟机中运行一下,看一下病毒的运行效果
启动前:(笔者创建了一个txt文件进行测试)

启动后:(文件都被加密了)

病毒作者留下的联系信息:

二:分析一下病毒文件的行为(使用火绒来监控病毒行为)
一大堆事件信息,头皮发麻:

三:静态分析前置操作
查一下壳:没发现壳的信息,程序是用C++13编写的

字符串中发现了加密算法:发现在两个函数中引用,推测应该就是加密函数了

只有一个区块,推测应该是做了一些处理:

查看导入表发现调用了一些敏感函数如文件遍历的相关函数,及在注册表等操作的相关函数

四:分析
mian函数中只调用了一个函数

我们跟进去看一看(push一堆值,调用了这个函数,这是一个关键函数,从后面分析来看,这是个解密函数,本文以下简称为解密函数)

跟进408B19函数,里面有点乱,我们动态分析一下,调试分析了一下发现一大堆的数据

继续动态调试,来到409CE7处,该处调用了GetModuleFileName函数来获取文件:
本机文件的具体地址:0040CAB8:&L"C:\Users\test\Desktop\a.exe"
接着又调用了解密函数

解密的结果为.Snake4444,这是加密文件的后缀


我们还看见了HOW…..这是作者留下的解密信息文件,推测后续操作应该是解密相关信息并写入文件
接着向下看,来到了4088F4函数,这是一个获取相关硬件信息的函数,留着给后面加密函数使用

继续向下看,我们发现了这个函数,该函数的功能是获取系统环境变量,同时如果第一次获取不成功的话就在获取一次,两次都不成功就退出,主要是获取LOCALAPPDATA或APPDATA环境变量

获取成功的话就在字符串末尾添加反斜杠


接着获取到文件名,最后将自身拷贝到local目录下

接着进行注册表操作

接下来是文件的相关操作,我们进入函数分析一下

进入以后首先看到的是创建文件,写入了一个文件,文件推测为公钥


继续跟着流程走,走到了我们的加密函数了,生成RSA密钥对

接着走,发现了遍历磁盘的操作

同时根据遍历的结果来创建线程,推测接下来应该是进行加密操作了,动次动态调试后可以确定4099A3就是加密函数

接下来我们分析一下409449这个函数

这个函数的主要功能是创建一个BAT文件,推测这个.bat的文件应该是做一些清理工作

在X64中下断409449函数动态调试发现实在这个目录下创建文件

tmp85c2.tmp.bat的文件内容

调用CMD命令删除病毒文件

总结:以前总是喜欢静态分析,但这个病毒的一些函数只看静态的话有些看不懂,还是要多多练习一下动态调试的能力