【破文标题】WINRAR的NAG去除
【破文作者】ysfeagle
【作者邮箱】************
【作者主页】************
【破解工具】PEID,OD
【破解平台】XP
【软件名称】WINRAR
【软件大小】***
【原版下载】***
【保护方式】
【软件简介】评估版
【破解声明】个人爱好,仅做技术交流,失误之处敬请诸位大侠赐教!
------------------------------------------------------------------------
【破解过程】大家好:
我是ysfeagle,大家对WINRAR这个软件一定很是熟悉的,最近我在我的朋友那玩,由于要解压一些东西,所以就经常要用到WINRAR这个软件,可是我朋友装的是WINRAR(评估版本),没有注册的地方,当使用时间超过40天的话,就会跳出个对话框"请注意WINRAR不是一个免费软件,在40天的适用期结束后,你必须购买一个许可,或者将他从你的计算机中删除"
当我们关闭这个NAG框的话,软件照样能使用,可是每次打开都要跳出来,这让我真正的知道了什么叫NAG了,就一个字"烦"。。。。
好了,今天我们就把这个去掉了,还是老规矩了,用PEID查壳,"Borland C++ 1999"看来是没有壳了,那我们就直接用OD载入,来到这里:
00401000 > /EB 10 jmp short 00401012
00401002 |66:623A bound di, dword ptr [edx]
00401005 |43 inc ebx
00401006 |2B2B sub ebp, dword ptr [ebx]
00401008 |48 dec eax
00401009 |4F dec edi
0040100A |4F dec edi
0040100B |4B dec ebx
0040100C |90 nop
0040100D -|E9 C0214A00 jmp 008A31D2
00401012 \A1 B3214A00 mov eax, dword ptr [4A21B3]
00401017 C1E0 02 shl eax, 2
0040101A A3 B7214A00 mov dword ptr [4A21B7], eax
0040101F 52 push edx
00401020 6A 00 push 0
00401022 E8 71070A00 call <jmp.&KERNEL32.GetModuleHandleA>
别的先不管,它既然有提示,那我就先找字符串提示,结果让我大失所望,什么都没有找到,既然找不到提示那我们下API断点试下。呵呵,然后我就下了几个跟对话框有关的API断点,结果还是断不下来,很是郁闷的.......其实我们可以用别方法搞定的。
当我们载入后,用F9让软件跑起来了,好了NAG框出现了,我们不点击"关闭"或者别的按钮,回到OD中,我们按F12,好了来到了这里:
7C92EB94 > C3 retn
7C92EB95 8DA424 00000000 lea esp, dword ptr [esp]
7C92EB9C 8D6424 00 lea esp, dword ptr [esp]
7C92EBA0 90 nop
然后我们"ALT+K"来到了调用堆栈中,我们看到:
调用堆栈: 主线程
地址 堆栈 函数过程 / 参数 调用来自 结构
0012C15C 77D19418 包含ntdll.KiFastSystemCallRet USER32.77D19416 0012C190
0012C160 77D2DBA8 USER32.WaitMessage USER32.77D2DBA3 0012C190
0012C194 77D2593F USER32.77D2DA19 USER32.77D2593A 0012C190
0012C1BC 77D25981 USER32.77D25889 USER32.77D2597C 0012C1B8
0012C1DC 77D3B158 USER32.DialogBoxIndirectParamAorW USER32.77D3B153 0012C1D8
0012C208 0043F957 <jmp.&USER32.DialogBoxParamA> WinRAR.0043F952 0012C204
0012C20C 00400000 hInst = 00400000
0012C210 004A6A2C pTemplate = "REMINDER"
0012C214 00210232 hOwner = 00210232 ('J:\ - WinRAR (评估版本)',class='WinRarWindow')
0012C218 004835F4 DlgProc = WinRAR.004835F4
0012C21C 00000000 lParam = NULL
0012E5EC 77D18734 包含WinRAR.0043F957 USER32.77D18731 0012E5E8
0012E618 77D18816 ? USER32.77D1870C USER32.77D18811 0012E614
0012E680 77D189CD ? USER32.77D1875F USER32.77D189C8 0012E67C
0012E684 00000000 Arg1 = 00000000
0012E688 0043F178 Arg2 = 0043F178
0012E68C 00210232 Arg3 = 00210232
0012E690 00000113 Arg4 = 00000113
0012E694 0000000A Arg5 = 0000000A
0012E698 00000000 Arg6 = 00000000
0012E69C 0078F2DC Arg7 = 0078F2DC
0012E6A0 00000001 Arg8 = 00000001
0012E6E0 77D196C7 ? USER32.77D188F1 USER32.77D196C2 0012E6DC
0012E6F0 004430CF ? <jmp.&USER32.DispatchMessageA> WinRAR.004430CA 0012E6EC
0012E6F4 0012E6F8 pMsg = WM_TIMER hw = 210232 ("J:\ - WinRAR (评估版本)") ID = A Callback = 0
0012E724 00442CDF ? WinRAR.00442DF0 WinRAR.00442CDA
然后我们在0012C208上双击就来到主线程中,到了这里:
0043F952 E8 79220600 call <jmp.&USER32.DialogBoxParamA>
0043F957 803D 4C694A00 0>cmp byte ptr [4A694C], 0
0043F95E 74 1C je short 0043F97C
0043F960 803D 10784C00 0>cmp byte ptr [4C7810], 0
我们在0043F957 处F2下普通断点,然后F9运行到断点处,接着我们就一路F8直到RETN返回,我们会发现我们刚从一个CALL中出来,这个CALL就是调出那个NAG的CALL,呵呵,那我们就把这个CALL给NOP掉,下面还有一处的调用,我个人觉得是再次验证用的,呵呵那我们用同样的方法把它NOP掉,现在我们保存就可以了。
我们打开软件来验证下,呵呵现在那个让人烦的NAG终于不见了~~ ^ _ ^
------------------------------------------------------------------------------------------
【破解总结】这次也没有什么技术含量,我想说的是,大家有时间多逛逛论坛,看看大牛们的文章,虽然我们现在有些可能不怎么理解,可是只要我们跟着学习,慢慢会理解的,技术也就会跟着提高的哦。呵呵~ ^ _^
------------------------------------------------------------------------------------------
【版权声明】本文为ysfeagle所做,仅做技术交流,若有任何纠纷与ysfeagle无关。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课