2488的破解过程
0A20:6352 2EC606866200 MOV BYTE [CS:6286],00
0A20:6358 803E420001 CMP BYTE [42],01
0A20:635D 90 NOP
0A20:635E 90 NOP
0A20:635F 90 NOP
0A20:6360 0E PUSH
CS
0A20:6361 E8E60A CALL 6E4A
0A20:6364 3D0100 CMP AX,01
0A20:6367 EB67 JMP
SHORT 63D0
0A20:6369 3D0600 CMP AX,06
0A20:636C 7416 JZ
6384
0A20:636E 3D0000 CMP AX,00
0A20:6371 90 NOP
0A20:6372 90 NOP
0A20:6373 2EC606866200 MOV BYTE [CS:6286],00
0A20:6379 1E PUSH
DS
0A20:637A 0E PUSH
CS
0A20:637B 1F POP
DS
0A20:637C BA4A62 MOV DX,624A
//这里会显示一些出错信息,
//通常的DOS程序在运行前不应该会显不出错信息。
//所以这里应该是没有用的,也就是说不要让程序走到这。
0A20:637F B409 MOV
AH,09
0A20:6381 CD21 INT
21
0A20:6383 1F POP
DS
0A20:6384 9A236D9A11 CALL 6D23
.
.
.
0A20:63BD EB0A JMP
SHORT 63C9
0A20:63BF 90 NOP
0A20:63C0 BAB862 MOV DX,62B8
//这里一定是别的出错信息,
//因为INT 21+AH=09只要改变DX的值就可以显示不到的信息
//了,通常软件会做一个出错信息提示集合。
0A20:63C3 EB04 JMP
SHORT 63C9
0A20:63C5 90 NOP
0A20:63C6 BAD562 MOV DX,62D5
//同上
0A20:63C9 B409 MOV
AH,09
0A20:63CB CD21 INT
21
0A20:63CD E9B000 JMP 6480
0A20:63D0 2EC606866201 MOV BYTE [CS:6286],01
//在这里放标志,以后会用到。
0A20:63D6 803E190001 CMP BYTE [19],01
0A20:63DB 7525 JNZ
6402
0A20:63DD 803E420000 CMP BYTE [42],00
0A20:63E2 7408 JZ
63EC
0A20:63E4 2E803E866201 CMP BYTE [CS:6286],01
//用到了上面的标志。
0A20:63EA 7416 JZ
6402
0A20:63EC 8C0E2800 MOV [28],CS
0A20:63F0 C70626008762 MOV WORD [26],6287
0A20:63F6 9A546D9A11 CALL 6D54
0A20:63FB 0BC2 OR
AX,DX
0A20:63FD 7403 JZ
6402
0A20:63FF EB7F JMP
SHORT 6480
0A20:6401 90 NOP
通常在解狗时会看到很多的标志保存和读取。这些都是关键不要放过。还有,程序运行需要CALL,所以尽量让程序多走几个CALL,这样破解的可能
性比较大,另外,解狗也要经常试,有的时候也要靠运气。
罗降神
2002.2.18
- 标 题:本人作品,2488的解狗教程(DOS下的狗),应客户要求,不便说出软件名字。 (2千字)
- 作 者:罗降神
- 时 间:2002-2-18 9:09:53
- 链 接:http://bbs.pediy.com