Nag的本義是煩人的意思。Nag窗口是軟件設(shè)計(jì)者用來不時(shí)提醒用戶購買正式版本的窗口。軟件設(shè)計(jì)者可能認(rèn)為當(dāng)用戶受不了試用版中的這些煩人的窗口時(shí)就會(huì)考慮購買正式版本。它可能會(huì)在程序啟動(dòng)或退出時(shí)彈出來,或者在軟件運(yùn)行的某個(gè)時(shí)刻隨機(jī)或定時(shí)地彈出來,確實(shí)比較煩人。 去除警告窗口常用的三種方法是:修改程序的資源、靜態(tài)分析,動(dòng)態(tài)分析。
去除警告窗口用資源修改工具是個(gè)不錯(cuò)的方法,可以將可執(zhí)行文件中的警告窗口的屬性改成透明、不可見,這樣就變相去除了警告窗口。
如果是動(dòng)態(tài)跟蹤調(diào)試,只需找到創(chuàng)建此窗口的代碼,跳過即可。常用的顯示窗口的函數(shù)有MessageBoxA、MessageBoxExA、MessageBeep 、DialogBoxParamA 、ShowWindow、CreateWindowExA等。然而某些警告窗口用這些斷點(diǎn)不管用,就可試試?yán)孟⒃O(shè)斷點(diǎn),一般都應(yīng)能攔截下來。
例:利用消息斷點(diǎn)攔截警告窗口:
切換到SOFTICE下命令: HWND
應(yīng)看到如下的類似信息:
Window-Handle hQueue SZ QOwner Class-Name Window-Procedure
0080 (0) 2057 32 MSGSVR32 #32711 (switch_win) 17EF:00004B6E
0084 (1) 2057 32 EXPLORER shell_trayWnd 1487:0000016C
... ... ... ... ... ...
在這些列表中查找相關(guān)應(yīng)用程序的窗口句柄。如果NAG窗口上有OK按鈕,在class name查找“button”。如果NAG窗口上什么都沒有,那可試驗(yàn)找出正確的句柄。句柄列表可能非常長(zhǎng),但通常NAG窗口的句柄一般在列表的前面。
注:在這里推薦用SMU Winspector工具協(xié)助破解NAG.它能顯示你所需要的信息:Window-Handle, Window-Class Name, Window-Text, Parent Window-Handle, Parent-Window Class Name, Parent Window-Text, Module ...
一但找到NAG窗口的句柄,應(yīng)用BMSG命令在Windows的消息上下斷點(diǎn)?,F(xiàn)在假設(shè)NAG窗口有OK按鈕,你己找到正確的句柄(handle),這時(shí)下命令:
BMSG 0084 WM_DESTROY
0084是NAG窗口的句柄(handle)。這條命令是NAG窗口從屏幕上消失時(shí),SoftICE將中斷。此時(shí)將深入到一些不認(rèn)識(shí)的API函數(shù),可按F12返回程序。需要指出,跟蹤的目的是發(fā)現(xiàn)NAG窗口在何處初始化(在返回的CALL用設(shè)斷)。NAG窗口大多用Created/Destroyed類似的CALL,因此如發(fā)現(xiàn)這些,就可按需要跟蹤下去。
上一篇:軟件保護(hù)技術(shù)--序列號(hào)方式
下一篇軟件保護(hù)技術(shù)--時(shí)間限制
溫馨提示:
凡在本公司進(jìn)行電路板克隆業(yè)務(wù)的客戶,必須有合法的PCB設(shè)計(jì)版權(quán)來源聲明,以保護(hù)原創(chuàng)PCB設(shè)計(jì)版權(quán)所有者的合法權(quán)益;