64 位 Hook

[Win32] API Hook(2)在64位系统上的实现 本博文由优快云博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:http://blog.youkuaiyun.com/zuishikonghuan/article/details/47979603 本文是对上一篇的补充。关于apihook的原理,效果动画,代码分析,实现细节和32位hook的源码请见上一篇:[Win32] API Hook(1)在32 阅读详情

具体代码请参考

改动的代码

_asm
    {
        lea rdi, OldCode        
        mov rsi, oldAddr 
        cld   
        movsd 
        movsb 
    }
    NewCode[0] = 0xe9;
    _asm
    {
        lea rax, Core
        mov rbx, oldAddr  
        sub rax, rbx             
        sub rax, 5           
        mov qword ptr[NewCode + 1], rax//原来四字节换成八字节
    }

因为64位,寄存器变了,所以换了寄存器

这里写图片描述
这里写图片描述
哈哈HooK成功!

vs2015 64 位下是不能识别asm的,要下载Intel C++ Compiler ,我是 17.0

64位Hook测试样本

64位系统 inline api hook之我见       说起Api hook朋友们都不陌生,说白了也就是运用WINDOWS系统钩子,捕获程序对系统API的调用,从面改变API默认的处理方式,以达到某种特殊的目的。而inline api hook在32位系统中通常是先保存API函数入口处的5个字节,然后改变API函数入口处的5个字节为一个JMP xxxx跳转指令,xxxx处是我们自己的处理函数的偏移地址。在我们的处理函数中,进行一系列动作,达到我们的目的后,再把所保存的5个字节还原到API函数入口处,然后进行调用,以实现API函数原有的功能。      阅读详情

相关推荐

64位汇编跳转,64位HOOK

传统JMP 只支持32位的程序, 64位程序的地址有 8个字节 ,直接JMP只支持4个字节,跳转的地址和HOOK地址相减超过4个字节 就会出错了 在64位 可以这样跳, push rax 保存寄存器 mov rax,目标绝对地址 jmp rax pop rax 还原寄存器 很简单,如果你分配的内存地址是64位的话。如: 504BEA0000, 根据我帖子里的回复,你可以这样 方...

qq_36570644的博客 4286

C/C++ x64 Inline Hook 代码封装

接着来研究一下64位程序的Hook,64位与32位系统之间无论从寻址方式,还是语法规则都与x32架构有着本质的不同,所以上面的使用技巧只适用于32位程序,注入32位进程使用,下面的内容则是64位下手动完成Hook挂钩的一些操作手法,由于64位编译器无法直接内嵌汇编代码,导致我们只能调用C库函数来实现Hook的中转.简单实现64位Hook去弹窗: 由于64位编译器无法直接内嵌汇编代码,所以在我们需要Hook时只能将跳转机器码以二进制字节方式写死在程序里,如下代码是一段简单的演示案例,主要实现了去弹窗的功能.

m0_46135508的博客 1474

DLL注入与Hook技术在32/64位系统中的应用

在现代软件开发和系统管理中,DLL注入技术是一把双刃剑。它作为一种高级技术手段,主要被用来向一个运行中的进程动态地注入代码或数据。这种技术有着广泛的应用,比如提升软件功能、进行系统监控、或是执行恶意活动。DLL注入通常发生在用户模式下,这也是它区别于直接修改系统内核的系统钩子的一个重要特征。DLL注入技术在游戏开发、安全测试、性能优化等领域有着不可替代的作用。开发者可以利用这一技术为游戏或者应用程序添加额外的模块功能,而安全测试人员则可以通过注入技术来研究软件在特定条件下的行为。

weixin_42577735的博客 973

c++ hook例子_ARM平台linux系统内核HOOK常见问题探讨二

上一次我们针对内核HOOK常见问题讲了只读内存问题以及为了避免操作被打断如何阻塞其它CPU核心,还有ARM64的参数及内存布局等基础问题。在这些问题上,已经能基本满足我们日常做HOOK的需求。本节主要讲述另外几个HOOK相关问题。首先是HOOK的方式。除了上节讲过的系统调用表的HOOK和各种inline HOOK外,这里再介绍几种相对兼容性、稳定性更有保障的做法。最核心、最灵活的当然就是...

weixin_39795325的博客 636

64位Windows驱动开发SSDT HOOK技术实战教程

在现代Windows操作系统中,驱动程序是连接硬件与系统内核的关键桥梁。随着Windows平台的不断演进,其驱动开发模型也经历了从早期的NT式驱动到WDM、再到KMDF与UMDF的抽象化发展。理解这些驱动模型的设计理念、运行机制以及彼此之间的差异,对于从事64位内核开发、安全研究或系统级软件工程的技术人员至关重要。本章将深入剖析Windows驱动生态的核心架构,重点聚焦于三种主流驱动模型——WDM、KMDF和UMDF,并结合实际开发场景,解析其底层逻辑与工程实践。

weixin_35750747的博客 1311

