首页 > 编程 > VBScript > 正文

VBS.Runauto脚本病毒分析篇

2019-10-26 18:03:46
字体:
来源:转载
供稿:网友
最近一位同事的笔记本遭遇了这个病毒,正好这学期在给计算机专业的同学们上VBscript于是顺便分析了一下。
首先从染病毒的计算机上提取下来病毒样本,由于是临时发现的,也没有特别准备,就用winrar压缩后保存。
在实验机器上打开病毒样本的压缩文件,我的Symantec 11立即报警,并把病毒删除了。所以必须禁用杀毒软件或者设置一个“例外区域”用于分析病毒,于是在桌面上新建了“evA”文件夹,并将之设置为防病毒例外文件夹,这下病毒样本安静的躺在里面了。
脚本病毒是解释型程序,因此我们不需要什么特别的反编译工具就能查看源代码了。虽然Windows的记事本足够用了,但是我还是喜欢使用UltraEdit。
使用打开UltraEdit打开病毒文件如图1,注意,为了防止误触发病毒,这里首先将vbs扩展名修改为txt。


图1 病毒脚本
打开病毒脚本,大家可以发现代码的可读性非常差,大小写字母杂乱的排列,并且还有很多无法理解的符号串。其实这是病毒为了保存自己而“想”出来的“保护伞”。
病毒代码大小写问题可以在UE(以后UltraEdit简称)中选择文本后,使用Ctrl+F5直接转换成小写字母。对于类似密码的“00c2%0033%……”的字符串相对来说比较麻烦点。
从病毒代码中可以发现只要出现“乱码”的地方都会有“STrREVeRSE”和“unEscaPE”函数的调用,其中“unescape”是vbscript标准函数,作用就是将经过escape函数编码过的字符串进行反编码。这里需要说明一下,由于Web中的Html对于有些符号是进行保留使用的,比如“<”和“>”符号,如果需要对这些符号进行显示那么需要对他们进行html编码,所有空格、标点、重音符号以及其他非 ASCII 字符都用 %xx 编码代替,其中 xx 等于表示该字符的十六进制数。例如,空格返回的是 "%20" 。字符值大于 255 的,比如中文,以 %uxxxx 格式存储。在对“密码”进行分析,发现其实就是将escape编码的符号串进行了反向,再结合“STrREVeRSE”函数名,可以断定病毒作者为了能使病毒逃避杀毒软件的检测,采用了将关键代码进行编码和反向存储的方式。
在UE中可以直接对字符串进行编码和解码,不过要对字符串镜像并没有现成的工具可以使用,最近正在给学生上JavaScript,顺手写了一个页面进行解码或者编码,虽然很简单,不过为了叙述的连续性,代码如下:
复制代码 代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>将字符串Reverse</title>
<script type="text/javascript">
function _reverse()
{
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表