首页
社区
课程
招聘
Viking病毒免疫器 v0.1
发表于: 2006-10-17 10:11 7469

Viking病毒免疫器 v0.1

2006-10-17 10:11
7469

Viking(维金)病毒免疫器 v0.1

名    称:Viking 病毒免疫器
版    本:0.1
文件大小:1,341 字节
编写语言:MASM
压缩方式:FSG v2.0
运行平台:Win2k/xp/2003
文件MD5值:f7c3ae45e3d150aadcb614cc1c7f3d87
病毒分析报告:Analysis.txt(注:各变种版本可能会有所差异,本文档仅供参考)

相关文件说明:
AntiViking.exe.........................................免疫器主程序
Analysis.txt...........................................病毒分析文档
Readme.txt.............................................说明文档

说明:
    这段时间viking病毒闹的比较严重,在短时间内出现的变种版本也是很多的,于是乎做了这个小东西对该病毒进行免疫,这个工具主要用于防止在本机运行感染后的程序再对本地文件进行感染,目前还不支持直接运行病毒原体的情况的免疫:-((本想加个驱动进行对原体也进行免疫,但可能导致和其它反病毒软件冲突,所以放弃了)。关于防止运行病毒原体进行网络传播的方法:
  1、去除弱口令,用以防止ipc、admin方式进行连接(这个都所有用户);
  2、关闭网络共享(对于普通家庭用户);
  3、开网络共享,但是设置为只读共享(对于网吧用户);
  4、开网络共享,设置可写共享,但必须设置访问密码(对于特殊用户)。

运行AntiViking.exe后,程序会在Windows目录下生成Rundl132.exe和Logo1_.exe文件,同时程序会将自身加入以下注册表自启动项:
主键: [HKEY_LOCAL_MACHINE\software\microsoft\windows\currentversion\run]
键值: AntiViking

程序的终止:使用进程管理器终止AntiVking.exe进程即可。

-----------------------------------结束-------------------------------
复制下Readme的内容,省得写说明了,考虑文件的精简性,因此并没有对文件本身进行类似鉴名、CRC检测等操作。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (30)
雪    币: 47147
活跃值: (20380)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
2
看来数据刻到光盘备份还是放心些
2006-10-17 10:19
0
雪    币: 257
活跃值: (369)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
3
顶。。。。。。。。。。。。。
2006-10-17 11:15
0
雪    币: 608
活跃值: (91)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
感著.正在?呃?病毒办愁,能否做?繁篦的,
2006-10-17 11:32
0
雪    币: 538
活跃值: (32)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
貌似这个Logo1_.exe很久前就中过
2006-10-17 17:17
0
雪    币: 255
活跃值: (207)
能力值: ( LV9,RANK:250 )
在线值:
发帖
回帖
粉丝
6
这种方法面对变种^^^^
2006-10-17 18:07
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
原理很简单
00401000 >/$>mov     esi,00401246                           ;  ASCII "Anti-Viking v0.1"
00401005  |.>push    esi                                    ; /MutexName => "Anti-Viking v0.1"
00401006  |.>push    0                                      ; |Inheritable = FALSE
00401008  |.>push    1F0001                                 ; |Access = 1F0001
0040100D  |.>call    <jmp.&kernel32.OpenMutexA>             ; \OpenMutexA
00401012  |.>or      eax,eax
00401014  |.>je      short 00401021
00401016  |.>push    eax                                    ; /hObject
00401017  |.>call    <jmp.&kernel32.CloseHandle>            ; \CloseHandle
0040101C  |.>jmp     0040123E
00401021  |>>push    esi                                    ; /MutexName
00401022  |.>push    0                                      ; |InitialOwner = FALSE
00401024  |.>push    0                                      ; |pSecurity = NULL
00401026  |.>call    <jmp.&kernel32.CreateMutexA>           ; \CreateMutexA
0040102B  |.>push    00402085                               ; /Value = "Load"
00401030  |.>push    00402050                               ; |SubKey = "SoftWare\\microsoft\\Windows NT\\CurrentVersion\\Windows"
00401035  |.>push    80000001                               ; |hKey = HKEY_CURRENT_USER
0040103A  |.>call    <jmp.&shlwapi.SHDeleteValueA>          ; \SHDeleteValueA
0040103F  |.>mov     esi,00403008
00401044  |.>push    0                                      ; /pModule = NULL
00401046  |.>call    <jmp.&kernel32.GetModuleHandleA>       ; \GetModuleHandleA
0040104B  |.>push    100                                    ; /BufSize = 100 (256.)
00401050  |.>push    esi                                    ; |PathBuffer => AntiViki.00403008
00401051  |.>push    eax                                    ; |hModule
00401052  |.>call    <jmp.&kernel32.GetModuleFileNameA>     ; \GetModuleFileNameA
00401057  |.>inc     eax
00401058  |.>push    eax                                    ; /DataLength
00401059  |.>push    esi                                    ; |Data => ""
0040105A  |.>push    1                                      ; |ValueType = REG_SZ
0040105C  |.>push    004020B8                               ; |Value = "AntiViking"
00401061  |.>push    0040208A                               ; |Subkey = "software\\microsoft\\Windows\\currentversion\\run"
00401066  |.>push    80000002                               ; |hKey = HKEY_LOCAL_MACHINE
0040106B  |.>call    <jmp.&shlwapi.SHSetValueA>             ; \SHSetValueA
00401070  |.>mov     esi,00403108
00401075  |.>push    200                                    ; /BufSize = 200 (512.)
0040107A  |.>push    esi                                    ; |Buffer => AntiViki.00403108
0040107B  |.>call    <jmp.&kernel32.GetWindowsDirectoryA>   ; \GetWindowsDirectoryA
00401080  |.>mov     ebx,eax
00401082  |.>push    004020C3                               ; /String2 = "\\Rundl132.exe"
00401087  |.>push    esi                                    ; |String1 => ""
00401088  |.>call    <jmp.&kernel32.lstrcat>                ; \lstrcat
0040108D  |.>push    80                                     ; /FileAttributes = NORMAL
00401092  |.>push    esi                                    ; |FileName => ""
00401093  |.>call    <jmp.&kernel32.SetFileAttributesA>     ; \SetFileAttributesA
00401098  |.>push    esi                                    ; /FileName => ""
00401099  |.>call    <jmp.&kernel32.DeleteFileA>            ; \DeleteFileA
0040109E  |.>push    0                                      ; /hTemplateFile = NULL
004010A0  |.>push    80                                     ; |Attributes = NORMAL
004010A5  |.>push    2                                      ; |Mode = CREATE_ALWAYS
004010A7  |.>push    0                                      ; |pSecurity = NULL
004010A9  |.>push    0                                      ; |ShareMode = 0
004010AB  |.>push    80000000                               ; |Access = GENERIC_READ
004010B0  |.>push    esi                                    ; |FileName => ""
004010B1  |.>call    <jmp.&kernel32.CreateFileA>            ; \CreateFileA
004010B6  |.>mov     byte ptr [ebx+esi],0
004010BA  |.>push    004020D1                               ; /String2 = "\\Logo1_.exe"
004010BF  |.>push    esi                                    ; |String1 => ""
004010C0  |.>call    <jmp.&kernel32.lstrcat>                ; \lstrcat
004010C5  |.>push    80                                     ; /FileAttributes = NORMAL
004010CA  |.>push    esi                                    ; |FileName => ""
004010CB  |.>call    <jmp.&kernel32.SetFileAttributesA>     ; \SetFileAttributesA
004010D0  |.>push    esi                                    ; /FileName => ""
004010D1  |.>call    <jmp.&kernel32.DeleteFileA>            ; \DeleteFileA
004010D6  |.>push    0                                      ; /hTemplateFile = NULL
004010D8  |.>push    7                                      ; |Attributes = READONLY|HIDDEN|SYSTEM
004010DA  |.>push    2                                      ; |Mode = CREATE_ALWAYS
004010DC  |.>push    0                                      ; |pSecurity = NULL
004010DE  |.>push    0                                      ; |ShareMode = 0
004010E0  |.>push    C0000000                               ; |Access = GENERIC_READ|GENERIC_WRITE
004010E5  |.>push    esi                                    ; |FileName => ""
004010E6  |.>call    <jmp.&kernel32.CreateFileA>            ; \CreateFileA
004010EB  |.>cmp     eax,-1
004010EE  |.>jnz     short 00401112
004010F0  |.>push    40                                     ; /Style = MB_OK|MB_ICONASTERISK|MB_APPLMODAL
004010F2  |.>push    00402103                               ; |Title = "提示"
004010F7  |.>push    004020DD                               ; |Text = "病毒可能正在运行,请重新启动你的机器!"
004010FC  |.>push    0                                      ; |hOwner = NULL
004010FE  |.>call    <jmp.&user32.MessageBoxA>              ; \MessageBoxA
00401103  |.>push    4                                      ; /Flags = DELAY_UNTIL_REBOOT
00401105  |.>push    0                                      ; |NewName = NULL
00401107  |.>push    esi                                    ; |ExistingName => ""
00401108  |.>call    <jmp.&kernel32.MoveFileExA>            ; \MoveFileExA
0040110D  |.>jmp     0040123E
00401112  |>>mov     edi,00403000
00401117  |.>mov     [edi],eax
00401119  |.>mov     ebx,00401257                           ;  ASCII "Anti viking file."
0040111E  |.>mov     ecx,00403004
00401123  |.>push    0                                      ; /pOverlapped = NULL
00401125  |.>push    ecx                                    ; |pBytesWritten => AntiViki.00403004
00401126  |.>push    12                                     ; |nBytesToWrite = 12 (18.)
00401128  |.>push    ebx                                    ; |Buffer => AntiViki.00401257
00401129  |.>push    eax                                    ; |hFile
0040112A  |.>call    <jmp.&kernel32.WriteFile>              ; \WriteFile
0040112F  |.>push    dword ptr [edi]                        ; /hObject
00401131  |.>call    <jmp.&kernel32.CloseHandle>            ; \CloseHandle
00401136  |.>push    0                                      ; /hTemplateFile = NULL
00401138  |.>push    7                                      ; |Attributes = READONLY|HIDDEN|SYSTEM
0040113A  |.>push    3                                      ; |Mode = OPEN_EXISTING
0040113C  |.>push    0                                      ; |pSecurity = NULL
0040113E  |.>push    0                                      ; |ShareMode = 0
00401140  |.>push    80000000                               ; |Access = GENERIC_READ
00401145  |.>push    esi                                    ; |FileName
00401146  |.>call    <jmp.&kernel32.CreateFileA>            ; \CreateFileA
0040114B  |>>/push    1000                                  ; /Timeout = 4096. ms
00401150  |.>|call    <jmp.&kernel32.Sleep>                 ; \Sleep
00401155  |.>|mov     edi,edi
00401157  |.>|mov     edi,edi
00401159  |.>|mov     edi,edi
........  |.>|...............                               ; 真无聊......
00401233  |.>|mov     edi,edi
00401235  |.>|mov     edi,edi
00401237  |.>|mov     edi,edi
00401239  |.>\jmp     0040114B
0040123E  |>>push    0                                      ; /ExitCode = 0
00401240  \.>call    <jmp.&kernel32.ExitProcess>            ; \ExitProcess
00401245   .>retn
00401246   .>ascii   "Anti-Viking v0.1"
00401256   .>ascii   0
00401257   .>ascii   "Anti viking file"
00401267   .>ascii   ".",0
2006-10-17 18:12
0
雪    币: 381
活跃值: (140)
能力值: ( LV13,RANK:330 )
在线值:
发帖
回帖
粉丝
8
"数据刻到光盘备份"
不错的选择
2006-10-17 20:24
0
雪    币: 398
活跃值: (343)
能力值: (RANK:650 )
在线值:
发帖
回帖
粉丝
9
确实比较无聊,啥事都不做的话还是WaitForSingleObject一个不会被释放的句柄比较好
2006-10-17 20:25
0
雪    币: 217
活跃值: (99)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
最初由 shoooo 发布
确实比较无聊,啥事都不做的话还是WaitForSingleObject一个不会被释放的句柄比较好

最好直接吃永久安眠药
Sleep(-1);
2006-10-17 21:04
0
雪    币: 440
活跃值: (692)
能力值: ( LV9,RANK:690 )
在线值:
发帖
回帖
粉丝
11
支持
被这个病毒害惨了
2006-10-17 21:36
0
雪    币: 301
活跃值: (300)
能力值: ( LV9,RANK:290 )
在线值:
发帖
回帖
粉丝
12
最初由 dwing 发布
原理很简单
00401000 >/$>mov esi,00401246 ; ASCII "Anti-Viking v0.1"
00401005 |.>push esi ; /MutexName => "Anti-Viking v0.1"
00401006 |.>push 0 ; |Inheritable = FALSE
00401008 |.>push 1F0001 ; |Access = 1F0001
........


都是牛孩
2006-10-17 22:01
0
雪    币: 556
活跃值: (2298)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
13
满足一下你们的"偷窥"欲嘛:-).
2006-10-18 13:43
0
雪    币: 427
活跃值: (412)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
很早有人出过免疫
2006-10-18 16:03
0
雪    币: 239
活跃值: (52)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
15
最初由 dwing 发布
最好直接吃永久安眠药
Sleep(-1);


