参考:https://bbs.pediy.com/thread-257107.htm
程序信息:
WinRAR v5.80 64位
工具:
-
x64dbg(ollydbg不能调试64位程序)
-
Exeinfo PE
开始破解:
1.先用Exeinfo PE查看下程序(打开工具,将程序拖拽进去即可查看),得到信息如下图,可知该程序没有加壳,而且是用C++写的
2.程序会出现两个弹窗,一个是提醒你该软件不是免费的,让你购买,另一个是广告弹窗,两个随机出现一个(不是百分百触发分析就很难受了),我们要把这个两个弹窗都去掉
3.第一个是模态对话框,我们在函数DialogBoxParamW处下断点,先使用x64dbg加载程序,然后按Ctrl+G,输入DialogBoxParamW点确定来到DialogBoxParamW函数处,按F2下断
4.然后按F9让程序运行起来,如果是弹出广告窗口就往下看第7步,如果是停在我们刚刚断点处,恭喜你和我一样,通过栈窗口的返回地址返回到调用DialogBoxParamW函数的地址处,向上分析,很容易就找到了关键跳转
5.我们直接将关键跳转条件改为无条件跳转,选中要修改的关键跳转处按空格键,然后将je改为jmp
6.右键->补丁(Ctrl+P),然后点修补文件(文件名要带exe后缀)
7.提示购买的窗口就去掉了,现在我们用修改过的或者修改之前的程序(去掉之前的断点)都行,用x64dbg重新加载程序,直接按F9,让程序运行起来,如果没有出现广告弹窗就按Ctrl+F2重新加载再运行,出现了广告弹窗后先不要关闭,在x64dbg中点击句柄来到句柄窗口,然后通过标题找到窗口类名,并给该窗口下个消息断点WM_DESTROY
8.现在关掉广告弹窗就会触发我们刚刚下的消息断点,来到用户领空
9.右键->搜索->当前模块->字符串,输入我们刚刚得到的窗口类名,可以搜索到两个,我们先看第一个
10.双击第一行的地址,转到反汇编窗口,可以看到下面立马就调用了CreateWindowExW函数,所以这里可能就是创建广告窗口的地方,我们将调用指令直接nop掉,然后打上补丁(见第6步)