IAT HOOK、EAT HOOK和Inline Hook

Ollydbg中API钩子检测的实用操作指南 深入解析如何在ollydbg中识别和分析API钩子,通过ollydbg的调试功能精准定位异常调用,帮助逆向工程师快速发现隐藏的挂钩行为,提升漏洞分析与恶意代码追踪效率。 阅读详情

导入表hook原理是修改导入表中某函数的地址到自己的补丁函数,具体步骤如下:

1. 通过GetProcAddress获取目标函数地址

2. 在程序内存中找到所在dll的导入表

3. 查找目标函数地址保存的位置

4. 把地址修改为自己补丁函数


导出表hook原理跟导入表相同,步骤也差别不大

但是二者都存在一个问题,就是当目标函数是一个递归函数时,只有第一次能hook成功,函数内部调用自身时不会执行补丁代码,因此最好的方法是Inline hook,如微软的detour库采用的方法,修改函数开头几个字节的机器码,使执行流程一进入函数就调到补丁代码,执行完补丁代码后在另外一个地方执行函数原来几个字节的代码(此处并不还原开头几个字节机器码),然后然后跳转到原函数patch后面的指令继续执行,永久的改变了函数内容。因为微软detour库有自带反汇编引擎,因此无需担心会破坏接下来执行的完整性,如果自己手动实现的话,需要先观察函数开头的执行,做到指令对齐,以免破坏patch后指令的完整导致执行崩溃。

企业微信HOOK开发实战:从零搭建消息监控系统(附开源代码) 本文详细介绍了企业微信HOOK开发的全流程,从基础原理到实战编码,教你如何从零搭建消息监控系统。涵盖HOOK技术基础、开发环境准备、关键函数定位、消息存储分析等核心模块,并提供开源代码示例,助力开发者快速掌握企业微信消息监控技术。 阅读详情

相关推荐

C# NetCut / Only

本类库实际上是一种很失败的东西,至少在我看来是足够失败 当时也不知道是头发热 还是人未醒,居然会去拦截WinInet,看来几年前学习的WebProxy与HTTP是白学了, 我想应该是 Retrieve-HttpOnly-Session-Cookie-in-WebBrowser 这篇帖子中的一些话 误导了我把,本类库的源代码实际上只是提供给大家学习API-HOOK的一个小小应用 不过AP

4387

4.4 EAT Hook 挂钩技术

EAT(Export Address Table)用于修改动态链接库(DLL)中导出函数的调用。与`IAT Hook`不同,EAT Hook是在DLL自身中进行钩子操作,而不是修改应用程序的导入表。它的原理是通过修改DLL的导出函数地址,将原本要导出的函数指向另一个自定义的函数。这样,在应用程序调用DLL的导出函数时,实际上会执行自定义的函数。与IAT不同是EAT存放的不是函数地址,而是导出函数地址的偏移,使用时需要加上指定Dll的模块基地址,当Hook挂钩之后,所有试图通过导出表获取函数地址的行为都会受到

微软技术分享 5526

PC微信自动化:vxhook2.9核心原理、HTTP API通信与防封实践

Hook(钩子)技术是软件逆向与自动化领域的一项关键技术,其核心原理是通过拦截和修改目标程序在内存中的函数调用流程,实现对程序行为的监控与定制。这项技术为开发者提供了在无需源码的情况下,深入程序内部逻辑的能力,具有极高的技术价值。在自动化办公、社群管理、数据监控等应用场景中,Hook技术常被用于构建高效的自动化工具。本文聚焦于PC微信自动化这一具体实践,深入探讨了如何利用vxhook2.9这一Hook框架,通过HTTP API通信中间件实现进程隔离与稳定交互,并分享了关键的防封号安全建议与常见问题排查清单,

culiao2169的博客 514

导出表钩子之EAT HOOK解析

