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

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

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

注册码:25061473

用注册机编写器keymake编写该软件的注册机:

点其它-另类注册机(F8),软件名称输入ePaper.exe,注册码选寄存器方式 EAX 十进制。 添加断点,中断地址:00488DE7,中断次数:1,第一字节:3B,指令长度:3。 生成注册机后完工,万事OK!

嘿嘿,现在是不是觉的找软件的注册码越来越像小时候玩的躲猫猫了? 可惜偶小时候没有青梅竹马那种类型的伙伴...

好的,我们这次讲个有点儿名气的软件,WinZIP8.1,这个软件相信大家都用过吧,反正偶是喜欢用RAR,不过也多少用过几天这玩意儿... 如果你没听说过,那看介绍好了 【软件名称】WinZIP 【软件版本】8.1 Beta 2 【文件大小】1757KB

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

【软件简介】一个强大并且易用的压缩实用程序,支持ZIP、CAB、TAR、GZIP、MIME,以及更多格式的压缩文件。其特点是紧密地与Windows资源管理器拖放集成,不用离开资源管理器而进行压缩、解压缩。 不用我说了吧,出处仍旧是电脑报2001年合订本的配套光盘

我之所以先择它,是因为觉得它的关键CALL没有前边那两个那样好找(其实也就那样了^_^)极具代表性,而且通过它可以让你感受一下Ollydbg这个魅力比你家的荼几还大的调试器

这里之所以提到Ollydbg,是觉的它真是一个非常非常棒的调试器...强烈建议你多玩几次...(MP3好听吗? ^_^)

我们来吧,首先当然还是要装上它(左闪术,右闪术),然后用Ollydbg来载入,此时界面会被分成四个部分,左上方是软件反汇编后的代码,右上方是寄存器开会的地方,左下方是内存区,右下方显示的则是堆栈的信息。

我们来下断点,按Alt+F4,之后选USER32,然后再鼠标右键-->搜索-->当前模块中的名称,然后在那一大堆函数中找到 GetDlgItemTextA,按F2来下断点,它会提示你错误,并说无法设置中断点,是不是很过瘾?(呜呜呜...大哥,我错了,再也不敢了...)

呵呵,这个我也不知道什么原因,明明是用了这个函数嘛,就是不让断,其实我对Ollydbg也不是太那个(关键是讨厌它的下断方式)看来还是用我们的万能断点吧,输入注册名Suunb[CCG],输入注册码 19870219,然后用TRW2000下断bpx hmemcpy,断到之后,pmodule返回领空后一次F12就会出错,看来所有的东东就在这里了...

我们用TRW2000再断一下,返回领空之后记着第一条指令的地址0040bd5f,呜呜呜...上条指令明明是调

用GetDlgItemTextA,为什么在Ollydbg中不让下呢?

没关系,我们记下这个地址后仍旧用Ollydbg来加载程序,之后在反汇编窗口中找到0040bd5f处,然后按下F2来下断(会变为红色),下断之后便按 F9来运行程序,接着输入注册名Suunb[CCG],注册码19870219后按确定,程序会被Ollydbg给断到: 0040BD5F |. 57 PUSH EDI

0040BD60 |. E8 F34A0500 CALL WINZIP32.00460858 0040BD65 |. 57 PUSH EDI ; /Arg1

0040BD66 |. E8 164B0500 CALL WINZIP32.00460881 ; \\WINZIP32.00460881 0040BD6B |. 59 POP ECX

0040BD6C |. BE 1CCA4C00 MOV ESI,WINZIP32.004CCA1C 0040BD71 |. 59 POP ECX

0040BD72 |. 6A 0B PUSH 0B ; /Count = B (11.)

0040BD74 |. 56 PUSH ESI ; |Buffer => WINZIP32.004CCA1C 0040BD75 |. 68 810C0000 PUSH 0C81 ; |ControlID = C81 (3201.) 0040BD7A |. 53 PUSH EBX ; |hWnd