完美支持64&32位InlineHook,C语言,C++类 都有

Windows 64位和32位Inline Hook的例子。包括C语言代码,和封装好的C++类,绝对超值,超简单实用的例子,可以直接运行,用了绝对说好!

C++:提高篇: 栈-寄存器和函数状态:windows X86-64寄存器介绍

C++:提高篇: 栈-寄存器和函数状态:windows X86-64寄存器介绍

C++ JAVA的专栏 5426

分享一个大神的hook示例,理论上能Hook任意地址和获取寄存器数据

分享一个大神的hook示例,理论上能Hook任意地址和获取寄存器数据

Verilog HDL入门第一章

Verilog HDL 第一章 简介 文章目录Verilog HDL第一章 简介什么是Verilog HDL历史主要特点 什么是Verilog HDL Verilog HDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。 Verilog HDL 语言具有下述描述能力: 设计的行为特性 设计的数据流特性 设计的结构组成 包含响应监控和设计验证方面

EndaFang0420的博客 676

Hook函数任意地址 c++

该实例实现了Hook函数任意地址的功能,并可以获取CPU寄存器的内容。

《活用数据——驱动业务的数分析实战》读书笔记 (实战篇)

第四章、战略分析案例解析         如思维篇所述,分析思路是从研究目的到研究内容的分解过程。因此需要考虑如下两个问题: 战略分析的研究目的 战略分析的研究内容 1、研究目的:战略选择         战略分析的研究目的是帮助企业进行战略选择,选择适合自己的目标市场。需要回答以下两个问题: 市场吸引力:这个市...

Xiaozhu的博客 3698

64位hook函数

/可以在hde32_disasm或hde64_disasm来断点查询长度。// 注意:更多功能请使用DetourHook,minhook。//备份源地址的地址数据,不是每个函数地址长度都是7或5,//为x64下创建一个在2GB范围内的上下标地址。

2301_80744428的博客 632

图数据挖掘 ECC K-core core number truss number clique

K-core:什么叫k-core,给定一个正整数k(k>=0),k-core是一个G的最大子图(也就是说k-core是一个图的限制),将这个子图定义为Hk,对于Hk中的每个顶点v,他的度数都是大于等于k的。 k-core是内嵌的,如下图所示,集合{ABCD}是H3,也就是3-core的子图。而集合{ABCDE}是H2,也就是2-core的子图,集合{ABCDEGF}是H1,也就是1-core的子图,而从集合的角度来讲H3<H2<H1。 core number:什么叫kcor

weixin_45193103的博客 1684

Delphi下如何实现32位和64位都能用的Inline Hook

Hook在计算机术语中无论是直译为“钩子”,还是意译为“挂接”,均指的是一种对于现有机制的拦截。这个拦截实现后,会在运行期拦住现有某个流程,拐进自己的流程,自己做完特定事儿后,再按需要决定是否走回原流程。

passion的专栏 1126

K2P padavan固件下宽带与IPTV融合

举例说下,假如你的IPTV是拨号的,IPTV端口直接连到笔记本电脑的网口,IP是自动分配的情况下,在VLC里面是可以直接播放“rtp://239.XXX.XXX.XXX:XXXX”的,即使IPTV是DHCP模式,按道理也是可以播放的。家里很少看电视,基本上就是看看春晚,然后平时老人在家没事看看,所以就把广电的机顶盒停掉了,换了一个N1的盒子刷了CoreELEC系统,既可以通过m3u8文件看网络电视,也可以看本地的多媒体,很方便,完全满足了自己的需求。在上图的第三步中,端口设置成大于1024的端口即可。

aplsc的专栏 63万+

用Excel或WPS做两独立样本的T检验

一般情况下收集数据时常用的是Excel或者WPS,但统计时却用SPSS等软件进行统计学分析,经常很多人找不到SPSS的安装包,或者苦于正版激活或忘记教程,其实Excel或WPS自带函数就足够了,均数、标准差以及统计检验都是一个函数而已。解释:先做F检验,如果F>0.05就做T检验,Ttset里的数据为两组的数据的比较,结果如下。A组的均数计算 =AVERAGE(B2:B6)A组的标准差计算 =STDEV(B2:B6)B组的标准差计算=STDEV(B7:B19)分组 数值 A组均数 A组标准差 p值。

Mrrunsen的博客 6751

兼容Android 32位64位的inject和hook

完整代码见github 随手给个star和fork呗 注入系列笔记: ELF格式分析 so文件加载流程 Inject和Hook 使用 准备: - 一台root的android设备 - ndk编译环境 分别开2个终端来查看日志: - adb logcat | grep INJECT - adb logcat | grep ELFHooker 如果其他日志太多了可以用 a

Lewis的博客 1359

Python爬虫经典案例第67篇:社交媒体平台爬取:Twitter数据采集实战

