好,廢話不多說,教程開始。
我們首先查殼,是Aspark的殼,對於這個殼,大家應該很熟了。
<ignore_js_op>
我已經脫好了殼,再查一下殼,是Dephi的
<ignore_js_op>
<ignore_js_op>
我們先使用一下軟件,詳細了解
<ignore_js_op>
<ignore_js_op>
很明顯,未注冊版本不能使用“單人挑戰”、“網絡挑戰”等功能,那么破解就是為了可以使用這些功能。
好,我們用OllyDbg載入軟件
<ignore_js_op>
直接讓軟件運行,並點擊“單人挑戰”,隨意選擇等級,彈出“未注冊”
讓軟件暫停運行,點擊 “查看”—“調用堆棧” 彈出堆棧窗口,如圖
<ignore_js_op>
選擇最后的一行,右擊,選擇顯示調用,來到彈出窗口的CALL
<ignore_js_op>
分析一下,顯然00569A7F是跳轉的關鍵。那有朋友要說,不是把那行的“jnz”改為“je”就可以了嗎?是的,這樣確實可以,但因為未注冊版本有很多功能無法使用,如果只改這里,那么其他的功能(如網絡挑戰)還得按照這樣的方法修改。這不是很煩嗎?所以我們要找到使這個跳轉跳向未注冊的關鍵點
<ignore_js_op>
我們在這段代碼的開頭下F2斷點,重新運行軟件,點擊“單人挑戰”,隨意選擇等級,程序馬上暫停,Ollydbg提示有斷點。然后一步步分析,發現00569A7C的代碼似乎是判斷是否注冊的關鍵。單步運行到00569A7C,CPU下方小窗口顯示ds[005731E4]=00,那很顯然,只要ds[005731E4]=01,那么程序就是注冊的了。我們右擊這個提示,選“數據窗口中跟隨地址”,如圖
<ignore_js_op>
如圖,將005731E4的數據改為01
接下來就是要生成破解后的文件,在數據窗口右擊,選“復制到可執行文件”,在彈出的窗口右擊,選“保存文件”
<ignore_js_op>
<ignore_js_op>
我們試用一下破解后的文件,可以了,已經沒有限制
<ignore_js_op>
到這里,教程就結束了,大家下去后好好練習下。我修改了一下軟件的界面,如圖
<ignore_js_op>
<ignore_js_op>
附上軟件的地址http://u.115.com/file/f3af9dca33 開心知識問答.zip
其中的kxqa.exe是原程序,脫殼.exe是脫殼后的文件,破解.exe是破解后的文件,開心知識問答.exe是我修改軟件界面后的文件