很久不见你出来活动了呀。
2006-10-18 22:18
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
高手,我的偶像
2006-10-18 23:19
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
对于我们这些菜鸟实用的说!
2006-10-19 12:19
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
不错。谢谢!!!!!!!!!
2006-10-19 12:37
0
雪    币: 3638
活跃值: (4197)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
19
偶这里用有点小问题:winxp sp2简中版,两个admin用户,在第一个用户下安装的,正常。但第一次进入第二个用户,每次NOD32都提示可能有病毒运行,要求重启。[/
2006-10-19 16:57
0
雪    币: 3638
活跃值: (4197)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
20
死暴,怎么没动静了啊
2006-10-25 14:00
0
雪    币: 219
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
原来这两天染了这个毒,它将系统文件夹外所有EXE,RAR等文件都感染了,只能通过DOS下杀毒删除文件.损失太大了.
2006-10-25 20:28
0
雪    币: 556
活跃值: (2298)
能力值: ( LV9,RANK:2130 )
在线值:
发帖
回帖
粉丝
22
程序自动加入注册表启动项,nod就报了
解决方法:
1、把我的程序设置为安全程序
2、找我帮你再写个abc mm版.
2006-10-25 20:46
0
雪    币: 3638
活跃值: (4197)
能力值: (RANK:215 )
在线值:
发帖
回帖
粉丝
23
最初由 loveboom 发布
程序自动加入注册表启动项,nod就报了
解决方法:
1、把我的程序设置为安全程序
2、找我帮你再写个abc mm版.


这个2我最喜欢了,你顺便弄个专杀不行吗?

亲一个。
2006-10-25 22:15
0
雪    币: 323
活跃值: (589)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
24
及时雨啊,偶的一台机机中了它,很多文件不能运行了。
2006-10-26 22:37
0
雪    币: 223
活跃值: (70)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
25
今天又中了个,不过这个免疫器开着也不免疫,估计是变形吧
2006-10-27 12:27
0
游客
登录 | 注册 方可回帖
返回
//