草庐IT

mouse-hook

全部标签

windows - 我可以 Hook 链接库中的函数吗?

使用EasyHook,我已经成功地Hook了各种C++类的导出函数和已知vtable函数。在所有这些情况下,目标程序都使用了DLL。假设我知道函数入口点的地址,当一个库被链接到目标程序而不是一个单独的库时,是否可以做同样的事情? 最佳答案 在EasyHook中,您可以Hook任何地址可计算的子例程。在我的例子中,在OpenSSL中Hook静态链接的SSL_read和SSL_write就像用我最喜欢的调试器识别偏移量然后安装Hook一样简单。//delegateforEasyHook:[UnmanagedFunctionPointer

windows - Hook 特定进程的注册表访问的简单方法

是否有一种简单的方法来Hook我的代码执行的进程的注册表访问?我知道SetWindowsHookEx和friend,但它太复杂了......我仍然希望有一种像Unix上的LD_PRELOAD一样简单的方法>... 最佳答案 在这里阅读DLL注入(inject)的理论:http://en.wikipedia.org/wiki/DLL_injection但是,我会在这里为您提供一个DLL注入(inject)片段:http://www.dreamincode.net/code/snippet407.htm一旦您进入外部应用程序的内存中,执

windows - Git 钩子(Hook)输出 - 在哪里查看/查找

我正在尝试在Windows上使用Git运行gitcommit电子邮件Hook。我确定我的contrib/hooks/post-receive-email副本(放在项目的.git/hooks/post-commit中)脚本搞砸了,或者我的配置中缺少一个重要节点,但我不知道我会在哪里看到任何错误消息。当我使用shell提交时,它们会回显到标准输出吗?是否有一些标志我需要设置或传递给gitcommit才能看到它们(我试过-v但没有明显效果)?编辑以下是我添加的特定于repo的配置值:sendemail.smtpserver=smtp.mycompany.comhooks.mailinglis

c++ - API Hooking 在整个过程中生效——包括 EXE 和 DLL

我有一个由单个EXE和多个DLL组成的应用程序。看完WindowsviaC/C++,我尝试在其中一个DLL中对Sleep函数执行Hook,并期望该Hook适用于EXE和所有DLL。请注意,CAPIHook代码来自WindowsviaC/C++'ssamplecode在DLL项目中voidWINAPIMySleep(DWORDdwMilliseconds);CAPIHookg_Sleep("Kernel32.dll","Sleep",(PROC)MySleep);typedefvoid(WINAPI*Sleep_Type)(DWORDdwMilliseconds);//Hookfunct

c++ - 如何使用全局键盘 Hook 发送键?

我正在尝试将key发送到一个应用程序,该应用程序不响应我目前使用的任何API(SendInput()、PostMessage()、SendMessage()和其他)。但是,我测试了Windows的屏幕键盘实用程序并按下了我需要的键,应用程序很容易接收到这些键。如果我理解正确的话,键盘实用程序使用全局键盘钩子(Hook)来发送键,所以我也很想知道如何才能做到这一点。我曾尝试在Google上查找有关如何完成此操作的示例,但没有找到任何结果。谢谢。 最佳答案 Hook用于拦截事件,而不是发送新事件。所以你问的是钩子(Hook)不可能的。S

windows - 用于在 Facebook 墙上发布的 SVN Post-commit Hook

我在运行Windows7x64的本地计算机上使用VisualSVN服务器。我正在寻找一种最简单的方法来为我的一些本地存储库创建提交后Hook,从而允许我将提交信息发布到我的Facebook墙上。如果在提交时我的电脑没有连接到互联网(它是膝上型电脑),额外的功能是对消息进行排队。最佳解决方案不需要安装任何其他软件。我能够编写HTTP连接程序,但是我想使用现有的软件,如果有帮助的话。 最佳答案 我已经设法实现了一个解决方案,在每次提交后在Facebook上创建一个新的提要对象(即创建一个新帖子)。该配方未经过全面测试,您应将其视为概念证

windows - 让 Mercurial 进程内 Hook 在 Windows 上运行

我正在尝试让Mercurial进程内Hook在Windows上运行。问题不在于如何编写Hook(我想使用现有的Hook,在本例中为BugTracker.Net的Mercurial集成Hook-我没有找到该文件的直接链接,但你可以看到如果您下载BT.nethere,它位于“mercurial”子文件夹中)。问题是如何告诉Mercurial运行它。我花了很多时间阅读文档,但现在卡住了。(如果对Python有一定的了解可能会更容易——我没有)我知道我必须在hgrc文件中插入一行(在我存储库的.hg文件夹中)。有一个例子intheHGBook看起来像这样:[hooks]commit.examp

.net - 键盘钩子(Hook)改变键的行为

我正在创建一个程序,它安装一个键盘钩子(Hook)来捕获所有键并显示一些与它们相关的文本。但是,我遇到了一个障碍,那就是安装Hook时某些键会改变行为。我会考虑发布一个小而完整的测试程序,但现在我只描述问题。此问题出现在Windows764位、.NET4.0中的C#程序中。我认为这些都不重要。我的钩子(Hook)通过SetWindowsHookEx安装自己,然后处理系统中处理的所有键。如果Hook方法只是返回,或者对键进行最少的处理(我将在一秒钟内发布更改行为的内容),键盘将按程序中的预期运行。但是,如果我从User32.dll中调用此函数ToAscii来确定我键盘上的哪个键是OemT

windows - "Spy++ has encountered a problem in the message hook"

我正在深入解决一些WindowsAPI消息传递问题,我发现Spy++不再工作了。它甚至不适用于记事本。在某些情况下,它会显示以下消息:---------------------------MicrosoftSpy++---------------------------Spy++hasencounteredaprobleminthemessagehook.Topreventhangingthesystem,thehookhasbeendisabled,sonofurthermessageswillbelogged.PleaserestartSpy++tore-enablemessage

c - Hook - 热修补

我正在尝试HookWindowsAPI函数FindWindowA()。我成功地使用下面的代码完成了它,而没有对其进行“热修补”:我已经覆盖了函数开头的字节。调用myHook()并在调用FindWindowA()时显示一个消息框。user32.dll启用了热修补,我想在实际函数之前覆盖NOP,而不是覆盖函数本身。但是,当我将热修补设置为TRUE时,下面的代码将不起作用。当FindWindowA()被执行时,它什么都不做。#include#includevoidmyHook(){MessageBoxA(NULL,"Hooked","Hook",MB_ICONINFORMATION);}in