草庐IT

rb_define_hooked_variable

全部标签

windows - 函数 Hook 实际上是如何工作的? WinAPI, C++

我正在将我的DLL注入(inject)到一个进程中,然后像这样Hook一个函数:(recv)BOOLHookFunction(LPCWSTRmoduleName,LPCSTRfuncName,LPVOIDfuncProxy,unsignedchar*lpBackup){BYTEjmp[6]={0xe9,0x00,0x00,0x00,0x00,0xc3};DWORDfuncAddr=(DWORD)GetProcAddress(GetModuleHandle(moduleName),funcName);DWORDprev;VirtualProtect((LPVOID)funcAddr,6,

c++ - 找到一些宏被#define-ed的地方

底线:使用VS2012构建,在我的项目中定义了一个宏(WIN32_LEAN_AND_MEAN)我在任何地方都找不到#define-ed:不在C/C++中-->预处理器,不是从父级或项目依赖项继承的(microsoft.cpp.props),而不是在命令行中。vcxproj中的任何地方都没有提到它。编译项目中的单个源/header,我发现它已经在header的第一行定义了。把这个放在我的标题的顶部:#pragmaonce#ifndefWIN32_LEAN_AND_MEAN#pragmamessage("WIN32_LEAN_AND_MEANnotdefined")#else#pragma

windows - 赢bat文件: How to get the result of FIND into a new variable?

pdftk工具“dump_data”功能可用于传递有关pdf的元信息,包括页数。以下命令...pdftktest.pdfdump_data|find"NumberOfPages"...输出完整的数据转储行,例如:"Numberofpages:32"如何将计数值(在上述情况下为32)放入新变量中以便在bat文件中进一步处理? 最佳答案 如果该行的格式是固定的并且与您显示的格式相匹配,您可以尝试这样的操作:@ECHOOFF>testfileECHONumberofpages:32FOR/F"delims=:tokens=2"%%AIN(

windows - 试图将 "variable"插入堆栈

我有以下代码:[bits64]%definemsgdb"%i\n",0xa,0%definevar-4movr8,rspmov[r8+(var)],WORD0xFFFFpushWORD[r8+(var)];notworks;iftryingtopushDWORDitsshowserrorinstructionnotsupportedin64bitasmpushDWORD0xFFFF;workscalltCtAKBWomJmsgtCtAKBWomJ:call[rbx+3*8]addrsp,8push0call[rbx]call[rbx+x*8]调用asmloaderapix=0,退出x=

C++ 事件 Hook

我正在尝试了解C++中的事件Hook。我知道什么是事件,我在Java、C#和Javascript中经常使用它们。我遇到的问题是查找有关全局Hook、dll注入(inject)、没有DLL的全局Hook等内容的文档和教程。假设我想遍历FireFox中的浏览器选项卡...我需要希望FireFox有一个用于C++的API吗?或者假设我想在用户打开新选项卡时执行某些操作,我是否需要使用FireFox在其API中提供的Hook?以上只是一个例子,所以人们知道我想学习/理解什么。我的想法是否正确?我在论坛上看到了一篇帖子,在过去的2小时里我对此很感兴趣。我总是说,一个棘手的挑战,或一个新的挑战,会

windows - 我需要 Hook 什么进程 API 来跟踪服务?

当Windows中的服务或应用程序启动、停止以及它是成功退出还是出现错误代码时,我需要跟踪日志。据我了解,许多服务不会记录自己的开始和停止时间,或者如果它们正确退出,所以似乎要走的路必须在API中插入一个钩子(Hook),以便在服务/应用程序请求时捕获处理空间并放弃它。我的问题是我需要hook什么函数才能完成这个,这有可能吗?我需要它在64位WindowsXP和7上工作。 最佳答案 我认为最好的办法是使用设备驱动程序。参见PsSetCreateProcessNotifyRoutine.

windows - 我可以将 knife.rb 作为参数传递给 knife 命令吗?

chef-clientv12.15.19(MSI安装程序)在WindowsServer2012R2上不必位于knife.rb所在的目录或将knife.rb放在knife查找该配置的预定位置之一,我可以将它作为参数传递吗?示例:knife.bat节点列表-config_filec:\some\other\place\knife.rb我只是好奇这是否可行,因为我在文档中的任何地方都没有看到这一点。我知道我可以使用环境变量和其他可能的方法来解决这个问题,但我只是想知道是否有一个参数可以直接传递knife.rb。 最佳答案 是的,您可以指定

c - 在#define 方面需要一些帮助

在#define中,L是什么意思?#defineNT_DEVICE_NAMEL"\\Device\\SIOCTL" 最佳答案 即string应该是wchar_t[]类型。 关于c-在#define方面需要一些帮助,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4179911/

windows - 如何将批处理文件作为 Tortoise SVN Hook 执行

我希望通过TortoiseSVNHook脚本在START提交或PRE提交中运行批处理文件。我所做的测试均无效。我已经创建了一个批处理文件(svnadd.bat),它现在只是将消息写入文本文件,所以我知道它被触发了。但是,批处理文件似乎没有运行,因为没有写入消息。echoYES>C:\Temp\commit.txt这是我的Hook设置。我的过程。右键单击受svn版本控制的文件夹,然后选择SVN提交。提交对话框显示,但是批处理文件没有执行。svn控制下的所有svn软件、存储库和文件夹/文件结构都驻留在同一台计算机/驱动器上。根据屏幕截图,我还尝试将cmd.exe添加到命令行的前面作为C:\

windows - 在 Visual Studio 对话框资源脚本中使用#defined 值?

我正在尝试为我的WindowsC++应用程序创建一个关于框。在VisualStudio2008中,我使用对话框编辑器来设计对话框。我希望“关于”框在静态标签中显示应用程序的版本。我可以将版本硬编码到对话框中,存储在.rc文件中,但是我必须记得在多个地方更新版本。我的应用程序版本在version.h中是#defined作为APPLICATION_VERSION。资源编辑器可以说服放#include"version.h"在.rc文件的顶部,所以我可以访问APPLICATION_VERSION符号。但是,我不能在对话框编辑器中使用这个符号。我可以手动编辑.rc文件,用符号APPLICATIO