Windows Hook的小研究

Win10 Hook 进程创建的研究 Win7甚至在它之前开始,想要hook进程创建已经不能简单的HookCreateProcessInternalW这一个函数了,因为Vista开始引入了UAC机制。如果一个进程想要通过UAC弹窗创建管理员进程,hook这个进程的CreateProcessInternalW已经不起作用,我在几年前的博文《Win7/VistaHook CreateProcess 的特别之处》(http://blog 阅读详情

今天在看罗云彬的Windows环境下32位汇编语言程序设计时,在408页看到有句话“……所以远程钩子的钩子函数必须位于一个的动态链接库中,而且必须是共享数据段的动态链接库”,前面那段没有问题,我们来研究下后面那一部分。

他书上在后面的那键盘例子里面也许真需要这样的技术,但,这不是一般情况,这里共享数据段只是为了跨进程共享数据来用。

我们先来看看那例子,有几个有趣的地方。

/////////////////////////////////////////////////////////////////////

Main.asm
复制代码
 1 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 2 ; Sample code for < Win32ASM Programming 2nd Edition>
 3 ; by 罗云彬, http://asm.yeah.net
 4 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 5 ; Main.asm
 6 ; 键盘钩子演示程序的主程序,调用 dll 装载键盘钩子
 7 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 8 ; 使用 nmake 或下列命令进行编译和链接:
 9 ; ml /c /coff Main.asm
10 ; rc Main.rc
11 ; Link  /subsystem:windows Main.obj Main.res
12 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
13         .386
14         .model flat, stdcall
15         option casemap :none
16 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
17 ; Include 文件定义
18 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
19 include        windows.inc
20 include        user32.inc
21 includelib    user32.lib
22 include        kernel32.inc
23 includelib    kernel32.lib
24 include        Hookdll.inc
25 includelib    Hookdll.lib
26 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
27 ; Equ 等值定义
28 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
29 ICO_MAIN    equ    1000
30 DLG_MAIN    equ    1000
31 IDC_TEXT    equ    1001
32 WM_HOOK        equ    WM_USER + 100h
33 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
34 ; 代码段
35 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
36 
37         .code
38 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
39 _ProcDlgMain    proc    uses ebx edi esi hWnd,wMsg,wParam,lParam
40         local    @dwTemp
41 
42         mov    eax,wMsg
43 ;********************************************************************
44         .if    eax ==    WM_CLOSE
45             invoke    UninstallHook
46             invoke    EndDialog,hWnd,NULL
47 ;********************************************************************
48         .elseif    eax ==    WM_INITDIALOG
49             invoke    InstallHook,hWnd,WM_HOOK
50             .if    ! eax
51                 invoke    EndDialog,hWnd,NULL
52             .endif
53 ;********************************************************************
54         .elseif    eax ==    WM_HOOK
55             mov    eax,wParam
56             .if    al == 0dh
57                 mov    eax,0a0dh
58             .endif
59             mov    @dwTemp,eax
60             invoke    SendDlgItemMessage,hWnd,IDC_TEXT,EM_REPLACESEL,0,addr @dwTemp
61         .else
62             mov    eax,FALSE
63             ret
64         .endif
65         mov    eax,TRUE
66         ret
67 
68 _ProcDlgMain    endp
69 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
70 start:
71         invoke    GetModuleHandle,NULL
72         invoke    DialogBoxParam,eax,DLG_MAIN,NULL,offset _ProcDlgMain,NULL
73         invoke    ExitProcess,NULL
74 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
75         end    start
复制代码

/////////////////////////////////////////////////////////////////////

Hookdll.asm
复制代码
 1 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 2 ; Sample code for < Win32ASM Programming 2nd Edition>
 3 ; by 罗云彬, http://asm.yeah.net
 4 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 5 ; Hookdll.asm
 6 ; 键盘钩子使用的 dll 程序
 7 ; 用来方置钩子过程
 8 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 9 ; 使用 nmake 或下列命令进行编译和链接:
10 ; ml /c /coff Hookdll.asm
11 ; Link  /subsystem:windows /section:.bss,S /Def:Hookdll.def /Dll Hookdll.obj
12 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
13         .386
14         .model flat, stdcall
15         option casemap :none
16 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
17 ; Include 文件定义
18 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
19 include        windows.inc
20 include        user32.inc
21 includelib    user32.lib
22 include        kernel32.inc
23 includelib    kernel32.lib
24 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
25         .data
26 hInstance    dd    ?
27 
28         .data?
29 hWnd        dd    ?
30 hHook        dd    ?
31 dwMessage    dd    ?
32 szAscii        db    4 dup (?)
33 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
34         .code
35 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
36 ; dll 的入口函数
37 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
38 DllEntry    proc    _hInstance,_dwReason,_dwReserved
39 
40         push    _hInstance
41         pop    hInstance
42         mov    eax,TRUE
43         ret
44 
45 DllEntry    Endp
46 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
47 ; 键盘钩子回调函数
48 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
49 HookProc    proc    _dwCode,_wParam,_lParam
50         local    @szKeyState[256]:byte
51 
52         invoke    CallNextHookEx,hHook,_dwCode,_wParam,_lParam
53         invoke    GetKeyboardState,addr @szKeyState
54         invoke    GetKeyState,VK_SHIFT
55         mov    @szKeyState + VK_SHIFT,al
56         mov    ecx,_lParam
57         shr    ecx,16
58         invoke    ToAscii,_wParam,ecx,addr @szKeyState,addr szAscii,0
59         mov    byte ptr szAscii [eax],0
60         invoke    SendMessage,hWnd,dwMessage,dword ptr szAscii,NULL
61         xor    eax,eax
62         ret
63 
64 HookProc    endp
65 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
66 ; 安装钩子
67 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
68 InstallHook    proc    _hWnd,_dwMessage
69 
70         push    _hWnd
71         pop    hWnd
72         push    _dwMessage
73         pop    dwMessage
74         invoke    SetWindowsHookEx,WH_KEYBOARD,addr HookProc,hInstance,NULL
75         mov    hHook,eax
76         ret
77 
78 InstallHook    endp
79 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
80 ; 卸载钩子
81 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
82 UninstallHook    proc
83 
84         invoke    UnhookWindowsHookEx,hHook
85         ret
86 
87 UninstallHook    endp
88 ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
89         End    DllEntry
复制代码

/////////////////////////////////////////////////////////////////////

MakeFile
复制代码
 1 NAME = Main
 2 DLL = Hookdll
 3 
 4 ML_FLAG = /c /coff
 5 LINK_FLAG = /subsystem:windows
 6 DLL_LINK_FLAG = /subsystem:windows /section:.bss,S
 7 
 8 $(DLL).dll $(NAME).exe:
 9 
10 $(DLL).dll: $(DLL).obj $(DLL).def
11     Link  $(DLL_LINK_FLAG) /Def:$(DLL).def /Dll $(DLL).obj
12 $(NAME).exe: $(NAME).obj $(NAME).res
13     Link  $(LINK_FLAG) $(NAME).obj $(NAME).res
14 
15 .asm.obj:
16     ml $(ML_FLAG) $<
17 .rc.res:
18     rc $<
19 
20 clean:
21     del *.obj
22     del *.res
23     del *.exp
24     del *.lib
复制代码

 

注意一下,在makefile里面,将bss区段设置成为了共享区段, /section:.bss,S  未初始化的数据段(.data?)默认放在这里

 

///////////////////////////////

初初我看到他这源码的时候给我的感觉就是怎么这么乱。乱用,滥用。刚开始时我还一度以为这不能正常工作,后来发现是我误解彬哥的意图了,即使这不是个好的例子,但它还是能正常运行的。


重点在Hookdll.asm里面,他下的钩子是全局,最后一个线程ID如果是0,就是全局钩子。

1 invoke    SetWindowsHookEx,WH_KEYBOARD,addr HookProc,hInstance,NULL

然后,他在回调函数里面调用SendMessage来将它自己定义的一个消息回传到hwnd主窗口,

1 invoke    SendMessage,hWnd,dwMessage,dword ptr szAscii,NULL

不过由于hWnd位于共享数据段内,所以当打开多个这个程序时,暂且叫做A1,A2,SendMessage发送的数据其实是发到之后打开的那个程序A2回调函数里面。虽然在SendMessage里面它的LParam里面的参数是地址,但由于这地址位于共享数据段里面,所以该程序能正常获取数据,但A1就不能再获取数据了。

好,现在又引发了个有趣的问题了,当按一下键,那窗口显示两个字符(开了两个那个程序),这是因为hook了两次,回调函数调用了CallNextHookEx,分别调用了两个Hook回调函数,相当于在hook链表里面加入了两个,由于操作的变量都存放在共享数据段里面,所以,一切的结果都反映在最后打开的那个程序里。

图示为先后打开两个程序.

 


 

这里我们看到了一个知识点,SetWindowsHookEx不是像其他的内核对象一样简单地增加计数,而是真真切切地把Hook函数增加到Hook链表里面,即使那Hook是同一个。调用一次SetWindowsHookEx就增加一个,这我后来测试也成立。


我们来修改一下,让他只hook自己的线程,然后在MakeFile里面把共享数据段给取消掉,验证下是否仍然可以正常运行 

将InstallHook函数里面的SetWIndowsHookEx换成下面两条函数

1 invoke    GetentThreadId
2 invoke    SetWindowsHookEx,WH_KEYBOARD,addr HookProc,hInstance,eax

结果发现,生成的那个程序,暂且叫做A吧,成功执行了,不过也跟预料的情况一样,只记录当前进程的按键,但当打开多个程序时,每个进程都可以记录,却记录的不重复。

跟预料中的一样,“必须是共享数据段的动态链接库”这是不正确的,也许作者只是笔误,他想描述的是它后面的例子应该把数据段放到共享区段里面,检查的时候却不料将其放到前面跟例子不搭边的内容上去了。

//////////////////////////////////////////////////////////////////////////////////////


再来看个有趣的问题,跟原先的一样,不修改源代码,只将共享区段给去掉。

当开了两个该程序时,暂且称为A1,A2,按下一个键时,会发现,窗口反馈出两个相同的键。

这又是为什么呢,取消了共享数据段了啦,理应每个HookDll里的变量都是位于不同的进程空间里的,不受影响才对的。

仔细想想整个流程...

呵呵,聪明的你想到了?

来,我来说说我的看法吧。

因为我们执行的是相同的程序,程序的变量szAscii等放的地址空间是完全一样的,而下的Hook是全局的,所以在每个程序里面其实都有发送自定义的WH_HOOK消息(只是其他的程序没有处理而已),Hook链表里面有两个回调函数都用SendMessage发送了信息,所以累计发送了两次,接收到的是两个字符。

是这样吗?

没错?

唔,感觉好像是对的。

但是,别忘了,我们是取消了共享数据段的。

还是把SendMessage贴上来看得仔细点吧,

invoke    SendMessage,hWnd,dwMessage,dword ptr szAscii,NULL

hWnd是个窗口句柄,这是两个窗口喔,hWnd由消息循环获得,两个窗口,理应是不同的值吧?

有点怀疑是不是hWnd指向的结果是同一个,经过调试,发现打开两个该程序,传递的hWnd的值竟然是一样的。

而当我改了下HookDll.asm后,重新生成了个,现在有两个不同的dll了,测试的结果却是hWnd是不一样的,一个为NULL,另外一个为真实的值。

实际上,只要dll是不一样,即使代码没改(不如生成的时间不一样),传递的hWnd的值都是不一样的,这样很符合我们的思维。

Windows程序Hook技术入门:从DLL注入到函数拦截实战指南 Hook(钩子)技术是程序行为分析与扩展的核心手段,通过在程序执行流程中插入自定义代码,实现对函数调用或事件处理的拦截、修改与增强。其原理主要基于内存地址替换或代码跳转,在Windows平台上常通过DLL注入或内存补丁实现。这项技术的工程价值在于为软件自动化、行为监控、安全审计及功能扩展提供了底层支持,广泛应用于自动化测试、辅助工具开发及安全研究等场景。例如,结合MinHook等轻量级库,开发者可以相对便捷地实现API拦截,而通过CreateRemoteThread进行DLL注入则是经典且基础的实践路径。本 阅读详情

相关推荐

Windows API Hook实战:Frida动态注入与MessageBox拦截

动态代码插桩技术是现代软件逆向分析与安全研究中的核心方法,它允许在不修改源代码的情况下,实时监控和修改程序行为。其原理是通过在目标进程内存中注入代码,拦截函数调用、读写内存或寄存器数据。这项技术的核心价值在于提供了对闭源软件的深度可观测性和可控性,广泛应用于漏洞挖掘、恶意软件分析、软件调试与功能扩展等场景。Frida作为当前最流行的动态插桩框架,以其跨平台特性和JavaScript API降低了技术门槛。本文以Windows平台为背景,深入讲解如何使用Frida对MessageBoxW等系统API进行Hoo

banglvfei0870的博客 402

Windows API Hook

原文地址:http://blog.sina.com.cn/s/blog_628821950100xmuc.html 原文对我的帮助极大,正是因为看了原文,我才学会了HOOK,鉴于原文的排版不是很好, 又没有原工程例子源码下载,因此我决定对其重新整理,文章后面附有我测试时的工程源码下载地址。 注:我测试的环境为Win7+VS2008+MFC -------------------------

friendan的专栏 3万+

OpenGL-Hook:开发中

OpenGL挂钩 用C ++制作的DirectX蛇游戏 钩子,C ++,OpenGL 安装 开发中 描述 这是用于Windows的OpenGL挂钩,正在开发中,如果您愿意,可以尝试使用该代码,但这只是x86且未经测试。 特征 N

Windows Hook研究

Windows操作系统是建立在事件驱动机制之上的,系统各部分之间的沟通也都是通过消息的相互传递而实现的。但在通常情况下,应用程序只能处理来自进程内部的消息或是从其他进程发过来的消息,如果需要对在进程外传递的消息进行拦截处理就必须采取一种被称为HOOK(钩子)的技术。钩子是Windows操作系统中非常重要的一种系统接口,用它可以轻松截获并处理在其他应用程序之间传递的消息,并由此可以完成一些普通应用程

iu_81的专栏 917

智能座舱架构与芯片- (10) 音频篇 下

若将有限个 量化样值的绝对值从小到大依次排列,并对应地依次赋予一个十进制数字代码(例如,赋予样值0的十进制数字代码为0),在码前以“+”、“-”号为前缀,来 区分样值的正、负,则量化后的抽样信号就转化为按抽样时序排列的一串十进制数字码流,即十进制数字信号。如果声学密封不牢,来自内部结构的噪声可能到达传感器,两个传感器之间的泄漏可能降低BF算法的性能。未来,随着汽车电动化的普及,传统的ANC降噪所针对的发动机噪音已经不复存在,而路噪问题将越发明显,因此,全新的RNC主动路噪消减技术将会有一个更为宽广的市场。

joanna_xiao的博客 3849

HybridCLR热更新全流程实操:用Addressables实现资源+代码双热更(Unity 2021版)

本文详细介绍了在Unity 2021 LTS版本中,如何结合HybridCLR代码热更新与Addressables资源管理系统,实现资源与代码的双热更解决方案。通过环境配置、技术架构设计、实战案例和性能优化,帮助开发者解决中大型项目中的依赖管理和版本协同问题,提升游戏迭代效率。

cc789的博客 848

HOOK专题

HOOK是用来获取或更改程序执行时的某些数据,或者是用于更改程序执行流程的一种技术HOOK主要有以下两种形式:1.修改函数代码:如Inline HOOK,HotFix HOOK2.修改函数地址:如IAT HOOK, 虚表HOOK简单的讲,如果一个函数被HOOK,那么这个函数就可以随意的被修改接下来我们将讲解常见的HOOK手法。

2301_78838647的博客 1810

单相PWM整流器四象限运行原理

简述单相PWM整流器四象限运行原理。

m0_75208156的博客 8305

windows用户模式任意hook工具

https://github.com/wqreytuk/UserModeHookHelper/

ma_de_hao_mei_le的博客 109

【论文复现】HiDDeN:Hiding Data With Deep Networks

(标签)是 float 类型,但代码中传入的是 long 类型(整数标签)。函数参数解析方式变化,导致无法正确保存生成的图像结果。这是因为新版torchvision的。使用预训练模型进行隐写和提取测试。HiDDeN支持多种噪声层组合。打印变量的类型,分别是。

qq_69146676的博客 972

计量经济学(因果关系探究-空间双重差分模型: 破解空间溢出效应的因果分析工具)

本文介绍了传统双重差分(DID)模型及其局限性,重点阐述了空间DID模型的必要性。传统DID通过组间差分分离干预效应,但无法处理空间溢出效应。空间DID模型引入空间计量方法,包括三种类型:空间自回归模型(SDID-SAR)捕捉因变量溢出,空间误差模型(SDID-SEM)处理残差相关性,空间杜宾模型(SDID-SDM)同时考虑因变量和自变量的空间滞后。模型选择需结合空间相关性检验,适用于环境政策、房地产限购等存在空间交互效应的研究场景。

YBAdvanceFu的博客 2033

探索Windows内核的极限 - Hook KdTrap开源项目深度解析与推荐

探索Windows内核的极限 - Hook KdTrap开源项目深度解析与推荐 在深入探讨操作系统核心的旅程中,有一项探索令人瞩目——Hook KdTrap。这款开源项目如同一个神秘的钥匙,解锁了Windows系统异常处理的深层控制,赋予开发者前所未有的能力。 项目介绍 Hook KdTrap是一个针对Windows系统的全球异常处理器钩子,它利用高超的技术手段,当任何异常发生时,首先调用自定义的...

gitblog_00006的博客 538

基于YOLOv8的玉米病害监测系统

本研究的主要目标是设计并实现一个基于深度学习的玉米病害识别系统,通过采用YOLOv8算法进行玉米叶片病害的自动化识别。研究首先对玉米病害的种类和特点进行了分析,选择了具有代表性的病害类型,如玉米锈病、灰叶斑病、枯叶病和健康叶片,以构建一个多类别的分类问题。数据集的构建和处理是研究的关键部分,通过数据增强、图像标注等手段确保了数据的多样性和丰富性,从而提高了模型的泛化能力。

yupan__的博客 497

Windows Hook的简单介绍——此树是我栽,此路是我开

千里之行,始于足下! 今天是正式启程的第一天,一直明白自己的缺点就是不够坚持,同时没有坚定目标,或许是目标不够诱人吧。但是如果我可以成为这个领域中相当牛逼的人,那还是十分有吸引力的。 之前学习的过程中,学会了一项技术,时常感觉“无用武之地”,这应该是我自己学习的一个误区,之后自己会多在实战中检验技术,也希望有大佬多多指点。 本文内容 本文将简单介绍Windows Hook的基本内容,以及一些自己的看法,希望可以帮助您快速了解这一内容。 HOOK是什么? Hook,中文里常常被译作“钩子”或者“挂钩”,其实是

CodeBowl的博客 2794

最全面的行人重识别数据集汇总

汇总了一些REID的数据集,几乎涵盖了所有的数据集。如果有缺少的欢迎留言补充。我将能下载到的数据集放在了网盘里,链接如下:链接:https://pan.baidu.com/s/1hQ4PKvtAhAvoZiXbcIu93w 提取码:o3iyQMUL iLIDS基于iLIDS MCTS的数据集,是一个在机场繁忙时候通过监控系统中多个摄像头收集到的数据集。几乎每个ID(identity)都有从两个无重叠(区域)的摄像头拍摄的四幅图像。该数据集具有严重遮挡和姿势差异的场景。

m0_47867638的博客 1万+

基于OpenClaw的自动化文件管理与文档分类系统设计与实现

本文介绍了一种基于OpenClaw的自动化文件管理与文档分类系统。系统采用三层架构设计,包含数据层、逻辑层和应用层,核心组件涵盖文件扫描、处理、分类、移动等功能。技术选型上使用Python/FastAPI作为后端,结合PostgreSQL/Elasticsearch/MinIO存储方案,并整合scikit-learn/PyTorch等AI技术实现智能分类。系统实现了文件递归扫描、增量扫描、元数据提取等功能,通过文件哈希和修改时间检测变化。该方案能有效提升文件管理效率,实现文档的自动化分类与智能管理。

一键难忘的博客 756

TinyVT:轻量级Windows虚拟化技术与Ept无痕HOOK框架

TinyVT是一个专为Windows系统设计的轻量级虚拟化技术(VT)框架,结合了先进的EPT(Extended Page Tables)无痕HOOK机制。该项目为Windows内核开发者提供了强大的系统行为监控和函数拦截能力,支持Windows 7、Windows 10和Windows 11等主流操作系统。 ## 核心技术架构 TinyVT框架基于Intel VT-x虚拟化技术,通过硬件辅助

gitblog_00756的博客 634

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【亲测免费】 探索创新:Windows 11兼容版ETW Hook技术揭秘与应用

探索创新:Windows 11兼容版ETW Hook技术揭秘与应用 1、项目介绍 ETW HOOK是一种独特的系统级调试技巧,利用Windows操作系统中ETW(Event Tracing for Windows)功能的漏洞,来实现对系统调用的无痕拦截和控制。这一项目旨在提供一种能够兼容最新Windows 11系统的高效且稳定的ETW Hook实现,使得开发者能够在不影响系统性能的同时,深入洞察系...

gitblog_00069的博客 909

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

终极指南:如何使用Windows VT框架实现Ept无痕HOOK技术

TinyVT是一个专为Windows系统设计的轻量级VT(Virtualization Technology)框架,它创新性地结合了Ept无痕HOOK技术,让开发者能够在Windows 11、Windows 10和Windows 7系统上实现高效、低侵入性的函数拦截和系统行为监控。这个开源项目为安全研究、性能优化和逆向工程提供了强大的技术支撑。 ## 🚀 项目核心价值与技术优势 TinyVT

gitblog_01157的博客 567

VB摄像头监控

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

我的学习笔记之三——inline使用DLL进行全局HOOK(ring3_inline_dll_hook_Messagebox)

2008-12-23 21:23:30|  分类: 编程与电脑技术|字号 订阅 前一篇学习了修改导入表来HOOK API,虽然是自己HOOK自己,但稍改一下,变成DLL就可以全局HOOK,因为windows有数据执行保护会拦截,所以就不再深入。 还有一种HOOK API法叫INLINE HOOK就是采用JMP法。长话短说,所谓的API HOOK指的就是 :系统函

zqf_office的专栏 667

C++黑客编程:键盘记录器,HOOK技术实现

有一种技术被称为HOOK,人们习惯上叫做钩子。钩子技术的应用范围比较广:输入监控,API拦截,消息捕获等等。 今天我们来做的是键盘记录器 编译工具:visual studio 2019 编程语言:自然是C++,Python做的我会写个标题“C++”吗? 编程技术:HOOK 另外我说一下: 中华人民共和国《网络安全法》规定了:任何窃取他人信息都是违法的!本文仅供技术参考,若有人使用本文技术非法窃取他人信息,作者不承担任何法律责任! HOOK技术分为好几种,我今天介绍一种:Windows钩子 Windo

m0_47563648的博客 4061

探索EDR的秘密:Probatorum EDR Userland Hook Checker

探索EDR的秘密:Probatorum EDR Userland Hook Checker 在当今的网络安全领域,终端检测与响应(EDR)系统是保护企业免受恶意软件和高级持续性威胁(APT)攻击的关键工具。然而,了解这些系统如何在底层操作,对于红队和蓝队成员来说都是至关重要的。今天,我们将介绍一个强大的工具——Probatorum EDR Userland Hook Checker,它能够揭示本地...

gitblog_00551的博客 469

我的毕业设计论文——利用HOOK技术实现应用层网络抓包

成都东软信息技术职业学院04级毕业论文 利用HOOK技术实现应用层网络抓包  班级: 可视化程序设计2班 导师: 李        丹 学号: 04311110210 姓名: 刘   海   平  摘  要    数据包抓取(拦截)技术,主要应用在信息安全相关领域,特别是防火墙技术。随着网络游戏产业日益兴旺,后来出现很多针对不同游戏的外挂,这些外挂也使用到抓包技术,但是与其他抓

Fido 3305
上一篇: 博客浮动宠物
下一篇: Intel汇编语言程序设计(第四版) 勘误
epluguo
博客等级 码龄18年 34粉丝 28原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值