[原创]patch WinRar
随便从百度上下载了一个WinRar

居然带广告的,按照以前的想法下载一个7Z不用这坑货,问题就迎刃而解了。
可是最近看了格蠹汇编,出问题自己搞是个好习惯。
第一步先明确问题
这是个广告弹窗,首先得确认是谁弹的,弹的什么类型的窗口,SPy++出场

PID 0x3594 换成10进制是13716 进程管理器中看一下,就是WinRar弹的,没有启动其他进程

再看一下类名

启windbg 下这样一个条件断点
bp USER32!CreateWindowExW "r $t1=poi(esp+8); as /mu $FileName $t1; .block{ .if ($spat(\"${$FileName}\",\"Rar*\")) {.echo found the pattern; .echo $FileName; ad ${/v:$FileName} } .else { .echo not found the pattern; .echo '$FileName'; ad ${/v:$FileName}; gc;} }"

shift+F11之后,这个窗口就创建出来了
在IDA中定位WinRar+0x9a26c

这个CreateWindowExW是在下面这个函数中被调用的

按照正常情况来说,这时该分析这个函数的功能,但是凭感觉来说在这个窗体创建之前,主窗口已经创建好了,这个窗口只为弹广告的,直接patch这个函数试试,不行再回来分析函数的功能。
windbg patch函数不如od直观,这里看个人喜好吧。0x340000+0x99ee0

这里又一次运行,绝对地址不是原来的了。
在函数入口直接编辑成,retn 8,F9果然没有那个弹窗了,试了试,可以正常使用。
这里边还有一个虚拟地址和文件偏移的转换,

开WinHex改这个位置,保存,运行,去广告完毕。
