尝试破解WINRAR共享版的提示框

    最近一直在看《加密与解密(第三版)》学了些本领,想找个地方施展一下。突然想起自己的机器WINRAR是共享版的,每次启动主界面出来以后两秒钟都会出现一个讨厌的提示框(如下图所示),好了,学了点本事正好拿它试试刀。


 

 

 

   

    

首先用exescope看看这个对话框的资源ID是什么?先copy一份winrar.exe出来。用exescope打开查看对话框资源,挨个看,终于看到一个名为REMINDER的对话框资源,打开一看,不错,正是我想要的东东。

 

 

 

 

   

 

记住了,这个对话框的ID叫REMINDER。然后用OLLYDEBUG打开WINRAR.exe(在这里我打开的副本),按CTRL+N打开引用的API,一看有USER32.DialogBoxParamA,光标移到上面按回车,则进入这个API的引用列表,一看引用的地方还真不少,数了一下一共有36处,没关系,挨个进去看也花不了多少工夫。这个列表是以命令执行的地址由低到高排序的。而REMINDER是在程序运行一开始就出现的,所以猜想它可能不会太靠后。果然第二行:
 Address=0043F952 Disassembly=call    <jmp.&USER32.DialogBoxParamA>

双击鼠标进去可以看到:
0043F93A      6A 00         push    0
0043F93C   .  68 F4354800   push    004835F4                         ; |DlgProc = 复件_Win.004835F4
0043F941   .  FF35 644E4C00 push    dword ptr [4C4E64]               ; |hOwner = NULL
0043F947   .  68 2C6A4A00   push    004A6A2C                         ; |pTemplate = "REMINDER"
0043F94C   .  FF35 48214B00 push    dword ptr [4B2148]               ; |hInst = NULL
0043F952   .  E8 79220600   call    <jmp.&USER32.DialogBoxParamA>    ; /DialogBoxParamA
0043F957   > /803D 4C694A00>cmp     byte ptr [4A694C], 0


就是它了。把0043F93A处的指令修改成jmp short 0043F957。按F9运行。哈哈。那个提示框果然没有了。

    回头想来这样的破解带有一定的侥幸。首先那个提示窗口可能未必是是以DialogBoxParamA创建的,还可能是以CreateWindowEx创建的;第

二,如果程序在REMINDER对话框关闭时设置了一些标志变量,主窗口只要读取不到正确的标志变量值就会关闭,如果这样的话,就得跟踪这些标记变量的值了,这背后有多少变量则会视软件作者而定了。如果那位老兄心情好的话,搞100多个独立变量来,跟踪起来可够喝一壶的。如果再搞点加密算法,呵呵,可能就不是一天两天就能搞定的了。第三,winrar没有加壳,也采用什么反跟踪技术,基本都是按“套路”出牌的,所以破解起来相对容易一些。可能是因为国外软件的版权保护意识比较好,盗版打击比较厉害,所以软件作者可能就没太考虑反破解的手段。不像国内,出一款共享软件就得考虑盗版和破解的问题,加密算法搞得异常复杂,还要加壳,搞虚拟机等等,但道高一尺魔高一丈,只要这款软件很有市场,最终还是有破解版出现。对于普通用户来说可算是一件高兴的事情,但对于软件开发者来说又是件很悲哀的事情。但是了解破解和逆向工程可以对软硬件底层有更深的认识,不仅可以利用这些技术保护自己的软件成果,而且对于平时进行程序设计也是大有裨益的。
    可以肯定的说,现在网上注册版的WINRAR随处都可以下到,而且关于其破解的文章可能连篇累牍,在一些高手眼里,我这篇文章可能根本入不了他们的法眼,但我还是要声明:本文只做技术交流,严禁任何人用来从事非法商业活动,有什么后果,本人该不负责!
   
    后记,最近一直在追看《疯狂的程序员》,记得主角绝影曾经说过:破解这东西,七分技术,三分运气。如果运气不好,可能几个月都搞不定。今天看来,偶的运气还不错的说,呵呵。
  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值