好文档 - 专业文书写作范文服务资料分享网站

适合入门的软件破解教程 - 鄙视要太多分的 

天下 分享 时间: 加入收藏 我要投稿 点赞

然后用d eax和d edx就可以查看两个地址中放的两个注册码,如果你发现其中的一个是你自己刚才输入的,那么另一条就是正确的

而所谓的内存注册机呢?我这里就不再多说了,它的原理就是自动在软件注册的时候中断到相应的地方,并显示相应内存处的值,当然它是需要配置的... 此类软件有CRACKCODE2000和注册机编写器keymake,具体用法你可以参考软件的联机帮助^_^

我们剩下的问题就是如何来找个这关键Call了,基本上来说你就用前边给你讲爆破时的那种方法就可以了,很简单的

但是就像你家后门的玻璃可能永远擦不干净一样,我们家后门的玻璃也从来没擦干净过 导演:NG!重说,就像所有事情都有例外一样,有些软件的关键Call会比较难找一点,但如果你掌握了适当的方法,同样也会很好找的... 我们就来玩玩吧:

首先,我们还来用CHINAZIP这个软件上上手^_^ 它已经是我们的老朋友了,所以就不用再介绍它了吧

好的,我们先装上它(嘿嘿,偶就是喜欢说废话,你打偶偶也要说^_^)接着我们点帮助-注册,输入Name:Suunb[CCG],Code:19870219

然后请出我们的老伙计TRW2000,下bpx hmemcpy 按F5点确定被拦: KERNEL?HMEMCPY 0147:9e62 push bp 0147:9e63 mov bp,sp 0147:9e65 push ds 0147:9e66 push edi 0147:9e68 push esi 0147:9e6a cld

0147:9e6b mov ecx,[bp+06] 0147:9e6f jcxz 9ee9 ...省略N多代码...

输入bc *,删除断点。pmodule ,直接跳到程序领空: 0167:00436d13 mov [ebx+0c],eax 0167:00436d16 mov eax,[ebx] 0167:00436d18 cmp eax,byte +0c 0167:00436d1b jnz 00436d38 0167:00436d1d mov edx,[ebx+08]

0167:00436d20 push edx

0167:00436d21 mov ecx,[ebx+04] 0167:00436d24 mov edx,eax 0167:00436d26 mov eax,esi 0167:00436d28 call 00432b24 ...省略N多代码...

按8 下F12就会提示出错,我们第二次就按7次 接着我们再来按F10,按16下就会报错,好的,我们再来:这一次我们按F10的时候,就按我前边说过的方法,到与上次按的次数相差五六次的时候就慢下来。好的,我们按十来下的时候就慢下来仔细瞅瞅,呵呵,一下子就看到004f4dec处的那个跳转以及它上面的关键CALL了 我们按F10单步执行到004f4de7处(即关键CALL处)后下指令d edx就可看到真正的注册码,而d eax则可以看到我刚才输入的19870219 代码给你:

0167:004f4dc4 mov eax,[ebp-08] <---7下F12,1下F10就来到这里(此时ebp-08处放的是刚才输入的注册码19870219)

0167:004f4dc7 push eax <---将EAX压栈; 0167:004f4dc8 lea edx,[ebp-10] 0167:004f4dcb mov eax,[ebx+02e0]

0167:004f4dd1 call 00432f24 <---该CALL用来得到用户输入的用户名,其实就是某个API函数,嘿嘿,好奇的话可以追进去看看

0167:004f4dd6 mov edx,[ebp-10] <---将得到的用户名放入EDX; 0167:004f4dd9 lea ecx,[ebp-0c] 0167:004f4ddc mov eax,ebx

0167:004f4dde call 004f4fac <---该CALL用来计算出真正的注册码;

0167:004f4de3 mov edx,[ebp-0c] <---将计算出的真.注册码放入EDX,在下条指令时可用D EDX查看;

0167:004f4de6 pop eax <---先前压入的注册码出栈;

0167:004f4de7 call 0040411c <---该CALL用来比较两个注册码,罪魁祸首啊!;

0167:004f4dec jnz 004f4e64 <---不相等则跳,跳必死,暴破将75改为74或EB,当然90也行; 0167:004f4dee mov dl,01

0167:004f4df0 mov eax,[00452558] 0167:004f4df5 call 00452658 0167:004f4dfa mov [ebp-04],eax 0167:004f4dfd xor eax,eax

0167:004f4dff push ebp

0167:004f4e00 push dword 004f4e5d 0167:004f4e05 push dword [fs:eax] 0167:004f4e08 mov [fs:eax],esp 0167:004f4e0b mov cl,01 0167:004f4e0d mov edx,004f4ea8 0167:004f4e12 mov 0167:004f4e15 call 0167:004f4e1a mov 0167:004f4e1f mov 0167:004f4e24 mov 0167:004f4e27 call 0167:004f4e2c mov 0167:004f4e31 call 0167:004f4e36 mov 0167:004f4e3b mov 0167:004f4e3d mov 0167:004f4e42 call 0167:004f4e47 xor 0167:004f4e49 pop 0167:004f4e4a pop 0167:004f4e4b pop 0167:004f4e4c mov 0167:004f4e4f push 0167:004f4e54 mov 0167:004f4e57 call 0167:004f4e5c ret

