1. 程式人生 > >逆向入門之計次軟體的破解

逆向入門之計次軟體的破解

一·破解的軟體簡介:

軟體名:VisualSite Designer

軟體在啟動時會跳出一個nag視窗提醒使用者還有多少次的免費使用機會,當免費使用次數變為0時,就要求使用者花錢購買此軟體了。

然後在關閉程式的時候也會跳出一個廣告視窗

二·目標:

去除軟體的計次,得到免費無限次執行的效果,順便將程式關閉時的廣告視窗去除了。

三·實戰:

  1. 先用PEID查一下有沒有殼之類的:

沒有殼,並且是VC++ 6.0編譯的

2.然後將程式載入OD中進行分析:

然後先一路按F8,然後我們發現程式在004BD497的位置出現計次視窗:

然後在這個位置下斷點,重新執行程式,然後進入F7這個call函式,再一路F8直到再次出現這個nag;

第二次出現nag的位置:004BD520

然後繼續用上面的方法下斷點,重新執行程式,F7進入Call,再一路F8直到再次出現這個nag;

第三次出現nag的位置:59CF6243

這個地址是再MFC的動態連結庫裡面,不是程式本身,所以這個位置上面我們要下硬體斷點,然後再重新執行程式,F7進入Call,再一路F8直到再次出現這個nag;

第四次出現nag的位置:00489912

利用同樣的方法繼續進入這個call;

第五次出現nag的位置:59D23508

然後下硬體斷點,繼續進入這個call;

但是進入這個call後,我們發現一路F8(Ctrl+F8)後,出現了這個nag視窗,但是我們的OD卻還在一直跑,沒有停下來,這就說明59D23508的這個call是我們要修改的地方,但是因為這個地址是動態連結庫的地址,不是我們的程式本身,所以無法修改,所以我們只能回到上一個call的位置,也就是00489912的位置進修修改。

3.call分析:

當我們在00489912的位置,出現nag視窗後,我們點選進入程式,我們發現OD中的指令來到了00489917,也就是call下一行:cmp eax,1;說明這個call函式就執行了兩大件事:彈出nag並返回eax=1;

所以我們將原來的call函式直接改為令eax=1,彙編指令為:MOV EAX,1

然後儲存檔案,執行驗證一下,程式直接進入主程式了,ok!

 

4.去除尾部廣告視窗

將我們剛才修改的程式重新載入OD中,執行,然後關閉程式,在廣告窗口出來的時候,按下OD的暫停鍵:

然後檢視OD的呼叫堆疊:

 

然後看到:

只有紫色箭頭的位置是程式本身,其他都是系統,所以我們雙擊黃色箭頭處,來到呼叫函式的地方,也就是這個廣告窗口出現的位置:00480C24;

然後再這個位置下斷點,重新執行程式,關閉程式,發現廣告視窗確實再這裡斷下來了:

然後,我們只需要把這個call函式去掉就可以了,這樣就不會呼叫這個函數了;

組合語言:nop

然後儲存檔案,執行驗證一下,程式直接進入主程式,然後退出時也直接關閉了!