又一个VBS病毒源码的解密

标签: , , ,

解密暴风一号病毒的时候,曾经搜索到看雪的一个帖子,楼主说的也是暴风一号的解密。但是下面有人回了一个

对于病毒来说这个代码写得很啰嗦,没什么功能,连后台都没有,发布出去就是个死马
该让别人看不懂的地方一点也没有处理 鉴定完毕
你兴趣把这个解出来http://www.cn-dos.net/forum/viewthread.php?tid=39994&fpage=1&highlight=vbs
带后台的,支持远程后台控制VBS更新  支持后台命令让VBS操作你所实现的命令 比如:根据判断进程来下载木马。
这个VBS加了好几层密,全是手动加密 最后一层有点小难度,解完后的原码,你根本看不懂,不花点时间做点笔记根本不知道是什么意思

当时点进去看了一下,尝试着解密了一下,发现没有想象中的简单,就不管了。最近闲得慌,又拿出来看了一下,这次终于解密出来了。这个VBS病毒十分的强大,嵌套了好几层的Execute语句,即使最后解密出来的明文都很难看得懂,暴风一号和它比起来真的是小巫见大巫了。写病毒的人绝对是VBS高手中的高手,解密完这个病毒,我再也不敢说我会VBS了。

下面是解密过程,源代码和中间代码下载地址在文章末尾给出,请先下载再往下看。解密的主要思路是把Execute语句用下列代码替换

Dim fso, file
Set fso = CreateObject("scripting.filesystemobject")
Set file = fso.OpenTextFile("filename.vbs",2,True)
file.Write code
file.Close

其中filename为文件名,code为要Execute的代码。

1、病毒的源代码是src.vbs,是将数组中的数值用Chr函数转化成代码后Execute,所以我们将Execute用下面代码替换,保存为a.vbs并运行,得到b.vbs

Dim fso, file
Set fso = CreateObject("scripting.filesystemobject")
Set file = fso.OpenTextFile("b.vbs",2,True)
file.Write sts
file.Close

2、打开b.vbs,找到关键代码execute(uc(lO+qO)),将其用下面代码替换,然后运行,得到c.vbs

Dim fso, file
Set fso = CreateObject("scripting.filesystemobject")
Set file = fso.OpenTextFile("c.vbs",2,True)
file.Write uc(lO+qO)
file.Close

3、打开c.vbs,像上面一样将关键的execute代码替换后运行,得到d.vbs

4、打开d.vbs,终于发现看得懂的正常代码了,但是发现代码出奇的少。仔细一看,发现这段代码又调用了前面得到的代码(注:因为实际上只存在src.vbs中的一句execute,虽然我们人为将每一步得到的代码分开了,但是实际运行时前面的代码和后面的代码是在一起的),所以我们要把前面的代码加上去,注意不要忘记了function er(sco)函数。加上去后的文件保存为e.vbs

5、革命尚未成功,同志还需努力。仍然是替换掉关键的execute语句,需要注意的是function gt()等等一堆函数的格式部分(即function……end function)也是最后代码的一部分,也要将它们写到文件中。那么多函数要改,一个个手动改会累死的,好在EditPlus支持正则表达式查找替换,修改好的文件另存为f.vbs

6、下面最后一步了,运行f.vbs,得到final.vbs,就得到明文代码了,好好享受成功的快感吧

不要高兴的太早了,其实就算得到明文代码你也不一定看得懂。如果看得懂应该就算得上VBS高手了。

[download id=28]

赞赏

微信赞赏支付宝赞赏

随机文章:

  1. C语言函数strcpy strncpy和strlcpy
  2. OpenWrt安装CIFS客户端挂载网络驱动器
  3. VBS创建正则表达式对象的两种方法
  4. VBE解密工具VBE Decoder
  5. 再谈凯撒密码

11 条评论 发表在“又一个VBS病毒源码的解密”上

  1. 依云说道:

    不太明白为什么要屏蔽右键菜单和鼠标选择,这给浏览你的网站造成些不便,比如文章开头的引言中的链接无法打开,评论框编辑不便等等。

    • Demon说道:

      主要是不想让那些什么都不懂的人随便复制粘贴,但是对于你来说,这没什么影响吧。

      • 依云说道:

        我表示有影响。。。我设定了新的 document.onselectstart 但是函数并没有被调用,但 oncontextmenu 的处理成功了,也没发现你还没做其它的处理啊,觉得有些诡异。

  2. 無名的遊客说道:

    不知道为什么看不太懂

  3. 李征宇说道:

    安卓手机,chrome浏览器复制无压力

  4. 雪锋&冰魄说道:

    demon前辈,不知您是否还经常看您的Demon’s Blog……
    话说我怎么只看见个[download id=28],下载地址呢。。。
    我最后解密不知怎的解成这样了:
    for ii=1 to len(b):a=asc(mid(b,ii,1))
    if a=d then a=13
    if a=f then a=10
    if a=j then
    a=34
    elseif a>=h and a=k and a=53 and a=48 and a<=52 then
    a=a+v
    end if
    uc=uc+chr(a)
    next
    uc=rn+c+uc

    最后输出uc是个vbcrlf。。。
    没有发现真正执行的语句,也不清楚怎么回事,正在请教乱码前辈呢……

  5. wen说道:

    在哪下载

  6. hhh说道:

    地址呢

留下回复