0167:004f4e5d jmp 0167:004f4e62 jmp 0167:004f4e64 mov 0167:004f4e69 call 0167:004f4e6e xor eax,[ebp-04] 0045283c ecx,004f4ecc edx,004f4ef4 eax,[ebp-04] 00452c80 eax,004f4f00 00458b8c eax,[0050306c] eax,[eax] edx,004f4f24 00432f54 eax,eax edx ecx ecx [fs:eax],edx dword 004f4e6e eax,[ebp-04] 004030c4 00403824 short 004f4e54

eax,004f4f48 <---由上面的0167:004f4dec处跳来,挂!; 00458b8c eax,eax

整理:

Name:Suunb[CCG] Code:SCCG5296

可以真接在TRW2000中下断点bpx 004f4de6,中断后用D EDX来查看真.注册码。 另附:CRACKCODE2000的CRACKCODE.INI [Options]

CommandLine=CHINAZIP.exe Mode=2 First_Break_Address=4f4de7 First_Break_Address_Code=E8 First_Break_Address_Code_Lenth=5 Second_Break_Address=404123 Second_Break_Address_Code_Lenth=2 Save_Code_Address=EDX

呵呵,是不是很简单?我说过了嘛,其实并不难的

我不知道你有没有发现,其实上面的软件的关键CALL还是很好找的,相信你用W32Dasm就中以找出来,那为什么不用呢?对于那些比较简单的软件,何必非请出调试器呢? 给你贴个用W32Dasm找关键CALL的: 【软件名称】e族百变桌面 【软件版本】4.0 【文件大小】1316KB

【适用平台】Win9x/Me/NT/2000

【软件简介】提供25种变换桌面的方式,让你的桌面焕然一新。操作简单,无需费力学习。支持多种Internet流行图片格式。将壁纸文件打包,方便存储、转发。将壁纸包展开,还原图片文件。

嘿嘿,我也懒的去折腾我的小猫了,咱们就还用电脑报2001年合订本配套光盘上的软件吧 (2002年的偶没有买)

首先装上它(嘿嘿,你习惯了?为什么不丢东西了? ^_^)运行一下该软件先,该软件自动生成了相应的机器码,并停留在注册项上,输入注册码19870219,点确定,挂! 用fi检查,该软件为Delphi编译,没加壳。

用W32DASM打开该执行文件,参考-串式参考,在最下边,见到了刚才弹出的\注册码不正确,请联系作者\。

用鼠标双击,发现只有一处调用,在00488E97处,接着在串式参考对话框中在\注册码不正确,请联系作

者\处向上找,找到\感谢您支持国产软件,祝您好运\说的我都不好意思了) 用鼠标双击,仍旧只有一处调用,在00488DF7处:

* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00488DCD(U) |

:00488DD9 8B45FC mov eax, dword ptr [ebp-04]

:00488DDC 8B8020040000 mov eax, dword ptr [eax+00000420] :00488DE2 35280BB61E xor eax, 1EB60B28

:00488DE7 3B45F8 cmp eax, dword ptr [ebp-08] <---关键比较,? EAX来查看软件正确的注册码;

:00488DEA 0F85A0000000 jne 00488E90 <---关键跳转,不相等就跳,跳必挂! :00488DF0 6A40 push 00000040 * Possible StringData Ref from Code Obj ->\注册成功\ |

:00488DF2 68D48E4800 push 00488ED4

* Possible StringData Ref from Code Obj ->\感谢您支持国产软件,祝您好运!\ |

:00488DF7 68E08E4800 push 00488EE0 <---双击串式参考便跳到此行,我们向上找第一个跳转处就是关键跳转,关键跳转上面就是关键比较; :00488DFC 8B45FC mov eax, dword ptr [ebp-04] :00488DFF E81CD2FBFF call 00446020 :00488E04 50 push eax ...省略代码若干...

向上看,00488DEA处有一跳转,不相等便跳到00488E90处,跳必挂!还记的00488E97处的出错对话框吧! 罪魁祸首啊!

在向上一行,看00488DE7处:cmp eax, dword ptr [ebp-08],此为关键比较。可用? EAX查看软件正确的注册码。 整理:

打开该软件,在注册码处输入19870219,打开TRW2000,下断点bpx 00488DE7,点注册被拦。输入? EAX得到软件正确的注册码。 机器码:533226313

适合入门的软件破解教程 - 鄙视要太多分的 

然后用deax和dedx就可以查看两个地址中放的两个注册码,如果你发现其中的一个是你自己刚才输入的,那么另一条就是正确的而所谓的内存注册机呢?我这里就不再多说了,它的原理就是自动在软件注册的时候中断到相应的地方,并显示相应内存处的值,当然它是需要配置的...此类软件有CRACKCODE2000和注册机编写器keymake,具体用法你可以参考软件的联机帮助^_^
推荐度:
点击下载文档文档为doc格式
7w6882x74s2b61z989ic
领取福利

微信扫码领取福利

微信扫码分享