• 标 题:大家一齐来斗地主啊!!!! (3千字)
  • 作 者:juniority
  • 时 间:2001-5-27 11:32:10
  • 链 接:http://bbs.pediy.com

哈哈,师父您好!小弟把这篇该死的发不出的文章上传来了!以下是正文:
大家好!小弟和在座各位一样,热衷于玩破解,但小弟只是初步接触破解不久,略知一二,不值一提。在小弟花了一个多星期时间学习中,居然有所收获,在此献丑,还望各位大侠多多指教,小弟感激不尽!嘻嘻…
好了,废话说了一大堆,下面就正式开始啦!
破解对象:斗地主游戏
破解工具:当然是有名的soft ice 啦!
难度:超级easy

第一步:运行“斗地主”游戏;找到要注册的地方;由于是要求输入中名名字,就随便啦,我用的是“大头宇”;然后在注册码填写处输入任意数,如“12121212…”,其实写什么数字都无所谓啦,又不是真的注册码,最紧要好记!

第二步:输入注册码后,不要急着按确定哦!(不然会后悔的!:-) )按ctrl+d 键叫出soft ice,设定断点,我喜欢用“bpx hmemcpy”,(其实也只会用这一句,嘻嘻。)

第三步:按f5键返回注册处,按下确定键。是不是又出现了soft ice的窗口?是的话那就恭喜了,soft ice成功地把它拦截下来了,这就成功了一半啦!(吹水的。)输入指令bd *,使这个断点失效;

第四步:接下来就easy了,不断地按f12键吧,直到出现错误信息为止。这一步是不是好轻松,不过要把按的次数记下来啊!一下也不能少。我是在按第60下时出现错误信息的。如果数错了数,那就证明了这个世界上还有比我更笨的人,哈哈哈!

第五步:返回soft ice,输入be * 使所有断点恢复,也就是说重复第一步的动作。不要觉得麻烦啊!已经成功了一半啦,加油啦!不过在这之前最好先输入bc * 清除所有断点,不然soft ice又会跑出来拦截。

第六步:重复到第四步,按f12键时,输入比上一次按的次数少一下,即按到出错前的一下。我是按到59下。来到以下代码区;接着按f10键单步跟踪进去:
:0045F3DD 8BC6 mov eax, esi
:0045F3DF E84439FAFF call 00402D28 --------看到一个call ,留意啦!
:0045F3E4 803DB028460000 cmp byte ptr [004628B0], 00 --------超!只是作比较,不是!
:0045F3EB 746A je 0045F457
:0045F3ED 8D55F8 lea edx, dword ptr [ebp-08]
:0045F3F0 A1A8284600 mov eax, dword ptr [004628A8]
:0045F3F5 E8A2F5FEFF call 0044E99C --------又一个call,小心小心!
:0045F3FA A1AC284600 mov eax, dword ptr [004628AC] --------又不是,这是操作数转移。
:0045F3FF 50 push eax
:0045F400 8D45FC lea eax, dword ptr [ebp-04]
:0045F403 50 push eax
:0045F404 8B0DA4284600 mov ecx, dword ptr [004628A4]
:0045F40A 8B55F8 mov edx, dword ptr [ebp-08]
:0045F40D A144294600 mov eax, dword ptr [00462944]
:0045F412 E805EEFEFF call 0044E21C --------又来!
:0045F417 8D4DF4 lea ecx, dword ptr [ebp-0C] --------他奶奶的!
:0045F41A 8B55F8 mov edx, dword ptr [ebp-08]
:0045F41D 8B45FC mov eax, dword ptr [ebp-04]
:0045F420 E883F6FEFF call 0044EAA8
:0045F425 8B55F4 mov edx, dword ptr [ebp-0C]
:0045F428 8D45FC lea eax, dword ptr [ebp-04]
:0045F42B E81845FAFF call 00403948
:0045F430 A1A8284600 mov eax, dword ptr [004628A8]
:0045F435 8B55FC mov edx, dword ptr [ebp-04]
:0045F438 E8FF47FAFF call 00403C3C --------哼哼!终于找到了!
:0045F43D 740C je 0045F44B
:0045F43F A154294600 mov eax, dword ptr [00462954]
:0045F444 E84F3DFDFF call 00433198
单步跟踪的目的是:找出有问题的call。一般的语句结构为“ call… je”当遇上一个call时,就跳到另一个地方执行特定的程序。ok,我们用d eax来看看,是不是看到了先前输入的假注册码“12121212…”?好了!我们成功了!用d edx查看,就得到了真的注册码:MK1H 1TW2 E21D E0M4
这个软件是我的处女作,它的破解即不难又不易,比较适合初学者来实习开刀。希望我这篇拙作能够给初学的朋友们一些启示吧!加油哦!我也会继续写一些笨拙的破解心得(大家不要扔鸡蛋哦!拜托)请各位指点的。
文:Juniority