📄 db10.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0050)file://\\Server\pub\Hacker\Documents\JM\jm1-01.txt -->
<HTML><HEAD>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2614.3500" name=GENERATOR></HEAD>
<BODY><XMP>STEP 1:
用 DEBUG 或 SYMDEB 载入 XPREAD.EXE
C:\XPRESS>DEBUG XPREAD.EXE
-U
241C:0012 06 PUSH ES <-- LZEXE 的开头
241C:0013 0E PUSH CS
241C:0014 1F POP DS
241C:0015 8B0E0C00 MOV CX,[000C]
241C:0019 8BF1 MOV SI,CX
241C:001B 4E DEC SI
241C:001C 89F7 MOV DI,SI
241C:001E 8CDB MOV BX,DS
241C:0020 031E0A00 ADD BX,[000A]
241C:0024 8EC3 MOV ES,BX
241C:0026 B400 MOV AH,00
241C:0028 31ED XOR BP,BP
241C:002A FD STD
241C:002B AC LODSB
241C:002C 01C5 ADD BP,AX
241C:002E AA STOSB
241C:002F E2FA LOOP 002B
241C:0031 8B160E00 MOV DX,[000E]
-U
241C:0035 8AC2 MOV AL,DL
241C:0037 29C5 SUB BP,AX
241C:0039 8AC6 MOV AL,DH
241C:003B 29C5 SUB BP,AX
241C:003D 39D5 CMP BP,DX <--- 检查 CRC, 用意在防止追踪
241C:003F 740C JZ 004D
241C:0041 BA9101 MOV DX,0191
241C:0044 B409 MOV AH,09
241C:0046 CD21 INT 21241C:0048 B8FF4C MOV AX,4CFF
241C:004B CD21 INT 21
241C:004D 53 PUSH BX
241C:004E B85300 MOV AX,0053
241C:0051 50 PUSH AX
241C:0052 CB RETF <--- 解压缩程式进入点
241C:0053 2E CS:
241C:0054 8B2E0800 MOV BP,[0008]
-G3F
AX=00FE BX=3C50 CX=0000 DX=FE0D SP=007E BP=FE65 SI=FFFF DI=FFFF
DS=241C ES=3C50 SS=3E62 CS=241C IP=003F NV DN EI PL NZ AC PO NC
241C:003F 740C JZ 004D
-RF
NV DN EI PL NZ AC PO NC -ZR
-G52
AX=0053 BX=3C50 CX=0000 DX=FE0D SP=007A BP=FE65 SI=FFFF DI=FFFF
DS=241C ES=3C50 SS=3E62 CS=241C IP=0052 NV DN EI PL ZR AC PO NC
241C:0052 CB RETF
-T
AX=0053 BX=3C50 CX=0000 DX=FE0D SP=007E BP=FE65 SI=FFFF DI=FFFF
DS=241C ES=3C50 SS=3E62 CS=3C50 IP=0053 NV DN EI PL ZR AC PO NC
3C50:0053 2E CS:
3C50:0054 8B2E0800 MOV BP,[0008]
CS:0008=17C7
-U16F
3C50:016F 8BC3 MOV AX,BX
3C50:0171 8B3E0400 MOV DI,[0004]
3C50:0175 8B360600 MOV SI,[0006]
3C50:0179 01C6 ADD SI,AX
3C50:017B 01060200 ADD [0002],AX
3C50:017F 2D1000 SUB AX,0010
3C50:0182 8ED8 MOV DS,AX
3C50:0184 8EC0 MOV ES,AX
3C50:0186 31DB XOR BX,BX
3C50:0188 FA CLI
3C50:0189 8ED6 MOV SS,SI
3C50:018B 8BE7 MOV SP,DI
3C50:018D FB STI
3C50:018E 2E CS: <--- 解压缩完毕, 准备跳到原始程式
3C50:018F FF2F JMP FAR [BX] 开头.
-G18E
AX=0C45 BX=0000 CX=0000 DX=F000 SP=4E20 BP=0000 SI=3FCD DI=4E20
DS=0C45 ES=0C45 SS=3FCD CS=3C50 IP=018E NV UP EI PL ZR NA PE NC
3C50:018E 2E CS:
3C50:018F FF2F JMP FAR [BX]
CS:0000=0034
-T
AX=0C45 BX=0000 CX=0000 DX=F000 SP=4E20 BP=0000 SI=3FCD DI=4E20
DS=0C45 ES=0C45 SS=3FCD CS=0C55 IP=0034 NV UP EI PL ZR NA PE NC
0C55:0034 9A00006B36 CALL 366B:0000 <--- 原始程式开头
-U
0C55:0034 9A00006B36 CALL 366B:0000
0C55:0039 9A1A0BF033 CALL 33F0:0B1A
0C55:003E 9ABA066B31 CALL 316B:06BA
0C55:0043 9AC2010531 CALL 3105:01C2
0C55:0048 9A0D28332E CALL 2E33:280D
8C55:004D 9A940A892D CALL 2D89:0A94
0C55:0052 9AEE248824 CALL 2488:24EE
-R
AX=0C45 BX=0000 CX=0000 DX=F000 SP=4E20 BP=0000 SI=3FCD DI=4E20
DS=0C45 ES=0C45 SS=3FCD CS=0C55 IP=0034 NV UP EI PL ZR NA PE NC
0C55:0034 9A00006B36 CALL 366B:0000
追踪到程式解压缩之後, 以 (SS*10H+SP) - (DS*10H+100H) 算出档案长度或自己猜一个
较大的长度并存档, 并且记下 CS,IP,SS,SP,DS 等暂存器的值 !!
例如此程式:
(3FCD*10H+4E20) - (0C45*10H+100H) = 385A0 (HEX)
^^^^^ 此长度记下来, 等一下还
要用一次.
-RBX <--- 将 HIGH WORD 填入 BX
BX 0000
:3
-RCX <--- 将 LOW WORD 填入 CX
CX 0000
:85A0
-N PASS1 <--- EXE 档不能直接写入, 所以另更名为 PASS1
-W DS:100 <--- PSP 底部紧接著程式码, 此时 DS 指向 PSP 开头, PSP 占 100H
Bytes, 所以从 DS:100 开始写起
Writing 385A0 bytes <--- 共写入的 Bytes
-Q <--- 跳出 DEBUG
_____________________________________________________________________________
STEP 2:
随便执行一个常驻程式(或是执行比 DEBUG 大的除错程式, 如 SYMDEB), 用意在
改变记忆体环境, 如此 EXESHAPE 才可找出相异之处, 再重覆 STEP 1, 但此次只须存档.
(Registered Only), 若您手中的 EXESHAPE 为 Non-Registered 则需再记下 CS 的值.
C:\XPRESS>PAGEMAKE <--- 笔者写的画面辅助功*
, 可用於 BBS,
修改程式码等,您刚看
到的 DEBUG 画面就是它抓下来的, 它是一个常驻程式
C:\XPRESS>DEBUG XPREAD.EXE
-G3F
-RF
NV DN EI PL NZ AC PO NC -ZR
-G52
-T
-G18E
-T
AX=0DF4 BX=0000 CX=0000 DX=F000 SP=4E20 BP=0000 SI=417C DI=4E20
DS=0DF4 ES=0DF4 SS=417C CS=0E04 IP=0034 NV UP EI PL ZR NA PE NC
0E04:0034 9A00001A38 CALL 381A:0000
此时将刚刚记下来的档案长度再填入 BX:CX, 若您的 EXESHAPE 为注册版就不需要
再记任何暂存器的值, 若为未注册版则需再记下 CS 的值.
</XMP></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -