《冠军足球经理2001》免光盘破解实录
啊,太爽了!破解成功的滋味就是一个爽字。你尝过没?NO? 跟我来。
《冠》是我第一个自立破解成功的软件。我是一个初学者,很多关于破解的知识还不懂,但我却能破解成功,我想实践是最重要的。之前我跟着一些破解实录破过readbook和flashget,虽是依样画瓢,不懂其所以然,但是掌握了如何使用工具,如S-ice,trw2000,pw32dsm,Winhex等。不过这些实录太过程化了,不好理解。我写这篇文章一是为了和大家分享我的快乐,二是希望能给初学者又一个比较好的破解实录。
我的《冠》是D版的,两张盘,B盘是中文版安装盘,安装后运行《冠》要检测A盘有没有cm0001.exe文件(其实D商可以在B盘刻上这个文件,我就不用多花五块大洋,可见D商同时是J商),检测了二三十次之多(是怎样知道的?我用Filemon监视过)。接着怎么干呢?这里我不建议用pw32dsm对《冠》的执行文件cmc.exe反汇编,一是cmc.exe很大,反汇编要很长时间;二是反汇编后的代码跟我在Trw2000里看到的不同,不知是不是pw32dsm的错误(望指教)。我是用Trw2000跟踪的。
启动Trw2000,点浏览,选择cmc.exe,点Load,《冠》就开始运行。在cmc.exe的程序入口trw2000会将其断下来。这时trw2000窗口弹出,我们输入bpx
GetDriveTypeA(这是在cmc请求系统读取盘符时设置断点),接着按Ctrl+N回到游戏(也可在游戏里出现要求光盘对话框后按Ctrl+N进入trw2000设同样的断点,按Ctrl+N回到游戏,点确定),在游戏处理数据库开始时就会请求系统读取盘符,trw2000将其断下,弹出trw2000窗口,断点显示在:
KERNEL32!GetDriveTypeA
0167:BFF77997 57 PUSH EDI
断点是在系统里,我们输入bd * 屏蔽掉设的断点,不断按F10单步运行,直到进入cmc领空(在trw2000窗口中显示出cmc时就是到了cmc领空),这时代码显示如下:
0167:007BF743 FFD7 CALL EDI
007BF745 83F805 CMP EAX,BYTE
+05
007BF748 7574 JNZ
007BF79E //在这里会跳走,不过再按几下F10又回来了(大概是判断光盘吧,请指教),经过几次的循环后就向下执行
007BF74A 6A65 PUSH BYTE
+65 //65的ASCII码是'E'
007BF74C 6A78 PUSH BYTE
+78 //78的ASCII码是'X'
007BF74E 6A65 PUSH BYTE
+65 //65的ASCII码是'E'
007BF750 6A2E PUSH BYTE
+2E //2E的ASCII码是'.'
007BF752 6A31 PUSH BYTE
+31 //31的ASCII码是'1'
007BF754 6A30 PUSH BYTE
+30 //30的ASCII码是'0'
007BF756 6A30 PUSH BYTE
+30 //30的ASCII码是'0'
007BF758 6A30 PUSH BYTE
+30 //30的ASCII码是'0'
007BF75A 6A6D PUSH BYTE
+6D //6D的ASCII码是'M'
007BF75C 6A63 PUSH BYTE
+63 //63的ASCII码是'C'
007BF75E 56 PUSH
ESI
007BF75F 8D9424F8030000 LEA EDX,[ESP+03F8]
007BF766 68E4AD9000 PUSH DWORD 0090ADE4
007BF76B 52 PUSH
EDX
007BF76C E82ECB1000 CALL 008CC29F
007BF771 8D842404050000 LEA EAX,[ESP+0504]
007BF778 55 PUSH
EBP
007BF779 8D8C2404040000 LEA ECX,[ESP+0404]
007BF780 50 PUSH
EAX
007BF781 51 PUSH
ECX
007BF782 E8A986CFFF CALL 004B7E30
007BF787 83C440 ADD ESP,BYTE
+40
007BF78A 85C0 TEST EAX,EAX
007BF78C 7468 JZ
007BF7F6 //注意,重点!
007BF78E 8D9424D0040000 LEA EDX,[ESP+04D0]
007BF795 52 PUSH
EDX
007BF796 E80588CFFF CALL 004B7FA0
007BF79B 83C404 ADD ESP,BYTE
+04
........
继续往下走
007BF7E7 50 PUSH
EAX
007BF7E8 51 PUSH
ECX
007BF7E9 E8E233DFF CALL 005B2BD0
//过了这个CALL就自动回到游戏,弹出要求放入游戏光盘的对话框。说明了什么呢?
说明从007BF743到007BF7E9就是在检测游戏光盘,那么里边一定有当满足条件就跳出这个循环的代码,赶快找找,发现在007BF78C可疑(其代码JZ
007BF7F6是当EAX为0就跳到007BF7F6),显然007BF7F6是在循环外,那么将JZ改为JNZ(非0跳走)不就行了吗。
这时我们可以试一试令EAX为0。当按F10单步执行到007BF78A时,输入R(修改暂存器内容命令),trw2000里的光标会在'EAX=FFFFFFFF'(我没放光盘嘛)处闪烁,我们输入0并确定。好,'EAX=00000000'了,按两下F10,果然跳出去了。按Ctrl+N回到游戏,对话框不见了,进度条飞快的跑起来,仿佛光明就要到来。啊~,该死的对话框又来了。想一想,哦!不是要检测二三十次嘛,该死的《冠》。
能否用83 C4 40 85 C0 74 68在16位编辑器Ultraedit或Winhex里查找并改为83 C4 40 85 C0 75
68(74=JZ,75=JNZ),事实是不行的,这么短的代码有很多相同的,我试过。怎办?
只能一遍一遍来啦。
经过漫长的重复的工作后(重复上面的工作,地址不同,但汇编还是相同的),终于当上曼联的主教练。哈哈哈!记住!一定要将JZ附近的16进制代码记下来,记到纸上哦,也可记到大脑里,只是三十多条罢了。不记得也没关系,下面就是:
E8A986CFFF 83C440 85C0 7468 8D9424D0040000
E8ACC3C9FF 83C440 85C0 746F 8D8C24E4050000
E87114EFFF 83C440 85C0 7468 8D8C2470050000
E89CCBD2FF 83C440 85C0 7468 8D8C2484050000
E85541D9FF 83C440 85C0 7468 8D8C24DC030000
E82B8EF2FF 83C440 85C0 746F 8D9424F8030000
E86FAEC2FF 83C440 85C0 746F 8D8C2470030000
E866AAFFFF 83C440 85C0 7468 8D8C246C030000
E88511CCFF 83C440 85C0 7468 8D8C24E8030000
E8588FDEFE 83C440 85C0 7468 8D942418040000
E86A190800 83C440 85C0 746F 8D8C24E4050000
E81515D6FF 83C440 85C0 746E 8D8C241C070000
E8A4320800 83C440 85C0 7468 8D8C24E0050000
E8D630EFFF 83C440 85C0 7468 8D8C24DC030000
E88204F9FF 83C440 85C0 7468 8D8C24E4030000
E8B9800A00 83C440 85C0 7468 8D8C247C030000
E8105BECFF 83C440 85C0 7468 8D8C24E0030000
E83A12C2FF 83C440 85C0 7468 8D8C2470030000
E875A9CCFF 83C440 85C0 7468 8D8C246C030000
E8BCE6F3FF 83C440 85C0 7470 8D8C24E8050000
E842C5CCFF 83C440 85C0 7468 8D8C2470030000
E864D1D3FF 83C440 85C0 7468 8D8C246C030000
E8ADE2F4FF 83C440 85C0 7468 8D8C2474050000
E85A9BFFFF 83C440 85C0 746F 8D8C2490030000
E85F2EC7FF 83C440 85C0 746F 8D9424F4030000
E8D684D7FF 83C440 85C0 7468 8D8C24DC030000
E820B4E7FF 83C440 85C0 7468 8D8C24DC050000
E89513D8FF 83C440 85C0 7468 8D8C246C030000
E8F0A5CDFF 83C440 85C0 7468 8D8C24F8030000
E852D1C0FF 83C440 85C0 7468 8D8C2470030000
E82DE2C7FF 83C440 85C0 7468 8D8C2470030000
将这些代码里的74改为75就行了,用Ultraedit或Winhex的方法不用我讲了吧。
我在上面已经说过我是一名初学者,错误在所难免,希望和大家探讨探讨。我的Email地址是sinco@21cn.com。
- 标 题:《冠军足球经理2001》免光盘破解实录_供菜鸟阅读 (5千字)
- 作 者:sinco
- 时 间:2002-1-22 0:24:44
- 链 接:http://bbs.pediy.com