草庐IT

after_event_hooks

全部标签

windows - 为内存跟踪应用程序 Hook 调用 HeapAlloc 的僵局

我正在编写一个内存跟踪应用程序,它使用IAT修补机制Hook对HeapAlloc的所有调用。这个想法是捕获对HeapAlloc的所有调用并获得调用堆栈。但是,我目前面临使用DBGHELPApis获取调用堆栈的问题。我发现dbghelpdll本身链接到MSVCRTdll,这种依赖导致递归调用。当我尝试从目标应用程序获取任何调用的调用堆栈时,dbghelp在内部调用MSVCRT中的一些方法,该方法再次调用HeapAlloc。因为我已经修补了MSVCRT,所以它会导致无限循环。有人遇到过这个问题并解决了吗?有没有办法摆脱这种僵局? 最佳答案

Windows DNS Hook

Windows如何解析DNS以及我如何拦截调用以注入(inject)我自己的域?我在应用程序中需要这个,运行我自己的DNS服务器或修改主机文件不是解决方案。 最佳答案 我不确定您的目的是什么,但有多种选择。CodeProject包括可能对您有帮助的内容。它似乎在做你需要做的事情。现在,另一个解决方案可能涉及您自己的一些工作,这些工作可能不适合该项目。首先,您需要弄清楚以下是否function负责在您要修改的应用程序中进行DNS查找。下一阶段基本上是自己实现CodeProject代码,使用MicrosoftDetours设置全局Hoo

c++ - 在 Windows 中检索全局钩子(Hook)链

我需要在Windows中获取全局钩子(Hook)链中的函数列表,并在可能的情况下获取它们对应的应用程序。不过,我不知道如何从全局Hook链中检索信息。据我所知,没有用于执行此操作的WindowsAPI,因此我认为我必须通过解析hook链链接列表来找到它们。问题是我不知道这个链接列表的数据结构和它的开始地址。有谁知道windows是怎么管理它的全局hook链的? 最佳答案 此blogpost中显示了我见过的一种方法.它被thiscode引用(小心缓慢的服务器)。当然是疯狂的东西,不知道这在不同Windows版本之间的移植效果如何。

windows - Groovy 颠覆钩子(Hook)脚本

我想用Groovy编写一些Subversion(SVN)Hook脚本。SVN服务器将在Windows上运行,根据SVN手册:youwouldneedtosupplyaprogramwhosebasenameisthenameofthehookandwhoseextensionisoneofthespecialextensionsrecognizedbyWindowsforexecutableprograms,suchas.exeforprogramsand.batforbatchfiles.除了在本地机器上安装Groovy,设置GROOVYHOMEenvvar,并将%GROOVY_HO

windows - F# 使用 WinForms 拖放 : DragDrop event of a control does not call the referenced member function

您知道为什么F#中的DragDrop事件在我的示例中无法正常工作吗?所有其他事件,如DragEnter、DragLeave、DragOver...都以相同的方式正常工作。只需编译此代码并进行尝试,将文件拖到表单中,然后在启动可执行文件的位置查看在控制台/终端中触发的事件。openSystemopenSystem.DrawingopenSystem.Windows.FormstypeMainForm(args:stringlist)asthis=//subclassinginheritForm()//controls-------------------letdragDropImage=

c - Wndproc 和 hook 是否在主线程中?

抱歉我的愚蠢问题,但是主线程中的wndproc和Hook(调用时)?如果是,是否意味着我不能将它们用于构建键盘输入缓冲区? 最佳答案 您的窗口过程(以及任何子类窗口过程、Hook等)在调用CreateWindow的线程中运行(要求同一线程稍后处理消息队列,窗口过程实际运行当您的主消息分发循环调用DispatchMessage时)。不确定“为键盘输入构建缓冲区”是什么意思。 关于c-Wndproc和hook是否在主线程中?,我们在StackOverflow上找到一个类似的问题:

c# - 从 c# windows 服务应用程序 Hook 窗口事件不起作用

我正在尝试开发一个应用程序,该应用程序将HookWindows事件并在例如发生时通知我。事件窗口已更改。我在.net4.0VS2010中使用Win764为此,我创建了一个窗口服务类型的项目,在其中创建了一个服务安装程序,并使用user32.dll中的SetWinEventHook向事件注册了模板服务项目中的OnStart方法。一切似乎都很好,除了我在传递给SetWinEventHook的回调方法中没有收到任何东西。我的代码如下所示:protectedoverridevoidOnStart(string[]args){workerThread=newThread(OnTimer);wor

React hooks中 useState踩坑-=--异步问题

useState作为最常见的一个hook,在使用中总是会出现各种坑,最明显的就是useState更新异步的问题。比如我们把接口返回的数据,使用useState储存起来,但是当后面去改变这个数据的时候,每次拿到的都是上次的数据,无法实时更新。或者我们在函数内部使用setState,然后立即打印state,打印的结果还是第一次的state的值。比如下面的代码实例。const[data,setData]=useState('111');consthandleTest=()=>{console.log(data)//111setName('222')console.log(name)//111}原因:

windows - 重叠 I/O : How to wake a thread on a completion port event or a normal event?

我想使用线程池来启动/取消重叠读取操作——分别使用ReadFile()和CancelIo()——以及处理任何读取操作完成时的完成端口事件。任何线程都可以发起读操作任何线程都可以处理读取完成事件只有发起读取的线程可以取消它(这是一个CancelIo()限制)我不确定如何实现它。通常调用GetQueuedCompletionStatus()来等待完成端口事件,调用WaitForSingleObject()来等待正常事件,但不清楚如何混合使用这两者。如果PostQueuedCompletionStatus()让我指定一个特定的线程来唤醒我就会被设置。有什么想法吗?更新:该解决方案必须在Win

Windows XP : change background color programatically (how to redraw Desktop after changing registry key? )

如何以编程方式更改WindowsXP上的背景/墙纸颜色?我正在更改注册表项HKEY_CURRENT_USER\ControlPanel\Colors\Background(使用regedit),但更改该注册表项不会更改背景颜色,尽管当我从“显示属性”窗口更改颜色时该注册表项已更改。知道为什么吗?编辑:啊,如果我更改key并重新启动,效果就会改变。那么如何在不重新启动的情况下进行更改呢? 最佳答案 我认为您需要调用WindowsAPI函数SetSysColors. 关于WindowsXP: