|
发表于 2009-12-7 15:39:03
|显示全部楼层
【使用工具】 TRW2000 1.23
【破解平台】 Win98
【软件名称】 体彩霸主
2.8
【下载地址】
自己找
【破解声明】
本文纯属技术交流,不当之处还请大侠原谅!
--------------------------------------------------------------------------------
【破解内容】
这个软件是两年前应一个朋友的要求破的,现在版本好像是3.0了,发2.8版的破解应该对它没影响吧?主要是在论坛上看到acafeel兄弟谈到此类程序的破解,感觉这类程序还是有一定的特殊性(DOS下全屏运行,独占模式,无法用OllyDBG这类Ring-3级调试器来跟踪)。现在论坛上很多兄弟刚接触的破解工具就是OllyDBG,对TRW、SoftICE缺乏了解,也算是顺便补补课吧。主要是当时调试的时候笔记并不详细,写的比较乱,现在又不大想再看
TRW
那张黑脸,大家主要是看看调试这类程序的方法。
启动TRW2000,运行体彩霸主,密码中第一个为5其余11个数随便输入(都是数字),回车,显示密码错误。不要关闭体彩霸主,切换出其DOS窗口,运行WINHEX,选定体彩霸主所在内存,查找你刚才随便输的数,找到后向上看,可看到如‘00000XXXXXX’的一组数字,把后六位记下来备用。重新启动体彩霸主,输入密码,前七位为5XXXXXX(此处的XXXXXX就是刚才在WINHEX中看到的数),后面随便输,按Ctrl+M(Ring-0级调试,Ctrl+N的Ring-3级无效)调出TRW,输入命令:S
0 L FFFFFFFF '5XXXXXX’,回车,得到你输入密码的内存地址,下BPM XXXX
R|W(此处XXXX为输入密码内存地址),F5继续运行体彩霸主,回车,被TRW断下:
5C6C:1341 8D36C015
LEA
SI,[15C0]
5C6C:1345 803C35
CMP BYTE [SI],35
;比较第一个数是不是“5”
5C6C:1348 7503
JNZ 134D
(NO JUMP) ;输入注册码按回车后中断的地方
5C6C:134A EB0B
JMP SHORT
1357
5C6C:134C 90
NOP
先按F12从这个CALL里返回,在TRW2000的反汇编窗口中往上翻,在下面的08B6这一行上设个断点,重新启动体彩霸主,输入试炼码,下面开始分析:
5C6C:08B6
58 POP
AX
5C6C:08B7 5A
POP DX
5C6C:08B8
1F POP
DS
5C6C:08B9 2EC606BC1526
MOV BYTE [CS:15BC],26
5C6C:08BF
90 NOP
5C6C:08C0 2EC606BE150C MOV
BYTE [CS:15BE],0C
5C6C:08C6 90
NOP
5C6C:08C7 E8F30B
CALL 14BD
5C6C:08CA
2E803EBF150C CMP BYTE
[CS:15BF],0C 比较密码是否为12位
5C6C:08D0 7512
JNZ 08E4
不等则出错
5C6C:08D2 E8620A
CALL 1337
跟进到下面的1341行处理
5C6C:08D5 2EC706BE120200 MOV
WORD [CS:12BE],02
5C6C:08DC E88705
CALL 0E66
跟进到下面的0E66行处理
5C6C:08DF B8014C
MOV AX,4C01
5C6C:08E2
CD21 INT
21 密码检测完后的显示结果
5C6C:1341
8D36C015 LEA
SI,[15C0] 把输入的密码送到SI
5C6C:1345 803C35
CMP BYTE
[SI],35 比较第一个数是不是5
5C6C:1348 7503
JNZ 134D
不等则出错
5C6C:134A EB0B
JMP SHORT 1357
5C6C:134C
90 NOP
5C6C:134D 2EC606A61300 MOV
BYTE [CS:13A6],00
5C6C:1353 90
NOP
5C6C:1354 EB47
JMP SHORT 139D
5C6C:1356
90 NOP
5C6C:1357 BB0000
MOV BX,00
5C6C:135A B90700
MOV
CX,07
5C6C:135D AC
LODSB
把输入密码的ASCII码一个个送到AL
5C6C:135E 2C30
SUB AL,30
输入密码的每位数字
5C6C:1360 02F8
ADD BH,AL
5C6C:1362 32D8
XOR
BL,AL
5C6C:1364 E2F7
LOOP 135D
如果CX不等于0则再到135D处理,即取输入的前8个密码。
5C6C:1366 8D36C015
LEA SI,[15C0]
再把输入的密码送到SI
5C6C:136A 80FF09
CMP BH,09
处理BX高位
5C6C:136D 7605
JNA 1374
5C6C:136F 80EF0A
SUB BH,0A
5C6C:1372
EBF6 JMP
SHORT 136A
5C6C:1374 80C730
ADD BH,30
5C6C:1377 8AC7
MOV
AL,BH 把处理后的ASCII码送到AL
5C6C:1379 3A4407
CMP
AL,[SI+07] 同输入密码的第8位进行比较
5C6C:137C 7402
JZ
1380 不等则错
5C6C:137E EBCD
JMP SHORT
134D
5C6C:1380 80FB09
CMP BL,09
处理BX低位
5C6C:1383 7605
JNA 138A
5C6C:1385 80EB0A
SUB BL,0A
5C6C:1388
EBF6 JMP
SHORT 1380
5C6C:138A 80C330
ADD BL,30
5C6C:138D 8AC3
MOV
AL,BL
5C6C:138F 3A4408
CMP AL,[SI+08]
把处理后的BX低位送AL,同输入密码的第9位比较
5C6C:1392 7402
JZ 1396
5C6C:1394 EBB7
JMP SHORT
134D
5C6C:1396 2EC606A61301 MOV
BYTE [CS:13A6],01
5C6C:139C 90
NOP
5C6C:139D
5A POP
DX
5C6C:139E 59
POP CX
5C6C:139F
5B POP
BX
5C6C:13A0 58
POP AX
5C6C:13A1
5F POP
DI
5C6C:13A2 5E
POP SI
5C6C:13A3
07 POP
ES
5C6C:13A4 1F
POP DS
5C6C:13A5
C3 RET
5C6C:0E66 2E833EBE1201
CMP WORD [CS:12BE],BYTE
+01
5C6C:0E6C 7410
JZ 0E7E
5C6C:0E6E 2E833EBE1202
CMP WORD [CS:12BE],BYTE
+02
5C6C:0E74 740E
JZ 0E84
5C6C:0E76 2E833EBE1203
CMP WORD [CS:12BE],BYTE
+03
5C6C:0E7C 740C
JZ 0E8A
5C6C:0E7E B80000
MOV AX,00
5C6C:0E81
EB0D JMP
SHORT 0E90
5C6C:0E83 90
NOP
5C6C:0E84 B88509
MOV
AX,0985 送0985H到AX
5C6C:0E87 EB07
JMP SHORT
0E90
5C6C:0E89 90
NOP
5C6C:0E8A B80A13
MOV AX,130A
5C6C:0E8D
EB01 JMP
SHORT 0E90
5C6C:0E8F 90
NOP
5C6C:0E90 FC
CLD
5C6C:0E91 BB3412
MOV BX,1234
1234H到BX
5C6C:0E94 BA2340
MOV DX,4023
4023H到DX
5C6C:0E97 B9F0FF
MOV CX,FFF0
FFF0H到CX,设置循环次数
5C6C:0E9A 058509
ADD AX,0985
5C6C:0E9D 51
PUSH
CX
5C6C:0E9E D1C8
ROR AX,1
5C6C:0EA0 03C1
ADD
AX,CX
5C6C:0EA2 33D9
XOR BX,CX
5C6C:0EA4 D1CB
ROR BX,1
5C6C:0EA6
03D0 ADD
DX,AX
5C6C:0EA8 F7D1
NOT CX
5C6C:0EAA D3C2
ROL DX,CL
5C6C:0EAC
33C2 XOR
AX,DX
5C6C:0EAE 03D8
ADD BX,AX
5C6C:0EB0 2EFF06BC12
INC WORD [CS:12BC]
把12BC的值加1,在我机器中初始值为07B0
5C6C:0EB5 81FBAC96
CMP BX,96AC
把BX同表中值一一比较
5C6C:0EB9 7503
JNZ 0EBE
5C6C:0EBB E9BDFD
JMP 0C7B
5C6C:0EBE
Address:
|5C6C:B4EA(C)
|
5C6C:B519 B400
MOV AH, 00
5C6C:B51B AC
LODSB
5C6C:B51C 2E0106C7EB
ADD CS:[EBC7], AX
5C6C:B521 2E8316C5EB00
ADC WORD PTR CS:[EBC5], 0000
* Referenced
by a (U)nconditional or (C)onditional Jump at
Address:
|5C6C:B4B0(U)
|
5C6C:B527 5F
POP DI
5C6C:B528
5E
POP SI
5C6C:B529 5A
POP DX
5C6C:B52A
59
POP CX
5C6C:B52B 5B
POP BX
5C6C:B52C
58
POP AX
5C6C:B52D 07
POP ES
5C6C:B52E
1F
POP DS
5C6C:B52F C3
RET
--------------------------------------------------------------------------------
感谢您耐着性子看完!这篇文章只是作为技术交流,请勿把本文中的内容用于非法用途! |
|