草庐IT

rb_define_hooked_variable

全部标签

windows - 用于保护驱动程序的注册表访问 Hook

我正在为WindowsNT编写驱动程序,为用户空间应用程序提供Ring-0访问。我想制作一个具有专有权的实用程序来执行任何用户的命令,这些命令将受到保护免受任何外部有害影响。上网发现需要hook一些native内核函数,比如NtOpenProcess、NtTerminateProcess、NtDublicateObject等,我已经制作了一个保护应用程序的工作驱动程序,但后来我意识到最好也防止它从外部尝试删除驱动程序或在操作系统启动期间禁止其加载,如防火墙。我将任务分为两部分:防止从\system32\drivers\中物理删除驱动程序,并防止更改/删除负责加载驱动程序的注册表项(HK

windows - SSDT 注册表 Hook

我是内核编程和驱动程序概念方面的新开发人员。我需要Hookssdt以保护注册表的某些键值,但我找不到任何有用的教程或简单的源代码来处理这些东西。我发现zwopenkey和zwcreatkey应该被Hook,并且它们的权限更改为只读。我正在寻找SSDT注册表Hook的一些示例。 最佳答案 你不需要HookSSDT,你不应该这样做。还有其他方法可以保护您的key。例如,许多解决方案之一是使用registrycallbacks. 关于windows-SSDT注册表Hook,我们在StackOv

python C++ 扩展 : symbol not defined error

我有一个工作的c++代码,我想将其包装到WindowsXP和Python2.7上的python模块中。我以前从未这样做过,所以我研究了swig和distutils。我创建了一个接口(interface)文件和一个setup.py并使用编译pythonsetup.pybuild_ext-cmingw32该脚本从我的module.i和module.cpp文件创建一个module_wrap.cpp,然后创建一个module_wrap.o和一个module.o。module.o的创建为未使用的变量和弃用的char*创建了一堆警告,但它似乎有效。因为C++代码不是我的,所以我现在真的不想讨论这些

c++ - 从 32 位应用程序 Hook 64 位进程

我正在使用SetWindowHookEx将DLL加载到另一个进程中,但我需要能够挂接到32位和64位进程。我想我需要两个单独的DLL,但是我可以在不创建两个版本的“启动器”应用程序的情况下做到这一点吗?我需要将DLL句柄传递给SetWindowsHookEx,但我无法使用LoadLibrary获取它。 最佳答案 使用进程外COM+对象承载DLL。您可以使用此方法从32位调用64位代码,这样大多数启动器代码都保持不变,除了您决定加载32位或64位COM+对象的if语句。可以对该对象进行编码以将适当版本的DLL加载到进程中,一个用于64

windows - 批处理文件 : How can I extract the substring of a value from a FOR loop using an index variable?

我有一个用FOR循环读取的文本文件。对于每一行,我想提取一个从INDEX参数开始的子字符串。我的代码如下:@ECHOoffSETLOCALENABLEDELAYEDEXPANSIONFOR/f"delims="%%aIN(cases.txt)DO(SETINDEX=3SETLINE=%%aECHO!LINE:~!INDEX!!)GOTO:EOFECHO只是在每一行的末尾附加了“INDEX”这个词。是否有可能完成我想做的事情?问候,安德鲁 最佳答案 @ECHOoffSETLOCALENABLEDELAYEDEXPANSIONFOR/f

windows - 如何在 Windows git hooks 中使用 cygwin 路径?

(一)我的.git/hooks/pre-commit是#!c:/cygwin/bin/bash.exe#/cygdrive/c/tmp/a.sh当我运行'gitcommit'时出现错误.git/hooks/pre-commit:line8:/cygdrive/c/tmp/a.sh:Nosuchfileordirectory(B)如果.git/hooks/pre-commit是#!c:/cygwin/bin/bash.exe#c:/cygwin/bin/bash.exe/cygdrive/c/tmp/a.sh错误变为/usr/bin/bash:C:/ProgramFiles(x86)/G

c# - 我需要 Hook 什么功能(使用简易 Hook )以防止最小化第三方应用程序?

我正在尝试编写一个简单的东西来防止第三方应用程序能够最小化。我要使用EasyHook因为我认为这是最简单的方法。我的代码将使用C#。我一直在查看EasyHook存储库中的示例,我只是不确定我需要替换哪个Windows函数才能实现此目的。或者,如果有另一种方法也可以做到这一点。示例(不工作):Program.csusingSystem;usingSystem.Text.RegularExpressions;usingEasyHook;namespaceAutoMaximize{internalclassProgram{privatestaticvoidMain(string[]args)

windows - 为什么 SetWindowsHookEx() 返回 NULL 而 LastError 是 ERROR_HOOK_NOT_INSTALLED

我的代码几年来一直没有报告任何问题。它设置了一个低级键盘钩子(Hook),用户可以使用它来激活应用程序。m_hKeyboardHook=SetWindowsHookEx(WH_KEYBOARD_LL,KeybHookFn,GetModuleHandle(NULL),0);突然有一位用户(这在他之前也适用多年),键盘Hook无法正常工作。经过调查,我可以看到SetWindowsHookEx()正在返回NULL,而GetLastError()正在返回0x00000597,即ERROR_HOOK_NOT_INSTALLED。我找不到关于这意味着什么的任何文档。为什么会发生这种情况的可能性有哪

c++ - 什么可能导致低级鼠标 Hook 错过按钮事件?

我编写了一个简单的程序来将所有鼠标事件打印到调试View:#include#includeHHOOKg_mouseEventHook=NULL;LRESULTCALLBACKmouseEventHookProc(intcode,WPARAMwParam,LPARAMlParam){if(code!=HC_ACTION){return::CallNextHookEx(g_mouseEventHook,code,wParam,lParam);}PMSLLHOOKSTRUCTmi=(PMSLLHOOKSTRUCT)lParam;charbuf[2048];sprintf(buf,__FUNC

windows - 如果请求 undefined variable ,Matlab 会挂起

如果我打开带有清晰工作区的Matlab并输入a在命令窗口中返回变量a,即使它不存在,然后Matlab会“忙”大约20秒才告诉我变量未定义。期间我不能用ctrl+C中断进程。如果我输入tic;a;toc然后错误立即出现。如果我输入a在工作空间为空的新脚本中,错误也会立即出现。然而,在一些较大的脚本中,Matlab会在给出错误之前挂起,就像从命令窗口请求变量时一样。我认为这可能是许可问题,但我确认license.dat已正确放置在许可文件夹中。该问题存在于Matlab2017b和2018a中。我正在运行64位Windows10企业版1709。我在同一系统的Windows8上没有遇到此问题。