freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

動態(tài)鏈接庫dll編程-資料下載頁

2025-05-13 17:13本頁面
  

【正文】 ,阻止該消息的傳遞。 ?使用全局鉤子函數(shù)時需要以 DLL為載體, VC6中有三種形式的 MFC DLL可供選擇,即標準靜態(tài)鏈接 MFC DLL、標準動態(tài)鏈接 MFC DLL以及擴展 MFC DLL)。 ?第一種 DLL在編譯時把使用的 MFC代碼鏈接到 DLL中,執(zhí)行程序時不需要其他 MFC動態(tài)鏈接類庫的支持,但體積較大; ?第二種 DLL在運行時動態(tài)鏈接到 MFC類庫,因而體積較小,但卻依賴于 MFC動態(tài)鏈接類庫的支持;這兩種 DLL均可被 MFC程序和 Win32程序使用。 ?第三種 DLL的也是動態(tài)連接,但做為 MFC類庫的擴展,只能被 MFC程序使用。 Win32 DLL ?BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved)。其中: ?第一個參數(shù)表示 DLL的實例句柄; ?第三個參數(shù)系統(tǒng)保留; ?第二個參數(shù)指明了當前調(diào)用該動態(tài)連接庫的狀態(tài),它有四個可能的值: ? DLL_PROCESS_ATTACH(進程載入)、 ? DLL_THREAD_ATTACH(線程載入)、 ? DLL_THREAD_DETACH(線程卸載)、 ? DLL_PROCESS_DETACH(進程卸載)。 DLL的共享問題 ? 由于在 Win32環(huán)境下,所有進程的空間都是相互獨立的,這減少了應用程序間的相互影響,但大大增加了編程的難度。 ? 當進程在動態(tài)加載 DLL時,系統(tǒng)自動把 DLL地址映射到該進程的私有空間 。 ? 而且也復制該 DLL的全局數(shù)據(jù)的一份拷貝到該進程空間,每個進程所擁有的相同的 DLL的全局數(shù)據(jù)其值卻并不一定是相同的。 ? 當 DLL內(nèi)存被映射到進程空間中,每個進程都有自己的全局內(nèi)存拷貝,加載 DLL的每一個新的進程都重新初始化這一內(nèi)存區(qū)域,也就是說進程不能再共享 DLL。 全局共享數(shù)據(jù)的實現(xiàn) ?在 Win32環(huán)境下要想在多個進程中共享數(shù)據(jù),就必須進行必要的設置。 ?一種方法便是把這些需要共享的數(shù)據(jù)單獨分離出來,放置在一個獨立的數(shù)據(jù)段里,并把該段的屬性設置為共享,建立一個內(nèi)存共享的 DLL。 pragma data_seg ?用 pragma data_seg建立一個新的數(shù)據(jù)段并定義共享數(shù)據(jù),其具體格式為: pragma data_seg ( shareddata) HWND sharedwnd=NULL。//共享數(shù)據(jù) pragma data_seg() ?所有在 data_seg pragmas語句之間聲明的變量都將在 shareddata段中。僅定義一個數(shù)據(jù)段還不能達到共享數(shù)據(jù)的目的,還要告訴編譯器該段的屬性,有兩種方法可以實現(xiàn)該目的(其效果是相同的), ?一種方法是在 .DEF文件中加入如下語句: SETCTIONS shareddata READ WRITE SHARED ?另一種方法是在項目設置鏈接選項中加入如下語句: ?/SECTION:shareddata,rws ?加上一條指令 ?pragma ment(linker,/section:. shareddata,rws), 程序只能啟動一次 ? include ? pragma data_seg(flag_data) ? int count=0。 ? pragma data_seg() ? pragma ment(linker,/SECTION:flag_data,RWS) ? int main(int argc, char* argv[]) ? { ? if(count0) { ? MessageBox(NULL,已經(jīng)啟動了一個應用程序,Warning,MB_OK)。 ? return 0。 ? } ? count++。 ? system(pause)。 ? return 0。} 程序示例 ?鼠標鉤子 ?鼠標 鍵盤 密碼 掛接 ExitWindowsEx ? 隨著安全意識的不斷提高,許多軟件都增強的自我保護性,結(jié)束其進程時將會調(diào)用 ExitWindowsEx函數(shù)關機或者重啟。這種技術(shù)在收費管理系統(tǒng)、病毒木馬、加殼軟件、反破解領域里很常見,因而采用APIHOOK技術(shù)掛接 ExitWindowsEx函數(shù)使其失效,對與我們查殺病毒以及軟件破解是很有用的。 ? 當然還能運用它免費上網(wǎng)呢!現(xiàn)在許多收費軟件都采取會員制,下機時點結(jié)帳下機按鈕后,客戶端就發(fā)送數(shù)據(jù)報給主機,告知用戶已下機從而停止記費,同時重新啟動或關閉計算機。掛接 ExitWindowsEx后就可以讓機子不重啟,免費上網(wǎng)? 改寫 IAT(引入表)法 ?這種方法的優(yōu)點是較穩(wěn)定,不要擔心線程同步的問題。 ?思路如下: ?根據(jù) PE文件格式窮舉模塊中的 image_impot_desciptor引入函數(shù)數(shù)組, 檢查進程空間里是否有要 HOOK的 API的所在的 DLL,如果有則通過 WiteProcessMemory、VirtualProtect等函數(shù)改寫 IAT中的目標 API函數(shù)地址,將其改為我們自定義函數(shù)的地址。 ?由于地址不能跨進程引用,所以我們可以使用 Windows消息鉤子將 APIHOOK所在的 DLL注入到其他進程里 , 為了取得較好的效果,推薦使用 WH_GETMESSAGE類性的鉤子。
點擊復制文檔內(nèi)容
范文總結(jié)相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1