暴破楚汉棋缘

[ 晴 2007-5-18 23:34 | by 鬼谷军师 ]
| |
楚汉棋缘是一款挺不错的象棋人机对弈程序,虽然不需要注册便可以无限制的和电脑pk,但是注册后才能得到全部的功能,比如能使用人机对战的中、高、自由级,人机对战时可随时交换红黑方等等。
办公室不能上网,我就下载了一个这玩意儿,趁没人的时候和它对砍两盘。这个电脑的确很猛,迄今为止,我还没赢过它一次。我搬来n多人帮忙,悔棋甚至达五六步,还是没能战胜它,这个郁闷是老实下棋的人所体会不到的。初级的电脑就这么厉害,更甭说中级、高级的了,咱还是玩入门级的吧。不过没有注册的话,是没法调级别的。那就在不行的时候跟电脑调换红黑棋子,嘿目嘿目……也不行,还要注册。
今天加了一晚上的班,终于把工作完成的差不多了,回到家试了试破解这个程序,居然很容易就搞定了。当然,我是不会去跟踪注册码算法的,直接暴破。
打开ollydbg想找暴破点,结果没找到。又换了W32Dasm静态反汇编,串式数据参考里面居然有一条“注册名或注册码输入不对,其中注意1(数字)、I(大写字母)……”

双击,来到以下代码处:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0044403A(C)
|
:00444162 66C78560FFFFFF9401      mov word ptr [ebp+FFFFFF60], 0194

* Possible StringData Ref from Data Obj ->"注册名或注册码输入不对,其中注意1(数字)、I(大"
                                        ->"写字母)l(L的小写)、0(数字)、o(小写字母)"
                                        ->"、O(大写字母)等的区别!"
                                  |
:0044416B BAAE905000              mov edx, 005090AE
:00444170 8D8578FFFFFF            lea eax, dword ptr [ebp+FFFFFF78]
:00444176 E8F1350900              call 004D776C
:0044417B FF856CFFFFFF            inc dword ptr [ebp+FFFFFF6C]

很明显,这段代码跳转自0044403A这个地址,向上翻,有一条:
* Possible StringData Ref from Data Obj ->"注册成功!"
                                  |
:004440F1 BAA3905000              mov edx, 005090A3
:004440F6 8D4580                  lea eax, dword ptr [ebp-80]
:004440F9 E86E360900              call 004D776C

再向上,到0044403A处,看到以下代码:
:0044402B 8B854CFFFFFF            mov eax, dword ptr [ebp+FFFFFF4C]
:00444031 50                      push eax
:00444032 E851E6FFFF              call 00442688
:00444037 59                      pop ecx
:00444038 84C0                    test al, al
:0044403A 0F8422010000            je 00444162

暴破点就这么找到了,把0F8422010000改成0F8522010000,也就是把je改成jne,就可以跳过注册失败对话框了。快速编辑字节,改过之后保存即可,或者用ultraedit到0004363A这个偏移地址去修改也行。
试了试,不用输入任何东西,点注册,提示注册成功,标题栏也变成了楚汉棋缘注册版。其中的功能限制也被取消了,这样就可以畅通无阻地虐待电脑啦。oh yeah,老子要报仇!
发表评论
昵称 [注册]
密码 游客无需密码
网址
电邮
打开HTML 打开UBB 打开表情 隐藏 记住我