首页
社区
课程
招聘
[旧帖] [邀请码已发][原创]菜鸟静态破解Winrar3.93版 0.00雪花
发表于: 2010-11-18 14:37 2067

[旧帖] [邀请码已发][原创]菜鸟静态破解Winrar3.93版 0.00雪花

2010-11-18 14:37
2067
我是学习信息安全专业的大三学生。在看雪论坛上待了有一定的时间了,刚注册时候,对逆向工程非常感兴趣,好奇心驱使着我去不断地学习。在看雪论坛上到处看,一看到有前辈分享一些教程便会激动不已,嘿嘿!不过每次下载资源就要扣除2ks,我的虚拟币只减不增 决心要自己写技术贴,转为正式会员。
    废话少说,今天在看了kris Kaspersky 写的黑客反汇编解密第二版,书中有介绍winrar3.42 的破解方法。决定自己试着破解Winrar393。下面就是我的破解过程,有点乱哈

作者:Infosecer
工具:IDA pro 5.5 ;PEditor ;Visual studio 6.0,Ollydbg
时间:2010年11月17日
链接:http://bbs.pediy.com/showthread.php?p=891319
一,去除干扰屏
Winrar3.93 默认使用时间是40天,每次打开主界面时总会跳出干扰屏幕,要求注册,想去掉对话框,得先找到显示对话框的API函数,kris Kaspersky 书中是用kerberos API 窥探器来寻找相关的API的,我试了,老是会出错,而且麻烦。
我是用VC 6.0 (其他版本也行)通过 file->open 


在Dialog栏目中找到与干扰对话框相似的对话框,发现是叫REMINDER的对话框

在IDA中Alt+T 查找REMINDER字串, 发现最有价值的地方如下图:

text:00491CB0                 mov     eax,dword_4DBD00

.text:00491CB5                 cmp     eax, 28h        ; 判断是否大于40天

.text:00491CB8                 jg      short loc_491CBE ; 大于则显示提示注册的对话框


所以只需要把text:00491CB8                 jg      short loc_491CBE,修改成jmp short loc_491CE4 即可,即跳过。不知为什么,HIEW总是不能很好地显示,没办法,我就用ollydbg 来修改指令了(有点大材小用了),打开ollydbg Ctrl+g 跳到地址00491CB8 修改好后,右击鼠标,copy to executable即可。具体不多说。这样就很容易地把干扰屏去掉了。
二、绕过注册过程。
    在图四中,也许会看到,rarkey字样,这也是IDA pro 的强大之处是把。也许能从这个找出负责注册的过程。说来简单 ,起初我以为00491CA1                 call    sub_44DAF0是负责注册的过程,后来证实不是的,交叉寻找(我在注册过程中被弄晕了,各种跳转),静下心来,是不是还有其他地方用到rarkey 呢,去分析验证密钥的过程非常困难,应该试着去寻找注册函数最终的返回值,于是我尝试着在IDA pro 下搜索rarkey,除了之前那个找到了,我还找到了sub_487180 两处用到了rarkey,还有一个sub_4429F0 ,先看sub_487180,

发现途中被我改为IsRegistered 的函数调用,检查al 是否为0 ,如果不为0则跳到函数末,退出函数sub_487180,我们有理由怀疑这个函数是来检测是注册状态的,按X交叉引用,发现有四处调用该函数,试着去修该他的返回值。
进入该函数,发现只有一处有retn 4 

仔细看,本想把retn 4 修改为 jmp 到末尾处,再在末尾处添加 xor eax,eax,inc eax,retn 4 这几条指令的,但是jmp 到末尾指令占的空间比retn 4大,这样就会覆盖后面的指令,IsRegisterd 函数与下一个函数之间有一定的空间,在ren4 4 指令添加我们的指令,将原retn 4 指令及后面的几条指令向后移动几个字节,(注意:在这过程中需要相应地改变函数中其他需要跳转到此处的指令,因为偏移地址变了)
用olldbg 修改如下:


保存修改过的指令到可执行程序。运行winrar 发现,标题处已经的评估版本字样已经消失,查看About 对话框,也提示已注册,只是没有显示注册给谁。
三、修改About对话框。还是用一 中 的方法,找到需要修改的空间的ID为66H即为102,

发现用于显示的注册信息是由函数sub_45BE10返回的eax 指定的地址处的内容,所以只需要修改call sub_45BE10,直接将eax值改为我们想要显示内容的地址,kris Kaspersky是利用.tls段的,用PEditor 查看,winrar3.93没有找到.tls段,只能寻找其他段了,放.data 段末尾即可。

好了终于写完了,真是难以表达啊,不过有时候真是要靠运气呀,嘿嘿。肯请前辈们多多指点。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
  比我厉害! 继续学习啊
2010-11-18 14:41
0
雪    币: 695
活跃值: (70)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
之前我也有这困扰,后来去下了个破解版,看来楼主自己动手丰衣足食
2010-11-26 09:31
0
雪    币: 261
活跃值: (55)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
4
学习了...
2011-1-1 20:39
0
雪    币: 122
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
恩,不错,我也试试!
2011-1-1 23:54
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
很崇拜你啊楼主,这么老厉害
2011-1-2 11:42
0
雪    币: 773
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
NNNNNNNNNNBBBBBBBBBBBBBB
2011-1-5 16:06
0
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
好文章  看了  之后非常有启发    打算搞搞4.0beta的
2011-1-5 17:13
0
雪    币: 3
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
厉害啊。。值得学习
2011-1-5 18:25
0
雪    币: 28
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
学习学习!!!!
2011-1-5 19:29
0
雪    币: 39
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
学习学习!!!!
2011-1-5 21:14
0
雪    币: 1
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习了,刚接触……
2011-1-6 00:36
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
学些喜欢
还有得到邀请码啊 佩服
2011-1-6 08:36
0
游客
登录 | 注册 方可回帖
返回
//