Articles of 钩

端口Win32的DLL挂钩到Linux

我有一个程序(NWShader)挂钩到第二个程序的OpenGL调用(NWN)做后处理效果和什么。 NWShader最初是为Windows构build的,通常是现代版本(win32),同时使用DLL导出(以获取Windows加载它并获取一些OpenGL函数)和Detours(挂钩到其他函数)。 我使用的技巧,在检查sysdir之前,Win将在当前目录中查找任何DLL,因此会加载我的。 我有在这个方法redirect的DLL: #pragma comment(linker, "/export:oldFunc=nwshader.newFunc) 将它们发送到我自己的DLL中不同的命名函数。 然后我做任何处理,并从系统DLL调用原来的function。 我需要将NWShader移植到Linux(NWN存在于两种版本中)。 据我所知,我需要做的是共享库(.so文件)。 如果这是在NWN可执行文件(我发现一个shell脚本来处理这个)之前预加载,我的函数将被调用。 唯一的问题是我需要调用原始函数(我会使用各种DLLdynamic加载方法,我认为),需要能够执行类似Detour的内部函数挂钩。 目前,我正在构buildUbuntu 9.10 x64(带有32位编译器标志)。 我在Google上找不到太多帮助,但是我不知道这个* nix社区究竟是指什么的。 我可以编写C ++,但我更习惯于Windows。 作为OpenGL,需要修改与Linux兼容的唯一部分是钩子代码和调用。 有没有一个简单而简单的方法来做到这一点,或者它会涉及重新创buildDetours并dynamic加载原始函数地址?

已安装的窗口挂钩列表

如何获取在Windows中全局安装的钩子列表(使用SetWindowsHookEx API)?

我如何使用全局键盘钩子发送密钥?

我试图发送密钥到一个应用程序,它不响应我迄今使用的任何API(SendInput(),PostMessage(),SendMessage()等)。 不过,我testing了Windows的屏幕键盘实用程序,并按下了我需要的键,应用程序很容易地接收到这些键。 如果我理解正确的键盘实用程序使用全局键盘挂钩发送密钥,所以我感兴趣,我怎么可以这样做。 我试图find如何在谷歌可以完成的例子,但没有结果。 谢谢。

检查API是否受到监视(挂钩?)

我的应用程序使用一些像GetProcAddress和CreateProcess这样的API,有时会导致Antiviruses将其标记为恶意,即使它不是。 我想要做的是检查一个特定的API是否被监视或挂钩,如果是,那么我不会调用该部分的代码。 我如何检查某个API是否被挂钩? 这是用C编写的Windows应用程序 谢谢。

用头文件中定义的方法调用SetWindowsHookEx

我正试图添加一个低级别的鼠标挂钩到一个类。 我可以通过在我的CPP文件中放置这个function: LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam) { //my hook code here return CallNextHookEx(0, nCode, wParam, lParam); } 然后,我在类构造函数中设置钩子,如下所示: HHOOK mousehook = SetWindowsHookEx(WH_MOUSE_LL, MouseHookProc, NULL, 0); 这适用于拦截鼠标事件,但由于callback函数没有在我的类中定义,它没有访问我的任何类variables。 因此,我尝试在头文件中定义callback函数,如下所示: LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam); 并在我的CPP文件(TMainForm是类): LRESULT CALLBACK TMainForm::MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam) { //my hook code here return CallNextHookEx(0, […]

防止在C ++中重绘窗口

我正在编写一个全局钩子DLL,它需要在一个窗口上使用GDI +做一些绘制来响应一个事件。 我的问题是,正在绘制的窗口不断重新绘制自己,所以我画的东西在我想要之前就被擦掉了。 有什么办法可以防止窗户只要我需要画什么东西? 我的钩子现在是一个WH_CALLWNDPROC钩子。 该绘图是使用GDI +响应消息WM_SIZING 。 我使用GDI +绘制到窗口的DC (即GetWindowDC )。 我正在绘制的是正确绘制的,但是在窗口客户区被重新绘制时几乎立即被擦除。 创build我正在使用的窗口的程序是记事本。 当光标闪烁时,我所画的被擦除。 有谁知道我可以暂时停止绘画的方式? 谢谢!

如何挂钩到Windows应用程序和进程启动?

我试图编写一个程序,将挂钩到应用程序启动并捕获命令行。 不知道从哪里开始,因为我在Windows编程中非常绿色。 将不胜感激任何帮助谢谢

简单的方法来挂接特定进程的registry访问

有一个简单的方法来挂钩我的代码执行的进程的registry访问? 我知道SetWindowsHookEx和朋友,但它太复杂了…我仍然有希望,有一种简单的Unix LD_PRELOAD …

挂钩进程

有没有人知道像SpyStudio的工具挂钩进程? 我想要的function是: 日志函数调用其他进程 GUI 编写脚本 开源 我已经看过一些工具,如: SpyStudio less走弯路 DynInst 但是没有一个真正让我满意。

如何检测窗口全局范围的拖动操作?

当我在Windows XP中的屏幕边缘拖动文件夹时,它将成为包含文件夹中文件的工具栏。 如何检测窗口有拖动操作? 如果我想编写一个应用程序来检测系统范围内的拖动操作,我该怎么做? 还有另一个问题:我怎样才能禁用这个Windows XPfunction呢,真是烦人。