inline hook和IDT hook结合

浅谈hook攻防 攻与防都是相对的,只有掌握细节才能更好的对抗。 基础知识 对于Windows系统,它是建立在事件驱动机制上的,说白了就是整个系统都是通过消息传递实现的。hook(钩子)是一种特殊的消息处理机制,它可以监视系统或者进程中的各种事件消息,截获发往目标窗口的消息并进行处理。所以说,我们可以在系统中自定义钩子,用来监视系统中特定事件的发生,完成特定功能,如屏幕取词,监视日志,截获键盘、鼠标输入等等。 钩子的种类很多,每种钩子可以截获相应的消息,如键盘钩子可以截获键盘消息,外壳钩子可以截取、启动和关闭应用程序的消息 阅读详情
inline hook就是修改一个函数里面的几个字节为一条跳转指令,jmp到自己的函数中执行......

   IDT HOOK就是修改IDT表中正常的异常处理例程的入口函数,为自己的函数地址

   把这俩种思想结合起来就是""""一个字节钩子""""
   请看

    nt!NtOpenFile:
    80579fd0 8bff            mov     edi,edi
    80579fd2 55              push    ebp
    80579fd3 8bec            mov     ebp,esp

    对这个函数进行inline hook没什么问题.....但是我们这里只修改一个字节....所以不是inline hook  

    mov     edi,edi的机器码是8bff...........我们就把8b这个字节改下,就改成0xCD吧.....然后执行
    nt!NtOpenFile时候.....意味着执行了0xCD 0xFF 这个机器码表示的是INT 0XFF...呵呵.....然后就发生了异常......转到处理INT 0XFF的异常处理程序............我们可以IDT HOOK INT 0XFF.........所以就执行我们自己的函数了

     总结:::这种方法可以绕过现在很过工具的inline hook检测...因为我们只修改函数开头的一个字节...本质上说不是inline hook,没有jmp嘛.....

     但是修改了IDT.....随便DUMP一下IDT就知道是否异常拉..........所以检测IDT 还是很重要的...因为这张表对病毒来说还是可以利用的....除了这个""""一个字节钩子"""""还有键盘记录...禁止调试等..........

       接着你们就可以试下了...inline hook和IDT hook的代码看雪就有
   PS::我对HOOK基本是没什么兴趣....检测HOOK倒是有兴趣........所以在检测一个函数是否干净..看来还是要来个对0xCD的判断啊
<寒江独钓>Windows内核安全编程__键盘过滤之内核级Hook(二) Windows内核安全编程__键盘过滤内核级Hook(二) 如果不想让键盘过滤驱动程序或回调函数首先获得按键,则必须比端口驱动更加底层一些。 早期版本的QQ反盗号驱动的原理是这样的:用户要输入密码时(比如把输入焦点移动到了密码框里),就注册一个中断服务来接管键盘中断,比如0x 阅读详情

相关推荐

Windows hook技术

hook即钩子技术,它钩取某个特定的事件,然后在默认的事件处理之外,进行一些自定义的处理,感觉这种行为有点类似插桩。。 消息hook 微软为Windows提供了几个消息hook的API,主要是以下三个: SetWindowsHookEx UnhookWindowsHookEx CallNextHookEx 这种hook技术是对Windows消息进行钩取。众所周知,...

40KO的博客 576

关于Hook的一些理解

我们平时所说的IDT Hook,Dispatch Hook,SSDT Hook...等,是指钩住IDT中断服务例程,Dispatch 例程和SSDT系统服务,这是Hook应用上的分类,也就是拦截它们的调用,要解决的是钩什么的问题。Inline Hook是用来实现Hook的一种方式,它和上面所说的Hook完全不是一个概念,它解决的是怎么钩的问题,一个是应用方式,一个是实现机制,IDT,Dispa

1314

Windows API HOOK技术实战:从Inline Hook原理到DLL注入实现

HOOK(钩子)技术是软件安全与系统编程中的核心概念,它通过在程序执行路径中插入自定义代码,实现对函数调用的监控、拦截与修改。其基本原理是改变CPU的执行流,常见实现方式包括IAT HOOK、Inline Hook等。这项技术的核心价值在于提供了对软件运行时行为的深度洞察与控制能力,广泛应用于安全防护、行为分析、调试监控等场景。本文聚焦于Inline Hook这一底层实现方案,它通过直接修改目标函数内存中的机器指令(如写入JMP跳转),具有通用性强、效果直接的特点。文中结合信息安全工程实践,详细拆解了在Wi

weixin_29324877的博客 316

inline hook和IDT hook结合 收藏