EAT HOOK与IAT HOOK原理是一样的,都是通过修改PE来达到HOOK的目的。只是EAT HOOK是从来源入手而IAT HOOK则是从自身入手。 讲一下大体思路。 1. 通过IMAGE_OPTIONAL_HEADER.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT].VirtualAddress找到导出表的地址(注意这里是RVA要加上ImageBa...

輚至消亡 3512

IAT 内核注入

注册模块加载回调,在进程加载模块时,修改iat表,加入需要注入的Dll,支持x86 (Winxp Win7),缺点,对于托管代码的进程,例如.net形式程序,不起作用,但一般win32程序没有任何问题

wsl + vscode 离线配置 ERROR: Faild to download https://update.code.visualstudio.com

很多情况下是没有现成的VS Code Server程序的,需要手动下载。记住上面的Commit ID,可以通过下面的链接下载 vscode-server-linux-x64.tar.gz。然后将vscode-server-linux-x64.tar.gz上传在服务器上的$HOME/.vscode-server/bin文件夹中,解压。在wsl中下载不了 vscode 的核心。运行下面两行命令,建立空的$HOME/.vscode-server/bin文件夹。重新运行 wsl与vs的链接即可。

点云算法工程师 3792

windows 导入表/导出表 hook

【代码】windows iat hook。

pureman_mega的博客 654

尚硅谷Redis 7学习笔记

尚硅谷Redis 7学习笔记

不更了,主打一个陪伴 2万+

【原创】导出表钩子------EAT HOOK

看了combojiang大侠的rootkit专题,发现少了一个导出表钩子,既EAT;HOOK,刚好前几天自己搞了个IAT HOOK,然后就把其中的代码稍做修改,于是有这篇文章, 偶学的东西不久,很多东西还不知道,请多指教,呵呵 导出表钩子比导入表钩子感觉好用多,先说下原理吧,函数导入的函数的地址是再运行时候才确定的,比如我们的一个驱动程序导入了PsGetCurrentProcessId

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 4520

避坑指南:ESP32S3驱动INMP441麦克风时的常见硬件冲突与解决方案

本文详细解析了ESP32S3驱动INMP441麦克风时常见的硬件冲突问题,包括GPIO资源冲突、电源噪声、I2S时钟同步等,并提供了实用的解决方案和优化策略。通过实测数据和代码示例,帮助开发者快速排查和解决音频设备开发中的疑难问题,提升系统稳定性和音频质量。

embedding5hiker的博客 944

车载机器人终极解决方案:从功能叠加到生态融合的颠覆性变革

本文提出一种融合智能汽车与家居技术的车载机器人架构。其创新点包括:1)基于多模态传感器的拟人化硬件设计,实现声源定位误差<5°、体温检测精度±0.3℃;2)跨模态情感计算引擎,综合面部表情、心率等数据构建三维情绪模型;3)协议自适应中间件,支持小米、华为等多品牌智能家居设备即插即用;4)环境自适应舵机控制,-30℃环境下扭矩保持率达92.5%。测试数据显示,该方案使交互步骤减少60%,用户满意度提升58%,日均使用时长增加2.3倍,为"人-车-家"生态融合提供了可行技术路径。

qq_42671193的博客 1130

4.3 IAT Hook 挂钩技术

IAT(Import Address Table)Hook是一种针对Windows操作系统的API Hooking 技术,用于修改应用程序对动态链接库(DLL)中导入函数的调用。IAT是一个数据结构,其中包含了应用程序在运行时使用的导入函数的地址。 IAT Hook的原理是通过修改IAT中的函数指针,将原本要调用的函数指向另一个自定义的函数。这样,在应用程序执行时,当调用被钩子的函数时,实际上会执行自定义的函数。通过IAT Hook,我们可以拦截和修改应用程序的函数调用,以实现一些自定义的行为,比如记录日

微软技术分享 1万+

Windows 11 WSL2环境下OpenClaw部署的兼容性问题分析与解决方案研究