0040BD7B |. FF15 F4C54A00 CALL DWORD PTR DS:[<&USER32.GetDlgItemTe>; \\GetDlgItemTextA

0040BD81 |. 56 PUSH ESI

0040BD82 |. E8 D14A0500 CALL WINZIP32.00460858 0040BD87 |. 56 PUSH ESI

0040BD88 |. E8 F44A0500 CALL WINZIP32.00460881 0040BD8D |. 803D F0C94C00 >CMP BYTE PTR DS:[4CC9F0],0 0040BD94 |. 59 POP ECX 0040BD95 |. 59 POP ECX

0040BD96 |. 74 5F JE SHORT WINZIP32.0040BDF7 0040BD98 |. 803D 1CCA4C00 >CMP BYTE PTR DS:[4CCA1C],0 0040BD9F |. 74 56 JE SHORT WINZIP32.0040BDF7

0040BDA1 |. E8 31F9FFFF CALL WINZIP32.0040B6D7 <--关键CALL,等会儿进去玩玩 0040BDA6 |. 84C0 TEST AL,AL <--根据关键CALL中比较的结果来做相应的测试

0040BDA8 |. 74 4D JE SHORT WINZIP32.0040BDF7 <--跳走就没戏! 0040BDAA |. 57 PUSH EDI

0040BDAB |. 68 08DE4B00 PUSH WINZIP32.004BDE08 ; ASCII \

0040BDB0 |. FF35 1CC74A00 PUSH DWORD PTR DS:[4AC71C] ; WINZIP32.004BDDEC 0040BDB6 |. E8 8AFA0400 CALL WINZIP32.0045B845 0040BDBB |. 56 PUSH ESI

0040BDBC |. 68 C8EB4B00 PUSH WINZIP32.004BEBC8 ; ASCII \

0040BDC1 |. FF35 1CC74A00 PUSH DWORD PTR DS:[4AC71C] ; WINZIP32.004BDDEC 0040BDC7 |. E8 79FA0400 CALL WINZIP32.0045B845

0040BDCC |. FF35 18C74A00 PUSH DWORD PTR DS:[4AC718] ; |Arg4 = 004BDDF4 ASCII \

0040BDD2 |. 6A 00 PUSH 0 ; |Arg3 = 00000000 0040BDD4 |. 6A 00 PUSH 0 ; |Arg2 = 00000000

0040BDD6 |. 68 14DE4B00 PUSH WINZIP32.004BDE14 ; |Arg1 = 004BDE14 ASCII \0040BDDB |. E8 4CFA0400 CALL WINZIP32.0045B82C ; \\WINZIP32.0045B82C 0040BDE0 |. A1 A8914C00 MOV EAX,DWORD PTR DS:[4C91A8] 0040BDE5 |. 83C4 28 ADD ESP,28 0040BDE8 |. 85C0 TEST EAX,EAX

0040BDEA |. 74 07 JE SHORT WINZIP32.0040BDF3

0040BDEC |. 50 PUSH EAX ; /hObject => 000013F4 (font)

0040BDED |. FF15 80C04A00 CALL DWORD PTR DS:[<&GDI32.DeleteObject>>; \\DeleteObject 0040BDF3 |> 6A 01 PUSH 1

0040BDF5 |. EB 30 JMP SHORT WINZIP32.0040BE27 0040BDF7 |> E8 C3020000 CALL WINZIP32.0040C0BF 0040BDFC |. 68 8E020000 PUSH 28E

0040BE01 |. E8 61470500 CALL WINZIP32.00460567 0040BE06 |. 50 PUSH EAX ; |Arg3 0040BE07 |. 53 PUSH EBX ; |Arg2

0040BE08 |. 6A 3D PUSH 3D ; |Arg1 = 0000003D

0040BE0A |. E8 C8050400 CALL WINZIP32.0044C3D7 ; \\WINZIP32.0044C3D7 我们用Ollydbg断到之后,可以像在TRW2000中一样通过F8(这个调试器跟我一样,也不喜欢F4^_^)来单步执行程序,我们按32下F8后程序就会出错,那我们在第二遍载入时按F8按到20多下时就仔细看看有没有可疑的地方,你一眼就可以看到0040BDA1处的这个关键CALL,我们只要追到这里时追进去就有

可能看到软件正确的注册码 那还等什么呢?我们就进去吧...

按F7 跟进后你会看的眼花眼花缭乱,到处都是PUSH跟POP,到底哪个才是呢?现在知道我为什么让你用Ollydbg了吧(偶起初也是要用TRW2000的,但临时改变主意 ^_^)用Ollydbg的一个最大好处就是可以真接看到寄存器中的值,特别是你通过F8来单步执行的时候,在反汇编代码的下边,会有一个小窗体,在那里可以显示相关指令中所使用的寄存器的值,爽吧!

我们按76下F8之后,在0040B803处就可以第一次看到正确的注册码了,呵呵,我这边儿是71C20EDC,然后你还会再陆续看到几次,爽?

另外我还发现一个有趣的事情,在WinZIP8.1中,一个注册名可以有两个注册码,呵呵,不知道是不是还有为特别用户准备的特别注册码以用来和普通的做区别 当程序通过比较,发现你输入的注册码不正确后竟然会再次算出另一个注册码来再比较一次,嘿嘿,我的第二个注册码是25170288 追入关键CALL里的代码:

0040B6D7 /$ 55 PUSH EBP 0040B6D8 |. 8BEC MOV EBP,ESP 0040B6DA |. 81EC 0C020000 SUB ESP,20C

0040B6E0 |. 8065 FF 00 AND BYTE PTR SS:[EBP-1],0 0040B6E4 |. 803D F0C94C00 >CMP BYTE PTR DS:[4CC9F0],0 0040B6EB |. 53 PUSH EBX 0040B6EC |. 56 PUSH ESI 0040B6ED |. 57 PUSH EDI

0040B6EE |. 0F84 FB000000 JE WINZIP32.0040B7EF 0040B6F4 |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18] 0040B6F7 |. 50 PUSH EAX

0040B6F8 |. 68 C0E84B00 PUSH WINZIP32.004BE8C0 0040B6FD |. E8 DE61FFFF CALL WINZIP32.004018E0 0040B702 |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18] 0040B705 |. 50 PUSH EAX