inline hook就是修改一个函数里面的几个字节为一条跳转指令,jmp到自己的函数中执行......    IDT HOOK就是修改IDT表中正常的异常处理例程的入口函数,为自己的函数地址   把这俩种思想结合起来就是""""一个字节钩子""""   请看    nt!NtOpenFile:    80579fd0 8bff            mov     edi,edi  

yaneng的专栏 1168

断门 内联 钩子断门 内联 钩IDT inline hook

IDT内联钩子,可以做某些拦截IDT内联钩子,可以做某些拦截

地平线Matrix-Client实战:3分钟搞定摄像头调试与3D视图配置(附避坑指南)

本文详细介绍了地平线Matrix-Client在摄像头调试与3D视图配置中的实战技巧,包括环境准备、核心功能快速上手、高阶调试与性能优化等。通过3分钟快速配置指南和避坑建议,帮助开发者高效完成智能视觉系统开发,特别适用于自动驾驶和机器人视觉领域。

w7x8y9z的博客 269

简单的IDT HOOK介绍

IDT即中断描述表。当然系统发生中断时(有可能是CPU中断,也有可能是I/O中断等)。系统会通过中断向量查找IDT保存的ISR(中断服务程序)来调用相关的处理例程。IDT Hook就是替换这个ISR。 也许上面的过程你不是很明白。我们具体的了解下过程。 IDT是一个有256个入口的线性表。每个入口大小为8字节。每个入口值我们称为中断向量(0..255)。比如 int 30。30即中断向

liujiayu2的专栏 1898

gesp c++ 五级知识点

gesp c++ 五级知识点

MMD.然大大 2010

InlineHOOK

//inline hook 实际上就是指 通过改变目标函数头部的代码来使改变后的代码跳转至我们自己设置的一个函数里,产生hook. #include &lt;windows.h&gt; #include &lt;stdio.h&gt; //定义一个与MessageBoxA类型一致的函数指针。 typedef int (WINAPI * MessageBox_type)(HWND hWnd, ...

九月飞雪的博客 4617

USB3.0/3.1信号完整性分析仿真

• 1.了解USB3.0通路的互连关系,解读原理图接口电路和PCB的互连电路。对USB布线的通路及阻抗进行检查和分析。 • 2.使用USB3.0实例文件提取互连线的S参数,选择SSRX+,SSRX-,SSTX+,SSTX-,D+,D-组的互连线,使用PowerSI,Clarity,3DFEM等工具提起关键网络的S参数。提取S参数以后需要分析S参数的互连特征,对S参数的结果开展评价。 • 3.使用SYSTEM SI USB3 Compliance工程向导模型,建立USB仿真实例框架,在框架BOLCK中带入S参

小猪配齐电子设计 1万+

STM32+CubeMX实战:5步搞定LWIP HTTP服务器搭建(附常见编译错误解决)

本文详细介绍了基于STM32和CubeMX平台,快速搭建LWIP HTTP服务器的5步实战指南。内容涵盖从项目初始化、LWIP深度配置到解决经典的`HTTPD_FSDATA_FILE`编译错误,并分享了使用VSCode进行高效开发的工作流,旨在帮助嵌入式开发者快速实现网络功能并规避常见陷阱。

weixin_29192365的博客 575

inline hook的实现

思路   对于目标运行中的EXE程序,如notepad.exe,使用inline hook劫持其kernel32.dll中的writefile函数: 找到notepad.exe的进程PID,通过进程PID获取进程模块,通过进程模块获取程序加载的imagebase。 在获得imagebase后,就可以像类似分析PE文件一样,先找PE头,然后到可选头,里面读取data directory的第2个成员...

威化饼的一隅 1388

一篇文章带你搞定数学建模中的线性回归模型(05年长江水质问题示例讲解含代码)

文章目录一、问题分析二、原理讲解三、MATLAB 实现线性回归模型 一、问题分析 根据你的预测分析,如果未来10年内每年都要求长江干流的Ⅳ类和Ⅴ类水的比例控制在20%以内,且没有劣Ⅴ类水,那么每年需要处理多少污水 为了达到题目中所要求的水质,可建立废水排放量与各类水百分比之间的二元线性回归模型,对未来十年的废水排放量进行预测,并确定其与各类水所占百分比之间的函数关系式。通过此关系式,可以计算在这种情况下长江所能承受的最大污水排放量,将这个排放量与预测的排放量进行比较,多出来的部分就是需要每年处理掉的。 二、

南淮北安的博客 2167

驱动编程-idt hook--中断描述符表

