http://ift.tt/2Bqls8z
前言
Winrar 是windows平台下一款非常强大的解压软件,免费版就已经够用了,但是老是弹广告实在是受不了啊,今天就教大家怎么去除winrar 的广告
工具
- 32位Winrar
- OllyDbg
- spy++
熟悉软件流程
如图,只要想破解的就是去掉烦人的广告
用spy++ 查看窗口的类名 和窗口名
直接开干
首先,如果想要实时播放广告,肯定是需要进行网络请求的
可以考虑从以下几个点入手
- socket相关API
- 因为我以前从事过商业广告相关的业务,所以了解可能会有自己的广告链接地址到PDB,说不定http字符串没有加密呢LOL
- 窗口创建方式,是createwindow 还是dialog
开始分析
找到安装目录下的exe 文件,拖进OD
先从最简单的搜索字符串开始分析,说不定人家就没有加密呢
果然没有加密,一下就搜到了
下断点,看是不是这个字符串
F9跑起来
可以看到果然断在了这里,证明我们下的断点是正确的
012B4535 . 68 F8BE3301 PUSH WinRAR.0133BEF8 ; http://ift.tt/2j9lta2
012B453A . E8 A17CFDFF CALL WinRAR.0128C1E0
012B453F . 8B0D F8703801 MOV ECX,DWORD PTR DS:[0x13870F8] ; 跨Υ
012B4545 . 8D85 20100000 LEA EAX,DWORD PTR SS:[EBP+0x1020]
012B454B . 6A 01 PUSH 0x1
012B454D . 50 PUSH EAX
012B454E . 6A 00 PUSH 0x0
012B4550 . FF35 08713801 PUSH DWORD PTR DS:[0x1387108]
012B4556 . FF35 70AF3701 PUSH DWORD PTR DS:[0x137AF70] ; WinRAR.01210000
012B455C . E8 6F900100 CALL WinRAR.012CD5D0 ; 发现是使用CreateWindow创建的窗口
012B4561 . 833D 90BB3301>CMP DWORD PTR DS:[0x133BB90],0x0
简单了跟了2个函数,发现是通过CreateWindow创建的广告窗口
,所以说只要找到创建广告的函数,在里面跳过这个API就OK了,狠一点直接NOP掉
下 API 断点
bp CreateWindowExW
重新加载,注意仔细看窗口的名称
类名 和窗口名spy++ 找的一样,说明找到了,查看堆栈调用
栈回溯找到调用函数在这
012B4DB5 6A 00 PUSH 0x0 ; /lParam = NULL
012B4DB7 FF35 74AF3701 PUSH DWORD PTR DS:[0x137AF74] ; |hInst = 01210000
012B4DBD 6A 00 PUSH 0x0 ; |hMenu = NULL
012B4DBF 6A 00 PUSH 0x0 ; |hParent = NULL
012B4DC1 53 PUSH EBX ; |Height
012B4DC2 56 PUSH ESI ; |Width
012B4DC3 55 PUSH EBP ; |Y
012B4DC4 FF7424 2C PUSH DWORD PTR SS:[ESP+0x2C] ; |X
012B4DC8 57 PUSH EDI ; |Style
012B4DC9 68 D4313201 PUSH WinRAR.013231D4 ; |WinRAR
012B4DCE 68 C4573201 PUSH WinRAR.013257C4 ; |RarReminder
012B4DD3 6A 00 PUSH 0x0 ; |ExtStyle = 0
012B4DD5 FF15 A4053201 CALL DWORD PTR DS:[<&USER32.CreateWindow>; \CreateWindowExW
我是想直接jmp掉吧,广告请求就不关闭了,不知道是不是非得显示广告才算收益,毕竟人家都免费了,只要不烦到我就好
因为我的OD蹦了一次,这个程序重定位我也没有关,所以下面的地址可能会不同,但是思路是一样的
00AF4DA6 |> \68 00010000 PUSH 0x100
00AF4DAB |. 68 F8BEB700 PUSH WinRAR.00B7BEF8 ; http://ift.tt/2j9lta2
00AF4DB0 |. E8 1BF3FFFF CALL WinRAR.00AF40D0
00AF4DB5 EB 24 JMP SHORT WinRAR.00AF4DDB ; 直接改成jmp,跳过这个函数
00AF4DB7 |. FF35 74AFBB00 PUSH DWORD PTR DS:[0xBBAF74] ; |hInst = 00A50000
00AF4DBD |. 6A 00 PUSH 0x0 ; |hMenu = NULL
00AF4DBF |. 6A 00 PUSH 0x0 ; |hParent = NULL
00AF4DC1 |. 53 PUSH EBX ; |Height
00AF4DC2 |. 56 PUSH ESI ; |Width
00AF4DC3 |. 55 PUSH EBP ; |Y
00AF4DC4 |. FF7424 2C PUSH DWORD PTR SS:[ESP+0x2C] ; |X
00AF4DC8 |. 57 PUSH EDI ; |Style
00AF4DC9 |. 68 D431B600 PUSH WinRAR.00B631D4 ; |WinRAR
00AF4DCE |. 68 C457B600 PUSH WinRAR.00B657C4 ; |RarReminder
00AF4DD3 |. 6A 00 PUSH 0x0 ; |ExtStyle = 0
00AF4DD5 |. FF15 A405B600 CALL DWORD PTR DS:[<&USER32.CreateWindow>; \CreateWindowExW
00AF4DDB |. F605 88BBB700>TEST BYTE PTR DS:[0xB7BB88],0x1
00AF4DE2 |. 5F POP EDI
00AF4DE3 |. 5D POP EBP
00AF4DE4 |. 74 13 JE SHORT WinRAR.00AF4DF9
保存
效果展示
烦人的广告没有了!!
The post 手把手教你WINRAR 去广告 — 小白向 appeared first on cole.
http://ift.tt/2j9vuUP reverse engineering, reverse, 破解, 逆向 December 02, 2017 at 11:13AM
评论
发表评论