clockz v1.1
请用 ARCHIE 找 clockz.zip
这是一个可显示世界各地的时间
(1) 输入名字,注册码...任意填(但这次注册码不要
填78787878了 ,可填中文 但不能太长)
按 ctrl-d 切入 winice
下 bpx hmemcpy
(2) 按F5返回WIN95
按下OK
(3) 被拦截,下 BD* 暂停中断
按F12 数下 到了 XXXX:0040BD6D
(4) 按F10 数下 XXXX:0040BDD7 CALL [00413328]
再按一下F10,就跑出错误视窗
按一下F6,使游标跑到程式区,按PAGE UP
往上一看 XXXX:0040BDC2 JMP 0040BDDD
可跳过 XXXX:0040BDD7 CALL [00413328]
但程式没走到这一行, WHY??
再往上一看,
XXXX:0040BDA2 CMP [EBP-4],1
XXXX:0040BDA6 JNZ 0040BDC7
因此时有跳跃,所以啦!
按上下键调整使游标停在 XXXX:0040BDA2 按F9,就是设断
按F5,离开WINICE,再注册一次
(5) 在XXXX:0040BDA2 被拦,下 E EBP-4 1 的指令
就是改记忆体的值, 按F5
跑出了注册成功的画面了...
嗯 ! 有点爽了!
但依惯例,可能还没注册成功
只知此比较有问题而已
(6) 离开程式,再注册一次
在 XXXX:0040BDA2 被拦
分析以下几行
XXXX:0040BD9A CALL 0040CB2E
XXXX:0040BD9F MOV [EBP-4],EAX
XXXX:0040BDA2 CMP DWORD PTR [EBP-4],1
XXXX:0040BDA6 JNZ 0040BDC7
可知要另 EAX=1 才不会跳跃,
可知XXXX:0040BD9A CALL 0040CB2E 有问题,设断点
(7) 再注册一次,XXXX:0040BD9A CALL 0040CB2E 被拦下
按F8进入观察 , 目标 使 EAX=1
(8) 按F10 开始TRACE,
要按很久喔! 会上下来跑去,
想偷懒可下 G 0040CC37
可直接跳到 XXXX:0040CC37
到了 XXXX:0040CC37 CMP [EBP-4],00
XXXX:0040CC3B JNZ 0040CC8E <- 设断
跳到 0040CC8E 就GAME OVER 了,
WHY? 看看程式就知
(9) 再注册一次,被拦截
若不是在XXXX:0040CC3B,可能是停在以前的断点
按F5, 到了 XXXX:0040CC3B
按一下 A 在按ENTER
A 就是 组译的意思
XXXX:0040CC3B 要确定是在这个位址喔
JNZ 0040CC8E 的长度是六个BYTE,知道如何看吧...
我想让它不跳跃...
所以改成六个 NOP
XXXX:0040CC3B NOP (按ENTER)
XXXX:0040CC3C NOP (按ENTER)
XXXX:0040CC3D NOP (按ENTER)
XXXX:0040CC3E NOP (按ENTER)
XXXX:0040CC3F NOP (按ENTER)
XXXX:0040CC40 NOP (按ENTER)
XXXX:0040CC41 不下任何指令,直接按ENTER
按F5,可执行了
画面左下角有个地球...按一下,选ABOUT
看到自已的名字了吧 注册码也看到了吧
如果刚才填78787878就...
由此可知刚才改城市是对的,可注册又不会影响程式执行
所以离开,重新注册,到了
0040CC3B 的地方, 下CODE ON 的指令
观察机械码...
所以用 ULTRAEDIT 编辑CLOCKZ.EXE 177152 BYTE
把 837DFC00 0F854D000000
改 -------- 909090909090
------- 是不变的意思
就 OK啦!
这个软体也满好破解的 还在敝人的能力范围
希望大家破解了什麽软体...
能post出来和大家一起分享...
大家彼此交流...
thanks
我是习惯改机械码...因我比较懒嘛...
我很欣赏能把注册码算出来的人...