简短版本:有没有办法“拦截”Windows(XP或7)文件系统调用以打开文件并将所述调用替换为不同的文件名?长版:我正在努力帮助客户从硬盘损坏中恢复过来。有问题的计算机在一个亭子里,它只是结合网络摄像头播放两个Flash文件。它由来自MDMZinc的已编译.exe控制。我有两个Flash文件和一个.exe副本。问题是,只有一个Flash文件打开了。经过大量的思考之后,我终于通过SysternalsProcessMonitor看到了正在发生的事情。这两个.flv文件都在同一个文件夹中。我可以在ProcessMon中非常清楚地看到.exe将工作进程称为c:\somedirectory\an
我正在尝试编写一个简单的东西来防止第三方应用程序能够最小化。我要使用EasyHook因为我认为这是最简单的方法。我的代码将使用C#。我一直在查看EasyHook存储库中的示例,我只是不确定我需要替换哪个Windows函数才能实现此目的。或者,如果有另一种方法也可以做到这一点。示例(不工作):Program.csusingSystem;usingSystem.Text.RegularExpressions;usingEasyHook;namespaceAutoMaximize{internalclassProgram{privatestaticvoidMain(string[]args)
我在使方法Hook正常工作时遇到了一些问题。如果“我”调用被Hook的方法,我就可以让Hook工作。但是当它在进程运行期间自然发生时,它不会被钩住。我的问题可能源于这样一个事实,即我实际上是在我自己生成的线程中设置这些Hook。显然LhSetInclusiveACL()方法需要知道您要Hook的线程。好吧,这是我的问题...我真的不在乎哪些线程应用了钩子(Hook),我希望它们都被钩住。例如,假设我希望“gdi32.dll”库中的CreateICW()方法与整个进程“iexplorer.exe”Hook。不仅仅是来自线程ID号48291或其他。了解哪些线程将调用您感兴趣的Hook例程需
所以我在winspool.drv!WritePrinter上有一个Hook函数,它成功地Hook了远程注入(inject)到spoolsv.exe的非托管C++。目前,Hook似乎要么替换原始函数,要么以无法检测的方式破坏堆栈:Hook后,WritePrinter调用导致Hook外没有打印机事件。我发现至少有一种方法可以调用原始函数,即所谓的LhGetOldProc。但是,使用它会导致崩溃,不确定这是与easyhook相关的错误还是只是错误的转换。那么,如何在Easyhook非托管版本中正确调用原始函数?使用LhGetOldProcHook回调:UCHAR*uc=NULL;LhGetO
注入(inject)x64进程的x64-DLL使用C++和EasyHookHookx86-DLL失败。如果Loader、InjectionLibrary和InjectionTarget(它在两个版本中都可用,我需要两者都被Hook)是x86,它就可以工作。获取导出过程的地址(GetProcAddress本身)在x64上不是问题。InjectionTarget也有HookTarget(Kernel32.dll)作为x64的依赖项。LhInstallHook(...)返回STATUS_NOT_SUPPORTED,其中源评论说在以下情况下发生:“目标入口点包含不受支持的指令。”由于源适用于x