|
WinRAR正版官方网站:https://www.winrar.com.cn/
尊重原创,尊重正版,仅用于学习探讨,请勿用于商业等违法行为
我的实现思路:
1.老样子观察分析这个软件的行为,以及他涉及调用的Windows API入手。
2.观察得出,每次启动WinRAR.exe时,他需要创建Windows窗体+额外的窗体来展示广告弹窗。
3.x64dbg内附加启动,在CreateThread() CreateProcess()函数下断。
4.F9进行调试,慢慢来,看看他主窗体第几次触发CreateThread()函数,分析得出第4次调用CreateThread()函数时,主窗体和广告窗体都一起弹出来了。
5.那么我就在第四次触发CreateThread()函数时去追着他的堆栈,前2个是去调用堆栈是Windows API的函数,可以忽略去看第3个调用堆栈及更前面的调用。
6.点进第3个调用堆栈中,将该函数下断,重新运行程序。
7.然后F7单步碰到CALL调用F8过步慢慢走,看看会不会执行到弹出窗体。
8.继续单步+过步走,看哪里执行的弹窗出广告窗体。
9.我们成功找到了弹出广告窗体的函数Call,在该函数CALL上面有一个JNE判断,我们可以直接汇编改成JMP强制跳转,然后生成补丁直接运行。
成功并且显示已注册,并且无广告弹窗,清爽~
找到Winrar目录直接替换即可。
|