0040B706 |. E8 F57C0800 CALL WINZIP32.00493400 0040B70B |. 83C4 0C ADD ESP,0C 0040B70E |. 83F8 14 CMP EAX,14

0040B711 |. 72 11 JB SHORT WINZIP32.0040B724

0040B713 |. BF 20C74A00 MOV EDI,WINZIP32.004AC720 ; ASCII \

0040B718 |. 6A 21 PUSH 21 0040B71A |. 57 PUSH EDI

0040B71B |. E8 86F60000 CALL WINZIP32.0041ADA6 0040B720 |. 59 POP ECX 0040B721 |. 59 POP ECX

0040B722 |. EB 05 JMP SHORT WINZIP32.0040B729

0040B724 |> BF 20C74A00 MOV EDI,WINZIP32.004AC720 ; ASCII \0040B729 |> 8D85 F4FDFFFF LEA EAX,DWORD PTR SS:[EBP-20C]

0040B72F |. BB F0C94C00 MOV EBX,WINZIP32.004CC9F0 ; ASCII \0040B734 |. 50 PUSH EAX 0040B735 |. 53 PUSH EBX

0040B736 |. E8 50030000 CALL WINZIP32.0040BA8B

0040B73B |. 8D85 F4FDFFFF LEA EAX,DWORD PTR SS:[EBP-20C] 0040B741 |. 50 PUSH EAX

0040B742 |. E8 B97C0800 CALL WINZIP32.00493400 0040B747 |. BE C8000000 MOV ESI,0C8 0040B74C |. 83C4 0C ADD ESP,0C 0040B74F |. 3BC6 CMP EAX,ESI

0040B751 |. 72 0A JB SHORT WINZIP32.0040B75D 0040B753 |. 6A 23 PUSH 23 0040B755 |. 57 PUSH EDI

0040B756 |. E8 4BF60000 CALL WINZIP32.0041ADA6 0040B75B |. 59 POP ECX 0040B75C |. 59 POP ECX

0040B75D |> 8D85 F4FDFFFF LEA EAX,DWORD PTR SS:[EBP-20C] 0040B763 |. 50 PUSH EAX

0040B764 |. 8D45 E8 LEA EAX,DWORD PTR SS:[EBP-18] 0040B767 |. 50 PUSH EAX

0040B768 |. E8 03300900 CALL WINZIP32.0049E770 0040B76D |. 59 POP ECX 0040B76E |. 85C0 TEST EAX,EAX 0040B770 |. 59 POP ECX

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

注册码:25061473用注册机编写器keymake编写该软件的注册机:点其它-另类注册机(F8),软件名称输入ePaper.exe,注册码选寄存器方式EAX十进制。添加断点,中断地址:00488DE7,中断次数:1,第一字节:3B,指令长度:3。生成注册机后完工,万事OK!嘿嘿,现在是不是觉的找软件的注册码越来越像小时候玩的躲猫猫了?
推荐度:
点击下载文档文档为doc格式
7w6882x74s2b61z989ic
领取福利

微信扫码领取福利

微信扫码分享