易语言HOOKAPI 技巧

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(HookFuncAddr -
返回 (JmpCode)
2. Hook recv 函数等的技巧,这类函数的特点是,某个参数是具有缓冲区性质的,并在函数 调用完成后参数会直接传递数据,所以结合上面的代码,就可以这样了:
ret=Call(jmpcode,para1,para2.etc) 这时候,再对参数 para1 等进行处理,才可以获得数据
RtlMoveMemory_1 (hHook, 到字节集 (FuncAddress), 4) JmpCode = hHook + 4
RtlMoveMemory (JmpCode, FuncAddress, 5) RtlMoveMemory_1 (JmpCode + 5, { 233 } + 到字节 集 (到整数 (FuncAddress + 5 - JmpCode - 10)), 5)
易语言 HookAPI 技巧
易语言 Hook 的代码有很多,Hook 的跳转代码也很简单,不多说,主要注意的有:
1. 可以保存原 API 函数的 API 头到自己申请的地址,Hook 跳转的地址仍然是自己的子程序, 但如果保存了 API 头,就可以 call addr 实现不dress = 0 或 HookFuncAddr = 0) 返回 (0)
.如果真结束
hHook = VirtualAlloc (0, 14, #PAGE_EXECUTE_READWRITE) .如果真 (hHook = 0)
返回 (0) .如果真结束
位或
(#MEM_COMMIT, #MEM_RESERVE),
3. Anti-Hook 的躲避技巧,部分程序会有检测 API 头 5 字节,所以我们只需要在 Hookaddr 上面加上一段偏移(大于 5)即可躲避。更深入地,如果检测的是整个 API 头,我们就 需要深入 API 的调用过程,Hook 核心函数或其他流程来躲避。由于校验所有 API 头 hash 值需要大量的 CPU 占用及时间,所以一般也只会对重点函数进行检测。
VirtualProtect (FuncAddress, 5, #PAGE_EXECUTE_READWRITE, OldProtect) RtlMoveMemory_1 (FuncAddress, { 233 } + 到 字 节 集 ( 到 整 数 FuncAddress - 5)), 5) VirtualProtect (FuncAddress, 5, OldProtect, 0)
相关文档
最新文档