Twitter(现更名为X)是全球最具影响力的社交媒体平台之一,拥有超过3.3亿月度活跃用户。作为一个实时信息传播平台,Twitter上的数据涵盖了新闻、政治、娱乐、科技等各个领域,具有极高的研究价值:本文将深入探讨Twitter数据采集的技术方案,包括官方API调用、网页爬取和浏览器自动化三种方式。Twitter采用现代化的微服务架构,主要特点包括:Twitter作为全球最大的社交媒体平台,拥有完善的反爬机制:在开始爬取前,需要明确合法的数据采集方式:重要提示:未经授权爬取Twitter数据可能违反服务条

2201_76125261的博客 658

windows 32位以及64位的inline hook

对于系统API的hook,windows 系统为了达成hotpatch的目的,每个API函数的最前5个字节均为: 8bff   move edi,edi 55     push ebp 8bec  mov ebp,esp 其中move edi,edi这条指令是为了专门用于hotpatch而插入的,微软通过将这条指令跳转到一个short jmp,然后一个long jmp可以跳转到任意4G范围

linuxheik的专栏 1719

AUTOSAR系统服务篇 - BswM的使用

本文档是对4.0.3版及更高版本的AUTOSAR模式管理应用的介绍。其主要目的是为AUTOSAR的用户和开发人员提供基于示例的AUTOSAR模式管理不同方面的详细概述,这些示例在文中进行了解释。本文中的代码清单共同构成了示例ECU的配置。第2章解释了基础的模式管理概念,例如一般的模式、如何实现模式切换、模式管理者和模式用户的角色等。其次介绍了应用模式管理和基础软件模式管理的依赖关系,两者密切相关。基础软件模式管理器是AUTOSAR R4.0中的中央模式管理模块。它具有很高的可配置性。

IOT2017的博客 846

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

5.13华为OD机试真题 新系统 - 社交网络相同爱好好友查询 (Java/Py/C/C++/Js/Go)

算法大师! 154

64位inline api hook

说起Api hook朋友们都不陌生,说白了也就是运用WINDOWS系统钩子,捕获程序对系统API的调用,从面改变API默认的处理方式,以达到某种特殊的目的。而inline api hook在32位系统中通常是先保存API函数入口处的5个字节,然后改变API函数入口处的5个字节为一个JMP xx xx xx xx跳转指令,xx xx xx xx处是我们自己的处理函数的偏移地址。在我们的处理函数中,进

Reverser的专栏 1134

Agent Harness Engineering: AI Agent 执行管控与安全沙箱 原理与最佳实践

我们正站在计算范式转移的历史节点上。2024-2026 年间,AI 系统从被动的内容生成器(Generative AI)演变为主动的行动执行者(Agentic AI)。这一转变的根本特征是:根据 2026 年初的行业数据:然而,能力的提升伴随着风险的指数级增长。2024-2026 年间发生的多起标志性安全事件揭示了 Agent 系统的脆弱性:案例 1:Slack AI 数据外泄事件(2024 年 8 月)案例 2:制造业供应链攻击(2026 年 Q3)案例 3:Arup 深度诈骗案(2026 年 9 月)这

AI天才研究院 1667

64位hook自定义函数

/注意:上面代码为了方便展示其中原理,使用了破坏寄存器的方法,实际工作中请使用标准的e9或ff25来实现.// 注意:更多功能请使用DetourHook,minhook。// 对原跳转地址进行恢复,或者对原跳转地址进行从新偏移计算。//为x64下创建一个在2GB范围内的上下标地址。// 公式:原地址 + 偏移地址 + 5。

2301_80744428的博客 427

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

【Python微信机器人】第六七篇: 封装32位和64位Python hook框架实战打印微信日志

context这个结构体获取的就是当执行到这个地址时的寄存器的值,这个和你用x32dbg看到的寄存器的值是一样的。值的类型都定义成DWORD,如果寄存器是类型是其他类型,比如字符串或结构体,你需要在Python里做相应的转换,可以参考下面Hook日志的代码。上上篇文章说的以后只更新32位版本这句话收回,以后会同时更新32位和64位的最新版本,已经可以在Python中使用Detours来hook 64位版本。回调函数的参数跟被Hook函数的参数必须一样,如果参数很多,你也可以用。

Qwertyuiop2016的博客 1828

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

C语言进程隐藏NTOpenprocess,64位下Hook NtOpenProcess的实现进程保护 + 源码 (升级篇 )...

【PS: 如果在64位系统下,出现调用测试demo,返回false的情况下,请修改Hook Dll的代码】glhHook = SetWindowsHookEx(WH_SHELL,ShellHookProc, 0 , 0);//改成跟X86下一样的glhHook = SetWindowsHookEx(WH_SHELL,ShellHookProc,glhInstance, 0);2013.09.11...

weixin_32893479的博客 1120

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

上一篇: HooK Dll简单例子
下一篇: 禁止弹MessageBoxA.Dll
「已注销」
博客等级 码龄14年 71粉丝 92原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值