秋水5326 发表于 4 天前

实战破解winRAR5.1

今天闲的没事去看雪看了看,然后看到看雪上面有人发了一个破解winrar 5.01的帖子,突然想到我自己的貌似还用着没有注册的版本,因此就有了下面的文章,当然我是参考了看雪上面的文章,也算是自己学习的一个记录吧
作者:秋水
pop:4bb7309340

=======   可以看到程序是未注册版本的,我们要做的就是把注册到期之后的弹窗,还有上面的那个评估版本给去掉
因为程序是在启动的时候会出现弹窗,一般程序出现窗口会使用两个函数MessageBoxW或者DialogBoxParamW两个函数,所以我们直接对这两个函数下断点
如果装了命令行插件的话,可以直接使用命令
bp MessageBoxW
bp DialogBoxParamW
然后那个不使用命令行下断的方法我之前的文章里面也有,如果不知道的话,可以看看之前我发的文章
之后我们运行,但是我们发现程序并没有断下来,开始就跟那个帖子不一样了,可谓出师不利啊
我们从头开始单步跟踪一下(如果觉得中指比较累的话,也可以CTRL+F8)
然后发现是在这个函数里面弹出的窗口

我们F7跟进一下

然后发现是这个call弹出的窗口,继续跟进

终于找到这个比较的代码了,其中EAX里面存放的是已经安装了多少天,然后与40比较
从代码可以看到eax来自于00534428 ,OK ,我们在这个上面设置访问断点

重新载入程序,运行

程序断在了这个地方,我们看到call之后把得到的结果放到了00534428
然后就可以进入分析这个call了,当然你也可以这样,直接进入call,然后汇编
01.mov eax,0
02.retn 10
03.nop
复制代码
然后保存到EXE文件在运行,发现弹窗没有了,但是评估版本还是存在
载入保存的EXE文件
现在我们要考虑的是怎么去除掉标题中的评估版本
根据看雪上的提示,程序可能会用到SetWindowTextW函数,就对这个函数下断(虽然开头我们就没有成功,但是我们先来追随一下大牛的脚步嘛)

bp SetWindowTextW
好在这次断下了,看堆栈信息

堆栈里面已经出现我们想要的东西,我们回到调用的地方,向上看,可以看到这些东西

可以看到这里先把0051E2C0里面的数据先跟0比较,如果不等的话,会直接跳到之前上面调用SetWindowTextW的地方,如果等于0之后在跟40天做比较
老办法,直接在这个地址上面下访问断点

重新运行,程序立即断下

我们跟进上面的call,分析,或者直接汇编这个CALL


然后再运行

评估版本不见了,关于里面也不显示40天评估版本了
页: [1]
查看完整版本: 实战破解winRAR5.1