整理下之前过驱动保护的学习,idt hook也是一个经常用到的hook思路。 还是要用到inline hook进入到中断函数地址进行jmp //获取idt表地址 //修改int3中断函数 #include #include #ifdef __cplusplus extern "C" { #endif #include //这里包含需要用C方式编译的头文件 #ifdef __cplusplu

健景的博客 1102

Windows环境下Ollama的本地部署方案

本文主要介绍了Windows环境下Ollama的本地部署方案,希望对使用大语言模型的同学们有所帮助。 文章目录 1. 前言 2. Windows环境安装 3. API调用示例代码

herosunly的博客 11万+

Codex CLI 手机号验证失败?5 种接码平台实测对比与绕过地区限制的 3 步操作

揭示 Codex CLI 手机号验证失败的真实原因在于上下文污染而非网络问题,分析其通过 ASN、Accept-Language 和 TLS SNI 三重加权风控的机制,并实测对比 5 种接码平台在 DNS 解析路径、ASN 干净度和复用间隔上的差异,提出剥离浏览器指纹、固化 TLS SNI、隔离

weixin_42627902的博客 741

HOOK技术的简单使用

APIHOOK技术是逆向工程中的核心方法,通过拦截和修改API调用实现程序行为控制。本文系统阐述了APIHOOK的三大技术层次(用户层、内核层、混合层)及其应用场景,包括功能扩展、行为监控和逆向修改。重点解析了IATHOOK、InlineHOOK等实现原理,并推荐了可视化DLL劫持工具。通过注册验证案例演示了从目标分析到DLL配置的完整流程,同时探讨了反HOOK对抗和法律边界问题。该技术能显著提升逆向效率,但需在合法范围内使用。

vbnetcx的博客 3万+

高效与灵活相结合:Verilog编写的跨时钟域循环缓冲控制器解析

循环缓冲区,也被称作循环队列、环形缓冲区,是一种数据结构,其主要特性是使用一个固定大小的缓冲区作为数据的存储空间,这个缓冲区在逻辑上被视作是首尾相接的。虽然Verilog是一种常用的硬件描述语言,被广泛应用在FPGA和ASIC设计中,但是在描述循环缓冲区时,它并没有提供一种直接且灵活的方式来指定循环缓冲区的参数,如字长、缓冲区深度、缓冲区数量等。这给硬件设计带来了一定的不便。同时,该控制器的设计也充分考虑了硬件资源的利用率,通过优化的算法和数据结构,使得在实现高性能的同时,也能够有效地节省硬件资源。

qq_38334677的博客 1222

整理几种hook方法

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

LY425109的博客 483

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Hook学习体会

inline hook 以及 IAT hook

justdoit366的博客 848

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Windows内核实验005 Inline Hook

文章目录准备工作寻找Inline Hook的返回地址编写代码动态变化的返回地址JmpTargetAddrInline Hook基本框架示例代码实战HOOK KiTrap01无需计算偏移的Inline Hook方法示例代码 准备工作 寻找Inline Hook的返回地址 假设我们现在要HOOK KiFastCallEntry这个内核函数,让所有的程序在进入零环之前先跳到我们自己的代码。 但是会出现...

鬼手的博客 1507

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

黑客爱用的 HOOK 技术大揭秘!

网络安全是当今信息时代中非常重要的一环。无论是找工作还是感兴趣(黑客),都是未来职业选择中上上之选,为了保护自己的网络安全,学习网络安全知识是必不可少的。①网络安全学习路线②20份渗透测试电子书③安全攻防357页笔记④50份安全攻防面试指南⑤安全红队渗透工具包⑥网络安全必备书籍⑦100个漏洞实战案例⑧安全大厂内部视频资源⑨历年CTF夺旗赛题解析。

2401_85773741的博客 189

从了解 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

Hook免杀实战: 去除杀软的三环钩子

Inline Hook,又称为超级Hook,是一种强大而又灵活的Hook技术。Inline Hook的主要思想就是直接修改目标函数的代码,通常是在目标函数的开头插入一个跳转指令(jmp)。这个跳转指令会将程序的执行流跳转到我们自定义的函数中。在我们的自定义函数中,我们可以执行任意的代码,然后再跳回目标函数的剩余部分。这样,我们就可以在不改变目标函数原有逻辑的基础上,添加自己的功能许多杀毒软件使用钩子(hook)技术来监视系统的API函数调用,并检测潜在的恶意代码行为。

xf555er的博客 2386
上一篇: rootkit 直接访问硬件之[一]
下一篇: 一种注入进程,获得完全操控的方法之二
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值