易語言HOOKAPI鉤子操作代碼實例
更新時間:2018年11月20日 16:46:46 作者:易語言源碼教程
今天小編就為大家分享一篇關(guān)于易語言HOOKAPI鉤子操作代碼實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
DLL代碼
.版本 2 .DLL命令 修改虛擬保護(hù), 整數(shù)型, "kernel32", "VirtualProtect", , 修改虛擬保護(hù) .參數(shù) lpAddress, 整數(shù)型 .參數(shù) dwSize, 整數(shù)型 .參數(shù) flNewProtect, 整數(shù)型 .參數(shù) lpflOldProtect, 整數(shù)型, 傳址 .DLL命令 取函數(shù)地址, 整數(shù)型, "kernel32", "GetProcAddress", , 返回函數(shù)地址 .參數(shù) 模塊句柄, 整數(shù)型 .參數(shù) 函數(shù)名, 文本型 .DLL命令 取模塊句柄, 整數(shù)型, "kernel32", "GetModuleHandleA", , 獲取一個應(yīng)用程序或動態(tài)鏈接庫的模塊句柄 如執(zhí)行成功成功,則返回模塊句柄。零表示失敗。會設(shè)置GetLastError .參數(shù) 模塊名, 文本型, , 指定模塊名,這通常是與模塊的文件名相同的一個名字。例如,NOTEPAD.EXE程序的模塊文件名就叫作NOTEPAD; .DLL命令 建立消息框, 整數(shù)型, "user32", "MessageBoxA", , 建立消息框窗體 .參數(shù) 窗口句柄, 整數(shù)型 .參數(shù) lpText, 文本型 .參數(shù) lpCaption, 文本型 .參數(shù) wType, 整數(shù)型
自定義數(shù)據(jù)類型
.版本 2 .數(shù)據(jù)類型 MEMORYSTATUS .成員 dwLength, 整數(shù)型 .成員 dwMemoryLoad, 整數(shù)型 .成員 dwTotalPhys, 整數(shù)型 .成員 dwAvailPhys, 整數(shù)型 .成員 dwTotalPageFile, 整數(shù)型 .成員 dwAvailPageFile, 整數(shù)型 .成員 dwTotalVirtual, 整數(shù)型 .成員 dwAvailVirtual, 整數(shù)型
HOOKAPI鉤子操作代碼
.版本 2
.程序集 窗口程序集1
.程序集變量 鉤子地址, 整數(shù)型
.程序集變量 原始數(shù)據(jù), 字節(jié)集
.程序集變量 OldProtect, 整數(shù)型
.子程序 _按鈕3_被單擊
信息框 (“這是一個測試本地HOOK”, 0, “如果掛鉤了,本文本就會變化!”)
.子程序 _按鈕1_被單擊
.局部變量 值, 字節(jié)集
鉤子地址 = 取函數(shù)地址 (取模塊句柄 (“User32.dll”), “MessageBoxA”)
.如果真 (鉤子地址 = 0)
信息框 (“無法獲取函數(shù)地址!!!”, 0, )
返回 ()
.如果真結(jié)束
修改虛擬保護(hù) (鉤子地址, 8, 64, OldProtect)
原始數(shù)據(jù) = 指針到字節(jié)集 (鉤子地址, 8)
值 = { 184 }
寫到內(nèi)存 (值 + 到字節(jié)集 (&MessageBoxA) + { 255, 224 }, 鉤子地址, 8)
.子程序 MessageBoxA, 整數(shù)型
.參數(shù) hWnd, 整數(shù)型, , 窗口句柄
.參數(shù) lpText, 文本型, , 提示文本
.參數(shù) lpCaption, 文本型, , 信息標(biāo)題
.參數(shù) uType, 整數(shù)型, , 按鈕類型
.局部變量 值, 字節(jié)集
lpText = lpText + “----lpText-----掛鉤成功!”
lpCaption = lpCaption + “-----lpCaption----掛鉤成功!”
.如果真 (取字節(jié)集長度 (原始數(shù)據(jù)) > 0)
寫到內(nèi)存 (原始數(shù)據(jù), 鉤子地址, )
.如果真結(jié)束
建立消息框 (hWnd, lpText, lpCaption, uType)
值 = { 184 }
寫到內(nèi)存 (值 + 到字節(jié)集 (&MessageBoxA) + { 255, 224 }, 鉤子地址, 8)
返回 (0)
.子程序 _按鈕2_被單擊
.如果真 (取字節(jié)集長度 (原始數(shù)據(jù)) > 0)
寫到內(nèi)存 (原始數(shù)據(jù), 鉤子地址, )
.如果真結(jié)束
運行結(jié)果:

總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