本文研究了OpenClaw在Windows 11 WSL2环境下的部署方案。WSL2通过无缝集成Linux与Windows系统,为OpenClaw提供了良好的运行环境,支持GPU加速和跨平台开发。文章详细分析了硬件配置要求(推荐8核CPU/16GB内存/NVMe SSD)、系统选择(Windows 11 Pro+Ubuntu 22.04)以及部署步骤,包括WSL2启用、Linux发行版安装、Python/Node.js/Redis等依赖配置。通过优化.wslconfig文件参数(如内存分

博客 2284

Windows安全测试必备:用Rust实现四种API Hook技术对比(IAT/EAT/Inline/VMT)

本文深入探讨了在Windows安全测试与逆向工程中,使用Rust语言实现四种核心API Hook技术(IAT/EAT/Inline/VMT)的实战方法与选型指南。通过对比分析各技术的原理、Rust实现细节及适用场景,旨在帮助开发者构建更安全、稳定的Hook工具,并重点介绍了如何利用Rust的内存安全特性规避传统C/C++实现中的常见风险。

svm4gardener的博客 153

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

k8291121的博客 2274

【ComfyUI】Wan2.2 动态服饰描述驱动换装图生视频

本文介绍了一个基于ComfyUI的Wan2.2动态服饰描述驱动换装工作流,能通过自然语言描述实现人物图像的自动换装并生成动态视频。该工作流结合多模态输入、语言模型驱动生成和视频合成技术,包含图像加载、文本解析(使用Qwen2.5大模型)、潜变量编码、视频帧采样与插值(RIFE VFI)等核心模块,最终通过VHS_VideoCombine输出流畅换装视频。整个流程无需手动干预,支持从"哥特风格"到"未来装甲"等多样化服饰风格的精确转换,通过文本节点控制50-100

Mr数据杨 2597

整理几种hook方法

对于IAT表中的函数的调用,都是间接调用(汇编代码是ff 0x12345678,其中0x12345678是IAT表中某一项的地址,0x12345678指向的地址空间中存放着真正的函数地址)。我们可以通过将IAT表中特定的函数地址替换成我们自己的函数,来实现对指定函数的hook。注意:这种方法只对隐式链接的dll有效,对于动态加载的dll不生效。inline hook是通过修改目标函数的部分二进制代码为jmp或者call指令,是其执行流程跳转到我们自己的逻辑中,执行完我们自己的逻辑后,再跳转回正常的逻辑。

LY425109的博客 483

LVGL colorwheel组件教程一(调色板)

【代码】LVGL colorwheel组件教程一(调色板)

摸鱼专家 451

HOOK其他进程API和全局HOOK-API

HOOK是一种WINDOWS下存在很久的技术了。  HOOK一般分两种1。HOOK MESSAGE 2。HOOK API 本问讨论的是HOOK API。(如果你是HOOK高手就不要看了)  在最初学HOOK-API的时候通常都是通过覆盖地址和修改IAT的方法。 通过这两种技术,我们基本都可以实现对本进程的API函数进行HOOK了。但是在高兴之余会有点遗憾, 怎么才能HOOK其他进程的A

zqf_office的专栏 2218

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

APIhookDLL源码(系统钩子)

using System; using System.Runtime.InteropServices; using System.Reflection; using System.Threading; using System.Windows.Forms; using System.Diagnostics; using System.Collections.Generic;

492

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

APIHook(API拦截技术)-前言

什么是APIHook(API拦截)? APIHook是一种技术,其实本身它不是很复杂,就是用自己的一个函数来替换原来的系统API,让程序在不修改代码的情况下按照自己的想法去执行。 但是要实现这个过程还是需要一些编程基础的,比如什么是API,什么是函数,什么是DLL,之类要比较清楚。(APIHook里的hook,是钩子的意 思,相当于中文的拦截,在调用原系统API之前执行了你自定义的代码。)

1456

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Egg 框架定制开发指南:基于 Loader 与多进程模型构建企业级框架

本文讲解 Egg 提供的「框架定制」能力:当团队需要统一技术选型、默认配置、部署方案与代码风格时,可以基于 Egg 封装一层或多层上层框架,将通用能力下沉到框架中,应用只关注自身业务代码。读完本文,你将掌握框架的 API 约定、`customEggPaths()` 与 `customEggLoader()` 的继承原理、Agent/Application 双实例扩展方式,以及基于 `@eggjs/

gitblog_00730的博客 455

从了解 Hook 到全方面会用 Hook

文章摘要: 本文系统梳理了从Ring3到Ring-2的Hook技术演进,揭示了不同权限层级下的实现原理、检测与绕过策略。 用户态Hook(Ring3):涵盖IAT/EAT Hook、Inline Hook、VTable Hook等,通过修改函数指针或指令劫持API调用,易被内存比对或CRC校验检测。 内核态Hook(Ring0):传统手段如SSDT/IDT Hook受PatchGuard制约,高级技术如PTE Hook、回调机制(Minifilter/ObRegisterCallbacks)更隐蔽,依赖内核

csc4188的博客 304

[转]API Hook完全手册

1 基本原理 API Hook是什么我就不多说了,直接进入正题。API Hook技术主要有下面的技术难点:     1.     如何将自己的的代码Inject到其他进程   2.     如何Hook到API    1.1 代码的Injection   常用的方法有:   1.     使用注册表HKLM\Software\Microsoft\Windows

274

什么是Hook技术?

简单来说,它就像在程序的某个关键路径上设置一个“钩子”,当程序执行到那个点时,钩子会先触发,让开发者可以插入自己的代码,然后再决定是否继续原来的流程。Hook技术的核心是改变程序的执行流程。它通过修改函数入口、替换调用地址或使用事件监听等方式,让程序在执行到目标函数时,先跳转到开发者提供的自定义函数(钩子函数)中执行。将目标函数的前几个字节(或整段)修改为一个跳转指令(JMP),跳转到自己的函数。在可执行文件的导入地址表(IAT)或导出地址表(EAT)中,将目标函数的指针替换为自己的函数地址。

乾坤我做主的博客 377

FSD's Inline Hook & EAT modify check Completed

   瞎折腾个半天,太菜, 之前也没怎么搞过检测程序,于是匆匆逆了下几个无壳的ARK,结合R3和R0,加上自己的一些总结,胡弄了个DEMO. 目前仅仅是遍历检测ntoskrnl.exe EAT(没加SSDT), 对于fastfat.sys/ntfs.sys/disk.sys等模块还没有检测,不过弄起来也很快, 支持对未导出函数 、Push+ret 等的HOOK检测,不过很脆弱,后期继续加强检

1325
上一篇: 宽字符和窄字符之间的转换
下一篇: Windows 窗口层次关系
CoderAldrich
博客等级 码龄12年 431粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值