您好,登錄后才能下訂單哦!
這篇文章給大家介紹怎么在易語言中使用HOOK注入獲取內容,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
DLL命令表
.版本 2 .DLL命令 RtlMoveMemory, 整數(shù)型, "kernel32.dll", "RtlMoveMemory" .參數(shù) Destination, 整數(shù)型 .參數(shù) Source, 整數(shù)型 .參數(shù) Length, 整數(shù)型 .DLL命令 CreateWindowExA, 整數(shù)型 .參數(shù) dwExStyle, 整數(shù)型 .參數(shù) lpClassName, 文本型 .參數(shù) lpWindowName, 文本型 .參數(shù) dwStyle, 整數(shù)型 .參數(shù) x, 整數(shù)型 .參數(shù) y, 整數(shù)型 .參數(shù) nWidth, 整數(shù)型 .參數(shù) nHeight, 整數(shù)型 .參數(shù) hWndParent, 整數(shù)型 .參數(shù) hMenu, 整數(shù)型 .參數(shù) hInstance, 整數(shù)型 .參數(shù) lpParam, 整數(shù)型 .DLL命令 VirtualProtect, 邏輯型 .參數(shù) lpAddress, 整數(shù)型 .參數(shù) dwSize, 整數(shù)型 .參數(shù) flNewProtect, 整數(shù)型 .參數(shù) lpflOldProtect, 整數(shù)型, 傳址 .DLL命令 SetWindowLongA, 整數(shù)型, , "SetWindowLongA" .參數(shù) hWnd, 整數(shù)型 .參數(shù) nIndex, 整數(shù)型 .參數(shù) dwNewLong, 整數(shù)型 .DLL命令 CallWindowProcA, 整數(shù)型, , "CallWindowProcA" .參數(shù) lpPrevWndFunc, 整數(shù)型 .參數(shù) hWnd, 整數(shù)型 .參數(shù) Msg, 整數(shù)型 .參數(shù) wParam, 整數(shù)型 .參數(shù) lParam, 整數(shù)型 .DLL命令 GetProcAddress, 整數(shù)型 .參數(shù) hModule, 整數(shù)型 .參數(shù) lpProcName, 文本型 .DLL命令 GetModuleHandleA, 整數(shù)型 .參數(shù) lpModuleName, 文本型 .DLL命令 MessageBoxA, 整數(shù)型, "user32.dll", "MessageBoxA", 公開, 顯示和操作一個消息框。該消息框包含一個應用程序定義的消息和標題,加上預定義的圖標和按鈕的任意組合。 wLanguageId參數(shù)指定為預定義的按鈕使用的語言資源集。 .參數(shù) hwnd, 整數(shù)型, , 要創(chuàng)建的消息框的所有者窗口的句柄。如果這個參數(shù)為NULL,則消息框沒有所有者窗口 .參數(shù) lpText, 文本型 .參數(shù) lpCaption, 文本型 .參數(shù) wtype, 整數(shù)型 .DLL命令 SetWindowsHookExA, 整數(shù)型, "User32.dll", "SetWindowsHookExA", 公開, HHOOK WINAPI SetWindowsHookEx .參數(shù) idHook, , , _In_ int idHook, .參數(shù) lpfn, , , _In_ HOOKPROC lpfn, .參數(shù) hMod, , , _In_ HINSTANCE hMod, .參數(shù) dwThreadId, , , _In_ DWORD dwThreadId .DLL命令 GetCurrentThreadId, 整數(shù)型, "kernel32.dll", "GetCurrentThreadId", 公開, 取當前線程ID .DLL命令 CallNextHookEx, 整數(shù)型, "User32.dll", "CallNextHookEx", 公開, LRESULT WINAPI CallNextHookEx .參數(shù) hhk, 整數(shù)型, , _In_opt_ HHOOK hhk, .參數(shù) nCode, 整數(shù)型, , _In_ int nCode, .參數(shù) wParam, 整數(shù)型, , _In_ WPARAM wParam, .參數(shù) lParam, 整數(shù)型, , _In_ LPARAM lParam .DLL命令 GetForegroundWindow, 整數(shù)型, "User32.dll", "GetForegroundWindow", 公開, HWND WINAPI GetForegroundWindow .DLL命令 UnhookWindowsHookEx, 邏輯型, "User32.dll", "UnhookWindowsHookEx", 公開, BOOL WINAPI UnhookWindowsHookEx .參數(shù) hhk, , , _In_ HHOOK hhk
常量數(shù)據(jù)表
.版本 2 .常量 GWL_WNDPROC, "-4" .常量 PAGE_EXECUTE_READWRITE, "64" .常量 WM_NOTIFY, "78" .常量 WH_CBT, "5" .常量 HCBT_ACTIVATE, "5"
全局變量表
.版本 2 .全局變量 APIHook, APIHOOK類
APIHOOK獲取信息框內容
.版本 2 .程序集 APIHOOK類 .程序集變量 pFunAddress, 整數(shù)型 .程序集變量 OldProtect, 整數(shù)型 .程序集變量 NewData, 字節(jié)集 .程序集變量 OldData, 字節(jié)集 .程序集變量 HookInfo, 文本型 .子程序 _初始化, , , 當基于本類的對象被創(chuàng)建后,此方法會被自動調用 .子程序 _銷毀, , , 當基于本類的對象被銷毀前,此方法會被自動調用 .子程序 InstallApiHook, 邏輯型, 公開 .參數(shù) lpLibFileName, 文本型 .參數(shù) lpProcName, 文本型 .參數(shù) lpfn, 整數(shù)型 pFunAddress = GetProcAddress (GetModuleHandleA (lpLibFileName), lpProcName) ' 獲取API函數(shù)地址 .如果真 (pFunAddress = 0) 返回 (假) .如果真結束 VirtualProtect (pFunAddress, 8, #PAGE_EXECUTE_READWRITE, OldProtect) ' 把內存塊設置為可讀寫 NewData = { 184 } + 到字節(jié)集 (lpfn) + { 255, 224 } ' 生成新機器碼數(shù)據(jù) OldData = 指針到字節(jié)集 (pFunAddress, 8) ' 保存舊機器碼數(shù)據(jù) HookInfo = lpLibFileName + “|” + lpProcName 返回 (真) .子程序 BeginHook, , 公開 .如果真 (pFunAddress ≠ 0) 寫到內存 (NewData, pFunAddress, 8) .如果真結束 .子程序 StopHook, , 公開 .如果真 (pFunAddress ≠ 0) 寫到內存 (OldData, pFunAddress, 8) .如果真結束 .子程序 UninstallApiHook, , 公開 .局部變量 temp, 整數(shù)型 .如果真 (pFunAddress ≠ 0) 寫到內存 (OldData, pFunAddress, 8) VirtualProtect (pFunAddress, 8, OldProtect, temp) .如果真結束 連續(xù)賦值 (0, pFunAddress, OldProtect) 連續(xù)賦值 ({ }, NewData, OldData) 連續(xù)賦值 (“”, HookInfo) .子程序 GetApiHookInfo, 文本型, 公開 返回 (HookInfo)
啟動窗口程序集
.版本 2 .程序集 窗口程序集_啟動窗口 .程序集變量 hhk, 整數(shù)型 .子程序 __啟動窗口_創(chuàng)建完畢 APIHook.InstallApiHook (“user32.dll”, “MessageBoxA”, 到數(shù)值 (&MyMessageBox)) ' 安裝APIHOOK APIHook.BeginHook () 信息框 (“你好”, 0, ) 信息框 (“你好”, 0, ) 結束 () .子程序 __啟動窗口_將被銷毀 APIHook.UninstallApiHook () .子程序 Proc, 整數(shù)型 .參數(shù) nCode, 整數(shù)型 .參數(shù) wParam, 整數(shù)型 .參數(shù) lParam, 整數(shù)型 .判斷開始 (nCode = #HCBT_ACTIVATE) 輸出調試文本 (“信息框的句柄:” + 到文本 (wParam)) UnhookWindowsHookEx (hhk) .默認 .判斷結束 CallNextHookEx (hhk, nCode, wParam, lParam) 返回 (0) .子程序 MyMessageBox, 整數(shù)型 .參數(shù) hwnd, 整數(shù)型 .參數(shù) lpText, 文本型 .參數(shù) lpCaption, 文本型 .參數(shù) wtype, 整數(shù)型 .局部變量 ret, 整數(shù)型 輸出調試文本 (“=============”) 輸出調試文本 (hwnd, lpText, lpCaption, wtype) 輸出調試文本 (“=============”) APIHook.StopHook () hhk = SetWindowsHookExA (#WH_CBT, 到整數(shù) (&Proc), 0, GetCurrentThreadId ()) ret = MessageBoxA (hwnd, lpText, lpCaption, wtype) APIHook.BeginHook () 返回 (ret)
運行結果:
關于怎么在易語言中使用HOOK注入獲取內容就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經查實,將立刻刪除涉嫌侵權內容。