发信人: darkfly() 
整理人: williamlong(2000-02-10 14:10:17), 站内信件
 | 
 
 
       			★Dark Baby 破解小组★
 
 				             【CoolFly】
 =========
 破解前话:
 =========
 首先,你得准备一套破解工具,如: 鬼佬的ICE,GAMETOOLS,TR,DEBUG,SYMDEB,等追 踪调试
 解释器,然后须准备用于修改的工具,如: UltraEdit,Pctools,Hiew,Pse等等.
 上面的东西准备完毕后,嗯,差不多了,再翻翻组合语言的书,喂,不要皱眉头哦,坚 持才会
 胜利嘛?其实也不是特别的困难啦,只要懂得什么是 JMP,JNZ,CMP,CALL,... 这些 都知道
 了吗? 嗯,孺子可教也!! 接下来,我就跟你讲一讲那个鬼佬的ICE,它的热键是Ctr l-D .
 F5: 返回USER程序
 F4: 看USER画面
 F6: 命令区与记忆区切换
 F8: 单步执行,进入CALL
 F9: 设断点
 F10: 单步执行,不进入CALL
 F12: 相当于P RET
 D: 看记忆体	E: 修改记忆体	R: 修改寄存器	G: 执行程式
 CODE ON: 观看机械码	
 差不多了,跟着看看我下面的'破文'就可以明了一二,最重要的是自己实践,对吗? !
 
 ********************************************************************** *******
 第一回
 ********************************************************************** *******
 ★目标软件: KanjiWEB3.0
 时间限制: 大约一个月
 
 1998年12月25日晚23:14分
 KANJIWEB 是个不错的内码转换程序,但是有时间限制,需要注册。
 首先打开 MultiWord.exe 程序,然后选择 register,
 在注册框中输入任意字符,切换到 winice ,输入:
 bpx getdlgitemtext ,按F5键回到程序,按下OK按键,程序被中断,
 我们就从这儿一路P下去,最后到了
 ....
 ....
 ....
 
 30f7:39c9	xor byte ptr [si],86
     :39cc	inc si	
     :39cd	lea ax,[bp+fe2f]
     :39d1	cmp si,ax
     :39d3	jb 39c9
 
 程式到此循环九遍,程式在判断九位注册码,追到
 
 30f7:3a4e call messagebox
 
 此时出现注册失败的画面,因此我就从此开始逆查,往上一看,
 
 xxxx:39eb repz cmpsb
     :39ed jz 39f4	'判断语句,如果相等则跳到29f4继续执行。
 xxxx:xxxx .
           .
 xxxx:39f4 or ax ax
 xxxx:39f6 jnz 3a3a	'比较,如果不等则跳到3a3a处。
 
 按F10键执行到3a3a处一看:
 
 xxxx:3a3a mov si,0001
 ...
 ...
 xxxx:3a4e call user!messagebox 	'执行到此处就会出现上面的注册失败的画面 。
 ....
 xxxx:3a6d or si,si
 xxxx:3a6f jnz 3a87	'跳到3a87,并结束注册
 
 所以39f6 处的比较绝对有问题,假设相等就不会跳跃了,我们从39f6往下看:
 
 ....
 ....
 xxxx:3a32 jmp 3a53
 xxxx:3a34 mov si,[bp-08]
 xxxx:3a37 jmp 3a6d
 
 而跳到3a53处往下执行是:
 ....
 ....
 xxxx:3a6f jnz 3a87 
 ....
 xxxx:3a74 call user!getparent	'处理注册
 ....
 xxxx:3a82 call user!sendmessage	'发送注册信息。
 ....
 xxxx:3a87 xxxx
 ....
 xxxx:3a8c call user!enddialog	'注册结束信息
 
 我想上面的关键语句行一看就会明白39ed和39f6语句有问题
 
 方法,下code on 命令将修改下列机械码:
 
  30f7:39f6 jnz 3a3a	-> nop nop (因为是两个字节,所以填两个nop)
 
 退出后,注册成功,软件可以正常使用啦!
 
 【结论】
 
 查找:  MULTWORD.EXE (49,008 BYTE)
        <1> 0BC0 <7542> C646FBFF -> 0BC0 <9090> C646FBFF 
                  ^^^^                    ^^^^
 破解完成,可以上床睡觉了。看看表,哇,很晚了吗?see you letter!
 
 ********************************************************************** *******
 第二回
 ********************************************************************** *******
 ★目标软件: Hot Backgrounds2.0.0 和 Hot Buttons2.0.0
 
 1998年12月26日中午12:33分破掉Hot Backgrounds 软件
 首先载入winice.exe
 运行Hot backgrounds ,出现注册画面,在注册框中输入任意值,然后回到winic e中,
 输入:
 bpx getdlgitembox 设置中断,按F5键回到程序中,按下OK键,被winice拦到。 
 按F10键到
 
 xxxx:0cc4 jmp 0d05
 xxxx:0cc6 jle bx,[bp-06]
 ....
 ....
 xxxx:0d09 jle 0cc6	'此处是个循环,判断输入字符。
 xxxx:0d0b cmp word ptr [bp-08],00
 xxxx:0d0f jnz 0d5b 	'此处是个判断,如果不等则到0d5b
 
 按F10键时,没跳到0d5b处,继续再往下执行,到
 
 xxxx:0d42 call user!messagebox	'出现注册失败画面
 因此试着将
 
 xxxx:0d0f jnz 0d5b 改为 jmp 0d5b 跳到0d5b处执行时,一切正常。
 
 【结论】
 修改机械码:	
 
 找 837EF800 754A C45EFA 26FFB7FF04 -> EB4A
             ^^^^                      ^^^^
 一切完成。同样,Hot Buttons 软件修一模一样哦。
 
 
 ********************************************************************** *******
 第三回
 ********************************************************************** *******
 ★目标软件: HomeSite3.1 
 使用期限1个月,使用次数为50次。
 
 因为软体本身没有要求输入注册号的地方,需要换一种方法CRACK。
 将日期调增一个月。
 呼出win-ice
 (1) 输入 BPX CREATEWINDOW
 (2) 运行程序,被中断,按10次F12键,走到
       015F:578107 XOR EAX,EAX
 (3) 开始按F10开始TRACE!
 (4) 当走到 015F:578131 CALL 004FFE68 处时出现失败视窗。
       在这个地方,我以为只要跳过此CALL 即可,(后来得知:谁知错也。)
 (5) 往上看,
     {	15F:578115 CALL 577428
     {  	XXX:57811A TEST AL,AL
     {	XXX:578A1C JZ 57812F	->改为 JMP 57812F
   1 {	XXX:XXXXXX ...
     {		   ...
     {	XXX:57812A JMP 578523	->如果走到这一步,程序就死掉了.(千万小心)
     {	XXX:57812F MOV AL,01
 	XXX:XXXXXX ...
 		   ...
     {	XXX:578131 CALL 004FFE68
     {	XXX:578136 TEXT AL,AL
   2 {	XXX:578138 JNZ 57814B	->改为 JMP 57814B
     {	XXX:57813A ...
     {	XXX:XXXXXX ...
     {	XXX:578146 JMP 578523	->其实这个JMP是终止程序的跳转。
     {	XXX:57814B
 	
 现在可以知道只要程序不执行到两个 XXX:XXXXXX JMP 578523 处即可。
 它们的上面都有个判断程式。只要将其改为无条件转移即可。应该明白了吧。
 
 注: 1处为判断程式使用次数是否超过,2处为判断程式使用期是否超过。
 
 【结论】
 
 查找:   HOMESITE3.EXE (2,906,112 BYTE)
 	84C0 7411 A178 C359	->84C0 EB11 A178 C359
              ^^^^                      ^^^^
 	84C0 7511 A178 C359	->84C0 EB11 A178 C359
              ^^^^                      ^^^^				
 
 修改完毕后,调出程式,但出现一个不太好看的信息框,不过没有关系,能够正 常使用,
 那么就一切OK了。
 
 ********************************************************************** *******
 第四回
 ********************************************************************** *******
 ★目标软件: UltrEdit-32
 时间限制: 40天
 
 将日期调增
 首先载入Win-ice
 输入中断: BPX CREATEWINDOWEX
 运行程式,被中断,按F12 23下走到:
 15F:4060A1 TEXT EAX,EAX
 按F10继续走,当走到
 
 15F:406555 CALL 407FEF
 XXX:40655A TEXT EAX,EAX
 XXX:40655C JNZ 406564
 XXX:40655E AND [ESI+0124],EAX
 XXX:406564 CMP DWORD PTR[EBP-10],00
 XXX:406568 JNZ 406DF9
 ...
 XXX:406DF9 PUSH ...
 XXX:XXXXXX
 ...
 XXX:406E11 JG 406E28	->将其改为NOP NOP
 XXX:406E12 CMP DWORD PTR [ESI+00000124],00
 XXX:406E22 JNZ 40659B	->改为JMP 40659B
 XXX:406E28 CALL ??	->如果走到这个CALL就会出现询问注册号的画面。
 知道怎么做了吧?对了,将上面的一个比较改为无条件跳转 即可了。
 
 【结论】
 修改:	UEDIT32.EXE (772,608 BYTE)	
 	XXX:406E22 0F8573F7FF 	->E974F7FFFF90
                    ^^^^^^^^^^     ^^^^^^^^^^^^ 
 	意思是: 将 XXX:406E22 JNZ 40659B ->JMP 40659B
 
 	XXX:406E?1 7F0D	838E2401->9090  838E2401
 		   ^^^^           ^^^^
         意思是: 将 XXX:406E11 JG 406E28 ->NOP NOP
  
 如果觉得每次运行程序时出现的画面很讨厌,可以修改如下机械码:
 
 查找: 7516 8B4DD86A06	->EB16 8B4DD86A06
       ^^^^                ^^^^
 这套软件,我总共花了将近几个小时,感觉很不舒服。但还是将它破了,它通过 你输入
 的注册号放入.INI文件中,第二次打开程序时再从.INI文件中取出注册号对比, 虽然我
 总不能找到它的注册号,谁叫咱的组合语言功底差呢?
 
 ********************************************************************** *******
 第五回
 ********************************************************************** *******
 ★目标软件: SNAGIT/32 Version 4.2.1
 是个抓图软件,时间限制为: 45天,我试着把日期调增一年后,发现只要在延迟 画面
 上的GIVE ME MORE TIME 按钮上点一下又可以进入程序了。
 这次的目标是做掉延迟画面。
 首先载入WIN-ICE
 打下中断: BPX CREATEWINDOW
 按7次F12,后按F10键直到:
 
 15F:42C21A CALL 468CF1
 XXX:XXXXXX ...
 XXX:42C2C2 CALL 42D0CF	->这个CALL绝对有问题。
 如果你问我怎么知道,我说我有试过啊,。真是麻烦唉,你好不开窍哟##$@**@
  那么换F8键进入观摩一下吧?
 当TRACE 到
 
 15F:42D45D CALL 42DFC8	->出现延迟画面啦。
 抬头望青天啦!
 XXX:42D3C6 CMP [EBX+00000108],EDI
 XXX:42D3CC JNZ 42D462	->将它改为JMP 42D462即可。
 XXX:42D3D2 CMP [EBP+08],EDI
 XXX:42D3D5 JNZ 42D462	->改这个也行,看你喜欢啦?
 
 【结论】
 查找:	SNAGIT32.EXE (743,424 BYTE)
 	0F8590000000 397D08 ->E99100000090 397D08
         ^^^^^^^^^^^^          ^^^^^^^^^^^^
 附注: 当我试将日期调后,发现已经不知被哪位XX杀过了,所以可照常使用.没日 期限制. 
 
 ********************************************************************** *******
 第六回
 ********************************************************************** *******
 ★目标软件: XARA 3D Version 2.10
 功能限制: 不能选择背景图案
 
 现在我们就来破它吧,首先当然是载入WIN-ICE了,否则,这么多课简直是白学了 。
 选择HELP菜单下的UNLOCK选项,随意输入一个注册码,如: 79797979
 搜出位址后设断,二拦后在
 16AF:3A90 JMP 3AAB
 XXXX:XXXX ...
 ...
 15F:40C69E CALL 47542F	->此CALL绝对有问题,因为失败视窗出现了。
 往上看有没有可跳过此CALL的方法,哗,找到了,
 15F:40C4DA CMP EDX,ECX 	->在此设断,重新注册。
 XXX:40C4DC JNZ 0040C595
 ...
 XXX:40C590 JMP 40C63F	->可跳过XXX:40C69E 那个CALL
 
 执行,咦,竟然没走到我刚设的那个断,WHY? 举头望明月,明白了,你不明白, 那我
 告诉你:
 
 上面还有8个相类似的比较语句都是可跳过40C595,现在明白怎么做了吧,很简单 呀,
 将它们全部NOP掉就可以了。
 
 【结论】
 修改:	X3D.EXE (852,992 BYTE)
 	0F85E6010000	->909090909090	<DISP: B7A9-B7AF>
 	0F84D2010000	->909090909090	<DISP: B7BD-B7C2>
 	0F84B6010000	->909090909090	<DISP: B7D9-B7DE>
 	0F849A010000	->909090909090	<DISP: B7F5-B7FA>
 	0F847E010000	->909090909090	<DISP: B811-B816>
 	0F8462010000	->909090909090	<DISP: B82D-B832>
 	0F8446010000	->909090909090	<DISP: B849-B84E>
 	0F842A010000	->909090909090	<DISP: B865-B86A>
 	0F85B3000000	->909090909090	<DISP: B8DC-B8E1>
         
 这次可是大行动哦,改得你手发麻。刚好锻炼一下自己的修改功力也不错啊?!
 1999年1月2日晚
 
 ********************************************************************** *******
 第七回
 ********************************************************************** *******
 ★目标软件: Virtual Drive (tm)V2.01 for win95
 时间限制: 21天
 
 只要看过前面的八课,你就会明白,首先肯定是将日期调增一年,然后呼出WIN- ICE,
 下断点: BPX CREATEWINDOWEX
 运行程序,被中断,按31次F12键,到达:
 15F:40FE88 TEST EAX,EAX
 XXX:XXXXXX ...
 ...
 XXX:410007 CALL XXXXXX	->到此CALL出现失败画面
 按照常规,举头望明月,哗,被我搜到了,我真是很聪明哦,
 XXX:40FFE4 JAE 410050	->可跳过410007,将它改为JMP。
 
 修改后,运行程序,咦,还是不能运行,又出现了一个询问画框,按CACEL就会退 出。
 嗯,还得改,继续跟踪程式:
 XXX:4101B4 CALL 4174F6	->此CALL甚有文章,跟进去观摩一下吧!
 
 XXX:5F410F6E JZ 5F410FA9	->改为JMP 5F410FA9
 XXX:XXXXXXXX ...
 XXX:5F41ED27 JNZ 5F410FBE	->改为JMP 5F410FBE
 XXX:XXXXXXXX ...
 ...
 XXX:5F4101C3 JZ 410329	->改为JMP 410329
 
 请别问我是怎么看出上面的跳转有问题,请你们自己试码,因为程式有很多的判 断,只
 要你跟进去把各个跳转弄清楚就可以了。
 
 【结论】
 修改:	MGR.EXE (612,532 BYTE)
 	8D0C383B4DE4 7367 ->8D0C383B4DE4 EB67
 	             ^^^^                ^^^^
 	0F8460010000 ->E96101000090
 	^^^^^^^^^^^^   ^^^^^^^^^^^^  
 	MFC42.DLL (954,128 BYTE)	->C:\WINDOWS\SYSTEM\
 	33DB3BC3 7439 ->33DB3BC3 EB39
                  ^^^^            ^^^^
 	0F859122FFFF 57 ->E99222FFFF90 57  
 	^^^^^^^^^^^^      ^^^^^^^^^^^^
 1999年1月5日20:37,用时约30分钟。
 
 ********************************************************************** *******
 第八回
 ********************************************************************** *******
 ★目标软件: Virual CDRom 2.0 for windows95
  日期限制: 21天
 
 这堂课,我将会把程序主要流程标出来,请大家注意看:
 首先下BPX CREATEWINDOWEX 中断
 被程式拦截后按31次F12,然后按F10开始,当走到
 
 [主程式]
 15F:405EEB CALL 41627A	->在此设断,进入此CALL。
 ...
 15F:405EF2 JZ 406054	(9-B)	->改为 JMP 406054
 ...
 15F:406054 CALL 406063
 ...	->结束。
 
 [分支程式]
 XXX:5F410EC2 ...
 XXX:XXXXXXXX ...
 XXX:5F410F48 JNZ 5F41ECC2	(1)
 XXX:XXXXXXXX ...
 XXX:5F410F4E AND DWORD PTR [EBP-04],00	(3)
 ...
 XXX:5F410F6E JNZ 5F410FA9	(4)	->改为 JMP 5F410FA9
 ...
 XXX:5F410FA9 OR DWORD PTR [EBP-04],-01	
 ...
 XXX:5F410FB0 JNZ 5F41ED10	(5)
 ...
 XXX:5F410FB6 CMP EDI,EBX
 XXX:5F410FB8 JNZ 5F41ED1E	(7)
 ...
 XXX:5F410FBE MOV EAX,[ESI]
 ...
 XXX:5F410FDD RET	(9-A)
 ...
 XXX:5F41ECC2 PUSH EDI
 ...
 XXX:5F41ECE1 JMP 5F410F4E	(2)
 ...
 XXX:5F41ED10 PUSH 01
 ...
 XXX:5F41ED19 JMP 5F410FB6	(6)
 ...	
 XXX:5F41ED1E CALL [5F498658]
 ...
 XXX:5F41ED27 JNZ 5F410FBE	(8)	->改为 JMP 5F410FBE
 
 【结论】
 修改: MGR.EXE (809,984 BYTE)
 	0F845C010000 ->E95D01000090
 	^^^^^^^^^^^^   ^^^^^^^^^^^^
       MFC42.DLL (954,128 BYTE)
 	33DB3BC3 7439 ->33DB3BC3 EB39
                  ^^              ^^
 	0F859122FFFF ->E99222FFFF90
         ^^^^^^^^^^^^   ^^^^^^^^^^^^
 注:
 如果已经安装过Virsual Cdrom 2.0 ,而又想重新安装,就须修改。
 	SETUP.EXE (51,712 BYTE)
 	85F6 745D ->85F6 EB5D
              ^^^^        ^^^^ 
 ********************************************************************** *******
 第九回
 ********************************************************************** *******
 ★目标软件: 东方快车98 月限时版
 时间限制: 1个月
 
 首先下中断,这个软件给我的感觉是太庞大了,F12都要按得手疼。
 给你个提示吧,将日期调增一月是必然的,然后下 BPX SHOWWINDOW 中断,按F1 2追下去
 ,直到信息框出现,然后在附近下中断。(我为什么要调增一月,而不是一年呢 ,因为
 调增一年却能够正常使用,我想因为是它只测算有没有超过月份吧?)
 等程式追到:
 
 20c7:5948 ...
 xxxx:xxxx ...
 20c7:597b jz 5985 	
 20c7:5980 call user!	
 xxx:xxxxx ...
 1bb7:3d21 push ..
 xxxx:xxxx ...
 xxxx:1245 jnz 1252	->将此改为 JMP 1252
 xxxx:xxxx ...
 xxxx:124d call ...	->程式结束
 xxxx:xxxx ...
 xxxx:1252 ...	->程式运行
 
 【结论】
 修改:	DFKC.EXE (6,630,780 BYTE)
 	750B C43EF422	->EB0B C43EF422
 	^^                ^^
 改完后,竟然发觉只需改2个BYTE,真是奇怪,这么大的文件,嗯??
 	   
 ********************************************************************** *******
 第十回
 ********************************************************************** *******
 目标软件: CDWizard V1.0
 时间限制: 30天
 首先将时间调增一年,运行程序,被万能的WIN-ICE中断在
 15F:405F43 CALL EBP	->光盘精灵的控制面板被呼出
 15F:405F45 CALL 408310	->时间限制信息出现
 XXX:XXXXXX ...
 XXX:405F4A TEST EAX,EAX
 XXX:405F4C JNZ 405F52	->如果不跳转就死掉了,因此设法让EAX不为零。
 ...
 XXX:405F50 JMP 405FB5	->完蛋了。
 
 经过上面的分析,知道问题在 405F45 那个CALL
 15F:40839D TEST EAX,EAX
 XXX:40839F JNZ 4083C1	->改为NOP
 ...
 XXX:4083B3 TEST EAX,EAX
 XXX:4083B5 JNZ 4083C1	->改为NOP
 ...
 XXX:4083C0 RET
 ...
 XXX:4083CF CALL [00420520]	->时间限制信息发源地。
 XXX:4083D5 XOR EAX,EAX	->使EAX清零,失败的预言。
 XXX:4083D8 RET
 
 【结论】
 修改:	POWERVCD.EXE (448,512 BYTE)
 	85C0 7520 68C0 ->85C0 9090 68C0
              ^^^^             ^^^^
 	85C0 750A B801 ->85C0 9090 B801
              ^^^^             ^^^^
 
 ********************************************************************** *******
 第十一回
 ********************************************************************** *******
 目标软件: GETRIGHT V3.2
 功能限制: ??
 这个软体是个不错的断点续传下载软件,功能很强,算起来我已经有三个多月没有 破解过
 什么软体了,这次就拿它来开刀吧.
 首先点HELP菜单,选择ABOUT GETRIGHT选项,然后按下ENTER CODE键,这时在对话框 中输入
 注册码'79797979'.
 按CTRL-D呼出ICE,下中断BPX HMEMCPY,返回程式,按下OK键后,被ICE中断.连忙按 F12键
 追踪下去,到了程式在
 15F:43217B CALL 44324E	->弹出注册失败框.
 往上看有什么地方可跳过此处,哗,很幸运,找到了:
 
 15F:43212E CALL 4662AD
 XXX:XXXXXX ...
 15F:432140 JZ 432161
 XXX:XXXXXX ...
 15F:43216B TEST EAX,EAX
 15F:43216D JZ 432178	->将它NOP掉就行了.
 XXX:XXXXXX ...
 15F:432176 JMP 432182	->此处可跳过滤43217B处的CALL,所以.
 15F:43217B CALL 44324E	->失败.
   
 具体关于算注册码要看 15F:43216D JZ 432178 上面的一个CALL段,进去自己揣摩 一下吧,
 不要什么事都依赖别人,已经很晚了,我得赶快睡觉.嗯,打CODE ON,看机械码:
 
 【结论】
 修改:	GETRIGHT.EXE (1,033,216 BYTES)
 	7409 8BCEE8E0 ->9090 8BCEE8E0
 	^^^^		^^^^
 其实对于注册软体来讲,这样霸王硬上弓来硬改机械码不是太好,有时有的软体就 会拒绝,
 所以对于这种情况你就只能算注册码了,一定要有耐心哦,不多说了,自己多练练吧 .
 
 ********************************************************************** *******
 第十二回
 ********************************************************************** *******
 目标软件: WEBZIP 2.1
 时间限制: 21 天
 
 首先打开程序,在出现的延迟画面上单击REGISTER,在出现的注册框中输入自己的 名字和
 任意的注册码,一切OK后,切回ICE,下BPX HMEMCPY 命令.
 按F5键回到程序,按下回车键后被ICE拦截,按F10一直追踪,直到:
 15F:005C9C80	CALL	5C743C
 15F:XXXXXXXX	...
 15F:005C74E5	CMP	BYTE PTR [EBP-0D],00
 15F:005C74E9	JZ	5C7568	->当然是将这个跳转改为空了.
 15F:XXXXXXXX	...
 15F:005C7568	CALL	5C7B9C	->程序走到此处会弹出注册失败信息. 
 
 【结论】
 修改:	C:\WINDOWS\SYSTEM\SHRLK20.DLL	(211,456 BYTES)
 	747D B880	->9090 B880
 	^^^^		  ^^^^
 修改过后的WEBZIP可以继续执行,等到延迟画面出现时,选择注册,不用输入任何字 直接
 按回车,这时出现注册成功的信息,然后CONTINUE键就有效了,可以继续执行了.因 为我最
 近很忙,所以不能将它完全破得透彻,请大家原谅.
 
 ********************************************************************** *******
 第十三回
 ********************************************************************** *******
 目标软件: MAPEDIT V2.23
 这是个为HTML超文本文件制作图像镜像链接的小工具,非常方便,如果不是我将VB 丢手几
 个月的话,我也会做一个同样的工具,因为它确实非常的方便.
 具体破解过程就不用多说了.用SOFT-ICE追踪.
 
 【结论】
 MAP32.EXE (272,896 BYTES)
 注册码是: BJJNBKBA
 
 ********************************************************************** *******
 第十四回
 ********************************************************************** *******	
 目标软件: REG.OCX
 这是一个用于编辑WINDOWS注册表的控件,感觉很好用,但这个程序的作者太差劲, 这样一
 个小程序居然反反复复地让人注册,太不人道.只好祭出WIN-ICE.所谓你不 仁,我不
 义吗?
 首先打中断,因为使用这个控件的可执行程序会被控件要求注册,如果按cancel会 继续运
 行,但下次它会又要求你注册.我们按下register键,随便乱打注册码,跟踪程序进 入到:
 
 15F:XXXXXXXX	CALL XXXXXXXX ->进入此CALL.
 15F:100044AF	CMP DWORD[ESI-08],18  ->意思是比较注册码的长度(一定要是24 位)
 15F:100044B3	JZ 100044BD	->将它改为JMP即可.
 ...
 15F:XXXXXXXX	JZ XXXXXXXX	->下面还有一个JZ将它也改为JMP即可.
 这个JZ,我没记在哪个位置,自己去找找看.给个提示: 在子程序要返回的前几行 .
 
 【结论】
 修改:	REG.OCX (48,128 BYTES)
 	7408 33C0	->EB08 33C0
 	^^^^		  ^^^^
 	7402 33C0	->EB02 33C0
 	^^^^		  ^^^^
 DATE: 1999年5月16日(10:38)
 
 ********************************************************************** *******
 第十五回
 ********************************************************************** *******
 目标软件: WinZip 7.0(1260)
 原以为这个ZIP很出名,它的注册程式一定很牢固,可没想到破的时候,只花了两 分钟就
 搞定了,下面列出破解经过:
 下中断BPX hmemcpy
 被拦下后,一直P到失败信息框出现,
 15F:4080C6	CALL 426790	->失败
 往上看有什么地方可跳过此CALL,找到了:
 15F:4080B0	JMP 4080E3	->刚才为什么没走到此地?
 再往上找:
 15F:408061	TEST EAX,EAX
 15F:408063	JZ 4080B2	->将它NOP掉,就OK了。
 
 【结论】
 修改:	WINZIP32.EXE (983.040 BYTES)
 	85C0 744D 53BB	->85C0 9090 53BB
 	     ^^^^	       ^^^^
 刚才证实了一下,虽然出现了注册成功的信息框,但下次启动WINZIP时叫你注册的 延迟画
 面又会出来烦你,真是的.只好想办法把它去掉了.我是不是真的很逊呀?!
 重新TRACE一遍:
 这次用 BPX CreateWindowEX 中断,
 15F:43C064	CALL 4018AD	->出现要你注册的延迟画面,将它NOP掉。
 15F:43C069	TEXT EAX,EAX	->EAX为0,则退出程式;EAX为1,则进入程式。
 15F:43C06B	POP ECX
 15F:43C06C	JZ 43C123	->改为NOP,即直接进入程式。
 【结论】
 修改:	WINZIP32.EXE (983,040 BYTES)
 	0F84B1000000 68C0A147	->909090909090 68C0A147
 	^^^^^^^^^^^^	          ^^^^^^^^^^^^
 	E84458FCFF 85C059	->9090909090 85C059
 	^^^^^^^^^^		  ^^^^^^^^^^
 
 刚刚打开一个ZIP文件时,却意外发现不能解压缩啦,完蛋了,还是不行呀,怎么办? 只有重
 新TRACE一遍,把它的注册码给敲出来,追进去一个CALL,等出来时它会判断是否EA X为0,
 如果为1则注册成功,追进去之后,会发现自己的ID存在EBX,而注册码存在ESI,当然 是自己
 输的注册码了,真正的注册码放在EAX,下
 D EAX ;查看注册码为50792331
 【结论】
 注册人:		CoolFly (注意大小写)
 注册码:		50792331
 DATE:	1999年5月29日(19:10)
 这个ZIP逼得我把注册码给算出来,看来要懒惰的我算注册码还是要逼我啊??
 
 ********************************************************************** ******
 如果有高手将PowerDvd 1.20 (电脑报PC世界2中有) 破掉的话,请将详细破解过程 E-mail给我:
 [email protected]
 不甚感谢...
 
  -- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.102.193.203]
  | 
 
 
 |