參考: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步)