/
UNCOMPRT.ASM
115 lines (100 loc) · 2.57 KB
/
UNCOMPRT.ASM
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
; COM Protector v1.0 Unpacker
; Coded by dR.No // Delirium Tremens Group
model tiny
.code
.386
org 100h
Begin:
mov dx,offset Msg
call write
mov si,81h
lodsb
cmp al,0Dh
jne FileOk
mov dx,offset Usage
jmp short write
FileOk:
mov cx,si
mov di,cx
@Str:
mov al,[di]
cmp al,0Dh
je _EndStr
inc di
loop @Str
_EndStr:
mov word ptr [di],2400h
mov dx,si
mov ax,3D02h
int 21h
jnc NoErr
mov dx,offset not_found
Write:
mov ah,09
int 21h
ret
NoErr:
xchg bx,ax
mov dx,offset Process
call write
mov dx,si
int 21h
xor cx,cx
xor dx,dx
mov ax,4200h
int 21h
mov ah,3Fh
mov dx,offset Buf
mov cx,-1
int 21h
cmp DWord Ptr Buf,5350FA9Ch
je CryptOk
mov dx,offset NotCrypt
jmp short write
CryptOk:
sub ax,89
mov bp,ax
xchg cx,ax
push cx
mov ah,3Eh
int 21h
add dl,34h
mov si,dx
push si
mov di,si
pusha
mov bx,Word Ptr Buf+0Eh
mov dx,bp
add dl,18
mov si,bx
mov cx,dx
@Decode:
dec cx
mov bx,offset Buf+34
add bx,cx
dec bx
xor [bx],si
loop @Decode
popa
mov dx,offset _Out
mov ax,3C02h
xor cx,cx
int 21h
xchg bx,ax
pop dx
pop cx
mov ah,40h
int 21h
mov ah,3Eh
int 21h
mov dx,offset Oki
jmp short write
Msg db 0dh,0ah,'COM Protector v1.0 Unpacker Coded by dR.No // ViP // DTg ',0dh,0ah,24h
Usage db 0dh,0ah,'Usage: UNCOMPRT <CRYPTFiLE>',0dh,0ah,24h
Not_found db 'File not found',0dh,0ah,24h
NotCrypt db 0dh,0ah,'File is not crypted with COM Protecor v1.0',0dh,0ah,24h
Process db 'Unpacking the file: $'
Oki db '... complete!',0dh,0ah,24h
_Out db 'UNPACKED.COM',0
Buf:
End Begin