飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 10394|回复: 14

[原创] Winrar v5.4 去广告

  [复制链接]
  • TA的每日心情

    2017-12-31 15:45
  • 签到天数: 120 天

    [LV.7]常住居民III

    发表于 2016-11-26 14:08:43 | 显示全部楼层 |阅读模式
    【软件名称】:WinRar
    【软件版本】:5.4
    【软件下载】:自己搜索下载
    【外壳保护】:无
    话说硬柿子都被大牛捏掉了,我们这些屌丝只能捏捏软柿子了。
    话说winrar原来在中国改变战略了(现在才知道,汗),只是在软件里搞个Nag
    1.png
    这个东西其实挺讨厌的,尤其是我这种电脑配置不好的。
    理一理破解思路。
    1. 下断CretaeWindow
    2. 看看是哪块不开眼的代码创建了这个窗口
    3. 做了它
    OD载入它,按Ctrl+N,发现只有CreateWindowExW这一个API。
    我们当然不能直接傻乎乎地在那里一个一个的跟踪,假设有20个控件,那么就要调用这个API20次……
    所以我们考虑一下条件断点,我查了下这个API的参数列表。
    第一个参数是风格,不用鸟他
    第二个参数是类名,这个很重要
    第三个参数是标题名,不喜欢用。
    我们来看看第二个参数,按照stdcall的调用方式,参数从右边往左边入栈,同时栈空间是从高往低增长的,
    比如调用 a,a(1, 2, 3)
    Push 3 ;入栈3,执行完成后,esp = esp - 4
    Push 2 ;入栈2,esp = esp - 8
    Push 1; 入栈1,esp = esp – 0xC
    Call a ;入栈返回地址eip,esp = esp – 0x10
    栈空间里就是这样排放的数据
    返回地址eip         ESP
    参数1(1)          ESP+ 4
    参数2(2)          ESP+ 8
    参数3(3)          ESP+ 0xC
    本人语文不好,可能没讲清楚,别打我啊……
    于是我们可以得出,ESP + 8就是参数二(stdcall调用方式),而ESP + 8是一个字符串地址
    我们再来看看OD的条件断点语法。
    [UNICODE [ESP]]== “12345” ;如果ESP(字符串地址)指向的字符串等于12345就中断,因为CreateWindowExW使用的是UNICODE字符串,所以这里也用UNICODE,如果是以A结尾的API,则使用STRING
    其实也可以这么写
    [UNICODE[[ESP]]] ;这个就相当于字符串的指针了。好吧,扯歪了一点。

    我们在OD的CPU窗口中按Ctrl+G,输入CreateWindowExW,按确定,来到该API头部,再按Shift + F2,输入以下表达式。
    2.png
    按确定,至于这个类名是怎么得到的吗,其实很简单啊,比如说我用的是Spy4Win这个小工具
    3.png
    点确定之后,我们按下F9,让程序跑起来。
    4.png
    断在这里,我们右键那个第一行的CALL到……,点击反汇编窗口中跟随,发现来到了这里
    004A17AD  |> \68 00010000   push   100
    004A17B2  |.  68 186F5200  push    00526F18                         ;  ASCII"http://ad.winrar.com.cn/show_2.html?L=7&bl=7&v=540personal&a=32&src=pe005"
    004A17B7  |.  E8 24F3FFFF  call    004A0AE0
    004A17BC  |.  6A 00         push   0                                ;/lParam = NULL
    004A17BE  |. FF35 24DF5600 push    dword ptr[56DF24]               ; |hInst =00400000
    004A17C4  |.  6A 00         push   0                                ;|hMenu = NULL
    004A17C6  |.  6A 00         push   0                                ;|hParent = NULL
    004A17C8  |. 57            push    edi                              ; |Height
    004A17C9  |. 56            push    esi                             ;|Width
    004A17CA  |. 55            push    ebp                              ; |Y
    004A17CB  |. FF7424 2C     push   dword ptr [esp+2C]               ; |X
    004A17CF  |. 53            push    ebx                              ; |Style
    004A17D0  |.  68ACE05000   push    0050E0AC                         ; |WindowName ="WinRAR"
    004A17D5  |.  6804065100   push    00510604                         ; |Class ="RarReminder"
    004A17DA  |.  6A 00         push   0                                ; |ExtStyle = 0
    004A17DC  |.  FF15 A0B65000 call    dword ptr[<&USER32.CreateWindow>; \CreateWindowExW
    004A17E2  |.  F605 A86B5200>test    byte ptr [526BA8], 1
    004A17E9  |.  5F            pop     edi
    004A17EA  |. 5D            pop     ebp
    004A17EB  |.  7413         je      short 004A1800
    004A17ED  |.  6A 03         push   3                                ;/Flags = SWP_NOSIZE|SWP_NOMOVE
    004A17EF  |.  6A 00         push   0                                ;|Height = 0
    004A17F1  |.  6A 00         push   0                                ;|Width = 0
    004A17F3  |.  6A 00         push   0                                ;|Y = 0
    004A17F5  |.  6A 00         push   0                                ;|X = 0
    004A17F7  |.  6A FF         push   -1                               ; |InsertAfter =HWND_TOPMOST
    004A17F9  |. 50            push    eax                              ; |hWnd
    004A17FA  |. FF15 88B65000 call    dword ptr[<&USER32.SetWindowPos>; \SetWindowPos
    004A1800  |> 833D 14895300>cmp     dword ptr[538914], 0
    004A1807  |.  7433         je      short 004A183C
    004A1809  |. C605 64A05700>mov     byte ptr [57A064], 1
    004A1810  |.  EB 2A        jmp     short 004A183C
    004A1812  |> 84DB          test    bl, bl
    004A1814  |.  7426         je      short 004A183C
    004A1816  |.  6A 00         push   0                                ;/lParam = NULL
    004A1818  |.  68403D4D00   push    004D3D40                         ; |DlgProc =WinRAR.004D3D40
    004A181D  |.  C60564A05700>mov     byte ptr [57A064], 1            ; |
    004A1824  |. FF15 B0B65000 call    dword ptr[<&USER32.GetFocus>]   ;|[GetFocus
    004A182A  |. 50            push    eax                              ; |hOwner
    004A182B  |.  68 1C065100  push    0051061C                         ; |pTemplate ="REMINDER"
    004A1830  |. FF35 20DF5600 push    dword ptr[56DF20]               ; |hInst =00400000
    004A1836  |. FF15 78B65000 call    dword ptr[<&USER32.DialogBoxPar>; \DialogBoxParamW
    通篇都是创建窗口,我们把代码往上面拉一拉。
    5.png
    这些字符串很可疑啊,看起来就是网址,而且还含有ad(广告),我们继续把代码往上面翻。
    6.png
    原来这是一个函数啊,考虑直接在段首RET掉。我们回到段尾,发现是RET8,我们就把段首第一句改成RET8好了(堆栈平衡参数,否则会崩溃)。
    7.png
    保存,打开,发现弹窗已经被去掉了。
    8.png
    清清爽爽的,多秀气的小姑娘啊。
    打完收工了。


    评分

    参与人数 8威望 +68 飘云币 +76 收起 理由
    sdnyzjzx + 20 + 20 很给力!
    pdjfx + 4 + 4 赞一个!
    1195992737 + 4 很给力!
    lpxx + 4 + 4 很给力!
    ZMZwise + 4 赞一个!
    cfc1680 + 8 + 8 赞一个!
    GeekCat + 20 + 40 感谢发布原创作品!
    zktto + 4 很给力!

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    开心
    前天 22:05
  • 签到天数: 2300 天

    [LV.Master]伴坛终老

    发表于 2016-11-26 15:40:29 | 显示全部楼层
    谢谢楼主分享,这教程看了受益匪浅,思路不错。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-11-29 20:11
  • 签到天数: 786 天

    [LV.10]以坛为家III

    发表于 2016-11-26 16:22:33 | 显示全部楼层
    恩恩,不错的思路
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    3 天前
  • 签到天数: 1693 天

    [LV.Master]伴坛终老

    发表于 2016-11-26 17:00:40 | 显示全部楼层
    学习了,感谢分享了
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-1-7 10:46
  • 签到天数: 856 天

    [LV.10]以坛为家III

    发表于 2016-11-26 18:03:55 | 显示全部楼层
    非常赞,就需要这样的技术帖
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2022-1-19 15:50
  • 签到天数: 147 天

    [LV.7]常住居民III

    发表于 2016-11-26 19:32:02 | 显示全部楼层
    大牛吃柿子 小牛吃柿皮
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-2-8 15:20
  • 签到天数: 10 天

    [LV.3]偶尔看看II

    发表于 2016-11-26 21:04:10 | 显示全部楼层
    感谢楼主,小牛就跟着你吃软柿子(好像今天在那见过这贴!)
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2023-1-9 20:58
  • 签到天数: 1877 天

    [LV.Master]伴坛终老

    发表于 2016-11-26 21:51:21 | 显示全部楼层
    看起来很不错哦,收藏之~~~ 谢谢LZ啦!!!思路看起来挺简单啊
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    前天 09:39
  • 签到天数: 2806 天

    [LV.Master]伴坛终老

    发表于 2016-11-27 00:48:06 | 显示全部楼层
    平凡中见功底。
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-5-3 14:48
  • 签到天数: 921 天

    [LV.10]以坛为家III

    发表于 2016-11-27 07:51:24 | 显示全部楼层
    学习学习啦
    PYG19周年生日快乐!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表