首页
社区
课程
招聘
[旧帖] [原创]破解WinRAR之(一)——去除WinRAR烦人的NAG窗口 0.00雪花
发表于: 2008-6-14 00:37 6444

[旧帖] [原创]破解WinRAR之(一)——去除WinRAR烦人的NAG窗口 0.00雪花

2008-6-14 00:37
6444
标 题:【原创】破解WinRAR之(一)——去除WinRAR烦人的NAG窗口
作 者: 我本寂寞
时 间: 2008-06-14,00:37
链 接: http://bbs.pediy.com/showthread.php?p=466465

初入反汇编,边学边练,由于实在受不了每次打开WinRAR时弹出的窗口(如图1),便决定亲自把它干了不可。

(用QQ裁的图,为BMP格式,竟传不上来 ,不过,不影响我们这教程)

既然我们要去除的是个烦人的窗口,如何实现呢,简单点就是把创建这个NAG的过程给跳过去,所以我们自然首先就把目光放在创建窗口的函数上,通过初步的在CreateWindowExA和DialogBoxParamA等创建窗口的函数上设置断点,我们得知WinRAR是通过DialogBoxParamA来创建这个NAG的。

好了,目标找到了,该如何进一步缩小范围找到NAG这个窗口呢(WinRAR有相当的窗口,看下DialogBoxParamA此函数的引用次数就知道),这就看看这函数的原型了。

int DialogBoxParam(
    HINSTANCE hInstance,        // handle to application instance
    LPCTSTR lpTemplateName,        // identifies dialog box template  ;这就是我们所关心的,对话框的ID。
    HWND hWndParent,                // handle to owner window
    DLGPROC lpDialogFunc,        // pointer to dialog box procedure  
    LPARAM dwInitParam                 // initialization value
   );       

那如何找出这个NAG的ID呢,在这我们可用eXeScope这工具把它可测出来。打开这软件,把WinRAR.exe载入。在左侧的Resource中找到Dialog这一项,然后, 在那找到我们需要的信息,如图2所示,其中“REMINDER”字符串就是我们所说的ID。

既然ID都给找出来了,现在也该是把这个NAG给揪出来的时候了。Fire up OD,把WinRAR.exe载入。在CPU窗口《右击》,选择《查找》->《所有参考文本字串》,把光标行定高开头,因为OD是从上往下搜的,我们不想跑掉任何有用的信息。再《右击》,选择《查找文本》,在弹出的对话框里输入我们刚才找到的ID,即REMINDER。哈,找到了,即这一行:
0043FF13 | push    004A8A98     | ASCII "REMINDER"

《双击》进入CPU窗口,跳到此地址,来到下面
0043FF06   .  6A 00         push    0                                ; /lParam = NULL
0043FF08   .  68 D0434800   push    004843D0                         ; |DlgProc = WinRAR_o.004843D0
0043FF0D   .  FF35 E46E4C00 push    dword ptr [4C6EE4]               ; |hOwner = NULL
0043FF13   .  68 988A4A00   push    004A8A98                         ; |pTemplate = "REMINDER"  《这就是我们找的ID》
0043FF18   .  FF35 C8414B00 push    dword ptr [4B41C8]               ; |hInst = NULL
0043FF1E   .  E8 612E0600   call    <jmp.&USER32.DialogBoxParamA>    ; \DialogBoxParamA
0043FF23   > \803D B8894A00>cmp     byte ptr [4A89B8], 0             ;④

嗯,这样就找到了这个NAG出现的地方呢,我们要的是把它给跳过去,所以我们往上看看:
0043FEDA   .  BA 918A4A00   mov     edx, 004A8A91                    ;  ASCII "rarkey"  ①
0043FEDF   .  B9 06000000   mov     ecx, 6
0043FEE4   .  E8 97F6FCFF   call    0040F580                                    ;②
0043FEE9   .  85C0          test    eax, eax                              ;③
0043FEEB   .  74 36         je      short 0043FF23                      ;⑤
0043FEED   .  833D C8A14C00>cmp     dword ptr [4CA1C8], 28
0043FEF4   .  7F 09         jg      short 0043FEFF
0043FEF6   .  833D C8A14C00>cmp     dword ptr [4CA1C8], 0
0043FEFD   .  7D 24         jge     short 0043FF23
0043FEFF   >  C605 B9894A00>mov     byte ptr [4A89B9], 1
0043FF06   .  6A 00         push    0                                ; /lParam = NULL

看看标有①这行,旁有注释“rarkey”,因此②中的函数调用很有可能是注册算法,在此不深究,本人也是初学者一个,没那水平。不过,我们这教程的目的只是把这个烦人的NAG去掉,因此可以不管这。然后看下③这一行,是一个测试的语句,测试EAX是否为0(而EAX来自哪呢,就是刚才分析的②中函数,由于可以更加推定这函数很有可能是注册算法),若是则跳到short 0043FF23那,0043FF23在哪呢,就是我们上面的标有④的句子,即DialogBoxParamA函数调用的下一个句子,嘿,刚好把那个烦人的NAG给跳走了,还记得我们一开始分析的吗?把这创建NAG的过程给跳过去了,这样不就达到了我们的目的吗?
也就是说,我们只要把标有⑤的这句子改成如下所示就可以了:
0043FEEB   .  74 36         jmp      short 0043FF23                      ;双击这行,把je改成jmp即可
这样,我们就永远把这个烦人的NAG给跳过去了。
不过,别高兴的太早了,得把这修改的保存啊,在CPU窗口《右击》,选择《复制到可执行文件》,随后再弹出的窗口再《右击》,选择《保存文件》,接着又跳出了个对话框,我们以WinRAR_.exe的保存它(以防我们修改错误)。
终于OK了,最后再测试下,双击WinRAR_.exe,哈,NAG终于没了。。。。(把它改为WinRAR.exe,这样以后我们再次打开压缩文件时就不再会弹出那个NAG了)这样教程也就完了。
谢谢批评,第一个反汇编教程。

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

上传的附件:
收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gwh
2
学习了,支持原创
2008-6-14 10:27
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
用ResHacker或其它PE资源查看器打开Winrar,exe,找到这个NAG窗口直接删掉再保存。OK
2008-6-14 11:09
0
雪    币: 207
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
确实!
但在本教程中它只是个辅助工具,我们的目的是通过反汇编解决,练兵。
2008-6-14 12:24
0
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
5
谢谢哦,学习了
2008-6-14 13:23
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
恩  我只会jmp  //无条件跳
jz  //相等则跳
..
...
.....
....
......
别的我就只会脱壳了  简单的壳
2008-6-14 13:37
0
雪    币: 317
活跃值: (93)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
7
学习下原创文学!!!
2008-6-14 16:05
0
游客
登录 | 注册 方可回帖
返回
//