APIHOOK加强版,多线程下不漏HOOK

易语言 2020-07-23 12:09:21

APIHOOK加强版,多线程下不漏HOOK

.判断开始 (单选框1.选中)
' 需要用到 特殊功能支持库 的 调用子程序() 命令
输出调试文本 (“使用” + #左引号 + “调用子程序” + #右引号)
调用子程序 (APIHOOK_MessageBoxA.取原始数据地址 (), , 返回值, hWnd, “哈哈~~被截获了!”, “hook”, uType)
.判断 (单选框2.选中)
' 用 CallWindowProcA 呼叫函数地址,以下使用了 云外归鸟 的动态调用代码
输出调试文本 (“使用” + #左引号 + “CallWindowProcA” + #右引号)
动态调用代码 = { 85, 139, 236, 86, 139, 117, 16, 141, 78, 255, 133, 201, 124, 21, 139, 69, 12, 141, 4, 136, 65, 139, 16, 137, 85, 16, 255, 117, 16, 131, 232, 4, 73, 117, 242, 255, 85, 8, 137, 69, 12, 139, 69, 20, 133, 192, 116, 13, 141, 4, 181, 0, 0, 0, 0, 137, 69, 16, 3, 101, 16, 139, 69, 12, 94, 93, 194, 16, 0 }
加入成员 (参数, hWnd)
加入成员 (参数, 取文本数据地址 (“哈哈~~被截获了!”)) ' 消息框内容
加入成员 (参数, 取文本数据地址 (“hook”)) ' 消息框标题
加入成员 (参数, uType)
参数数目 = 取数组成员数 (参数)
返回值 = CallWindowProcA (动态调用代码, APIHOOK_MessageBoxA.取原始数据地址 (), 参数, 参数数目, 假)
.默认