Nag的本義是煩人的意思。Nag窗口是軟件設(shè)計者用來不時提醒用戶購買正式版本的窗口。軟件設(shè)計者可能認(rèn)為當(dāng)用戶受不了試用版中的這些煩人的窗口時就會考慮購買正式版本。它可能會在程序啟動或退出時彈出來,或者在軟件運行的某個時刻隨機或定時地彈出來,確實比較煩人。 去除警告窗口常用的三種方法是:修改程序的資源、靜態(tài)分析,動態(tài)分析。
去除警告窗口用資源修改工具是個不錯的方法,可以將可執(zhí)行文件中的警告窗口的屬性改成透明、不可見,這樣就變相去除了警告窗口。
如果是動態(tài)跟蹤調(diào)試,只需找到創(chuàng)建此窗口的代碼,跳過即可。常用的顯示窗口的函數(shù)有MessageBoxA、MessageBoxExA、MessageBeep 、DialogBoxParamA 、ShowWindow、CreateWindowExA等。然而某些警告窗口用這些斷點不管用,就可試試?yán)孟⒃O(shè)斷點,一般都應(yīng)能攔截下來。
例:利用消息斷點攔截警告窗口:
切換到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窗口上什么都沒有,那可試驗找出正確的句柄。句柄列表可能非常長,但通常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的消息上下斷點。現(xiàn)在假設(shè)NAG窗口有OK按鈕,你己找到正確的句柄(handle),這時下命令:
BMSG 0084 WM_DESTROY
0084是NAG窗口的句柄(handle)。這條命令是NAG窗口從屏幕上消失時,SoftICE將中斷。此時將深入到一些不認(rèn)識的API函數(shù),可按F12返回程序。需要指出,跟蹤的目的是發(fā)現(xiàn)NAG窗口在何處初始化(在返回的CALL用設(shè)斷)。NAG窗口大多用Created/Destroyed類似的CALL,因此如發(fā)現(xiàn)這些,就可按需要跟蹤下去。
上一篇:軟件保護技術(shù)--序列號方式
下一篇軟件保護技術(shù)--時間限制
溫馨提示:
凡在本公司進(jìn)行電路板克隆業(yè)務(wù)的客戶,必須有合法的PCB設(shè)計版權(quán)來源聲明,以保護原創(chuàng)PCB設(shè)計版權(quán)所有者的合法權(quán)益;