去除警告視窗意為將廣告彈窗去除,去除的思路歸根結底是:在不影響主程式的條件下,查詢到警告視窗建立的位置將其跳過或者nop掉,顯示視窗的函式主要有messagebox、dialogboxpara、showwindow、createwindowex。還有一種去除的方式是通過訊息斷點的方式準根溯源到視窗建立的**。
這裡的例項是加密解密書上的例項程式,演示為了熟悉整個操作的思路和流程
源程式:
演示程式是乙個呼叫了dialogboxparama函式來顯示資源中的對話方塊
我們可以用exescope開啟它,查詢其對應的資源id:
我們發現資源id為121, 對應十六進製制0x79. 根據這點開啟w32dasm去檢視資源id為0x79的彙編**:
我們也是確實呼叫了dialogboxparama,但是這裡不能簡單的將dialogboxparama去除,因為dialogboxparama一般會和enddialog配合使用,前者開啟對話方塊,後者關閉對話方塊
函式原型:
int dialogboxparam(
hinstance hinstance, //控制代碼
lpctstr lptemplatename, //對話方塊id
hwnd hwndparent, //父視窗控制代碼
dlgproc lpdialogfunc, //對話方塊處理函式指標
param dwinitparam //初始化值
);這裡的最重要引數是lpdialogfunc,此引數制定了視窗**的具體**位置,在ida中具體**如下:
這裡發現,呼叫主程式也是呼叫的dialogboxparama,並且視窗的id為0x65,跟蹤到這裡我們總結出了兩種修改方式:
第5章 演示版保護技術 時間限制
settimer 函式 向系統申請乙個計時器並指定計時器的時間間隔,同時獲得乙個處理器超時的 函式,超時時系統會向申請計時器的目標視窗傳送訊息 wm timer timesetevent 函式 多 計時器,精度可以達到 1ms gettickcount 函式 返回從系統成功啟動以來所經歷的時間 ms...
第5章 演示版保護技術 序列號保護方式
序列號保護機制 序列號 f 使用者名稱 將序列號與變換後的使用者名稱作對比。非常容易被攻破。f 1 序列號 使用者名稱 將序列號進行逆變換,然後與使用者名稱進行對比。窮舉法,求逆演算法,輸入序列號然後得到使用者名稱從而得到一對正確的輸入。對等函式檢查 f1 使用者名稱 f2 序列號 二元函式 f 使...
《程式設計技術》第五章例程
程式設計技術 例程 程式設計技術 第一章 c語言與程式設計 例程 程式設計技術 第二章 c語言基礎知識 例程 程式設計技術 第三章 程式控制結構 例程 程式設計技術 第四章 陣列和字串 例程 程式設計技術 第五章 指標 例程 程式設計技術 第六章 函式 例程 程式設計技術 第七章 使用者自定義型別 ...