首先od载入运行

运行以后待广告窗口出来以后,下api断点
bp DestroyWindow

然后点击广告窗口的关闭按钮,od中会暂停下来,查看堆栈中传入的参数

可以看到类名为RarReminder,这里类名是unicode的,我们用IDA反汇编一下,IDA默认shift+f12显示字符串列表中是没有unicode字符串的,需要我们在字符串窗口中右键点击setup勾选unicode

查找我们刚才的类名,查看交叉引用,可以看到

进去看看发现第一处是CreateWindow的调用,第二处是注册窗口类,所以我们在调用CreateWindow的这个sub_4A5130函数上再按x回溯到上一级函数,发现到了WinMain,估计这个sub_4A5130函数就是专门创建广告窗口的函数了,所以我们把这个函数的调用给nop掉,因为这个函数是__stdcall,被调用的函数清理堆栈,所以我们只需要把push参数的汇编代码和call这个函数的汇编代码改成nop就完事了
回到流程图,在option菜单里的general选项里勾选前缀和输入opcode数量

然后选中opcodes

6A 00 6A 01 E8 42 39 FC FF
010editor中打开winrar.exe,搜索这几个字节

然后把这几个字节都改成0x90

再次运行winrar,广告就没了,版权的话reshackerok了,或者用010editor,只要不妨碍到后面其他的数据,字符串末尾添0x00或者unicode的添两个0x00ojbk
64位版本的和32位版本一样,只不过是call函数之前是寄存器传参,只需要把这几个字节给nop掉就好了