问题标签 [easyhook]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
easyhook - 如何让这个 easyhook 演示运行?
我正在尝试让这个 easyhook 演示在我的计算机上运行,但不知道如何。
我在windows编程方面经验很少。他们在http://easyhook.codeplex.com/downloads/get/61179
中有一个关于easyhook 的教程。
起初他们提供了一个演示,但我不知道如何构建这个项目。
他们说
我们需要一个主机进程来注入库并显示文件访问。
我不知道这是怎么做到的。我想我需要在 Visual Studio 中打开一个项目?有人可以一步一步教我吗?谢谢!
c#-4.0 - 无法使用 EasyHook 从托管代码中挂钩 ICorJitCompiler:compileMethod
我一直在尝试ICorJitCompiler:compileMethod
从 v4.0 中的托管代码中使用EasyHook LocalHook.Create
. 我通过解组这样的结构获得了函数指针:
一切正常,结构似乎没有问题地解组,并且包含的委托的 _methodPtr 和 _methodPtrAux 字段填充了一些指针值。
当我尝试像这样设置钩子时出现问题:
我获得了 AccessViolationException。
我解决了这个问题并将 _compileMethodPtr
变量设置为委托的_methodPtr
. 创建钩子时我没有例外,但钩子也不起作用。
我做错了什么?
windows - Winsock LSP 与 API 挂钩
我需要你的建议使用什么 - 分层服务提供程序或只是在所有进程中加载我的 DLL 并使用 NCodeHook 或 EasyHook 库挂钩必要的功能。
这是检查 HTTP 流量所必需的。
PS 商业应用需要这样做
谢谢!
c# - EasyHook,.NET Remoting 客户端和服务器之间的共享接口?
IPC客户端和IPC服务器如何调用共享远程接口(继承MarshalByRefObject的类)进行通信,而不必将接口类放在注入应用程序中?例如,如果我将接口类放在被注入目标进程的注入库项目中,我的注入应用程序将无法引用该接口。
编辑:我已经回答了下面的问题。
directx-11 - 将 Direct2D 纹理转换为内存流会使应用程序崩溃
我正在尝试使用Direct3DHook库和EasyHook来挂钩 Directx11 IDXGISwapChain.Present以获取屏幕截图。我猜 Direct3DHook 是为单个屏幕截图编写的,我正在尝试扩展它以获取屏幕截图流。在最初的几个屏幕截图之后,主机应用程序在随机渲染堆栈处获得异常。
我可以将错误隔离到文件 DXHookD3D11.cs 中的以下代码:
winapi - 处理钩子函数
我正在尝试在 C# 中使用 EasyHook 正确挂钩来自 COM 对象(非托管)的方法。
我能够确定 COM 对象的方法的地址,并且可以正确触发我的钩子函数。我是这样做的,其余代码与教程中的代码非常相似:
但是,一旦进入我的钩子,所有参数都会被打乱(它们不等于我最初传递的参数)。
此外,我无法返回任何内容(请注意,我还尝试挂钩另一个返回短且值未正确返回的函数)。
当我打开 eXescope 时,这是函数签名之一:
当我在 C# 中正常使用 COM 对象时,此函数具有以下签名:
有任何想法吗?提前致谢!
c# - 从 C# 通过 C++/CLI 访问本机对象!
我编写了一个 C# 应用程序,将 DLL 注入到第三方可执行文件中(恰好是使用 Qt 框架构建的)。此 DLL 使用 EasyHook 拦截对许多特定函数的调用。当我注入的代码被调用时,我会尝试检查一些作为这些函数参数的对象。
例如,我截获了一个解析 XML 的调用:
在我的 C# 代码中,我有一个 PInvoke 签名来匹配这个:
我想调用作为“Source”类成员的“data()”函数。也就是说,QXmlSimpleReader 从 QXmlInputSource 解析原始 XML,但在此之前,我试图通过这个“data()”函数检查原始 XML。
根据这里一位专家的建议,我尝试使用 C++/CLI 本地访问对象(请参阅调用第三方 DLL 中的方法)。我在 C++ 中构造了一个包装器对象,它接受来自 C# 代码的 IntPtr:
标题:
CPP 文件:
当我尝试调用 fpData() 函数指针时,基于 Qt 的应用程序崩溃。帮助:P
一些可能有帮助也可能没有帮助的附加信息:
我已经使用相同的方法成功地调用了“更简单”对象上的函数,例如 QString.count() 和 QString.data()。(QString 似乎只是标准 unicode 字符串的轻量级包装器)。
在包含我感兴趣的 XML 函数的 QtXml4.dll 文件中,实际上有两个 parse() 方法;Source 是 const & 的一种,另一种是 Source 是 const *。我不知道我是否应该使用其中一个。我认为我的签名无论如何都不会改变。
当我尝试玩耍时,我尝试在 C# 代码中取消引用 IntPtr 并将其传递给 C++:
IntPtr DerefSrc = (IntPtr)Marshal.PtrToStructure(Source, typeof(IntPtr));
如果我打印出这两个 IntPtrs 的值,Source 的值约为 3.5Mb,而 DerefSrc 的值为 1.6Gb - 这与内存中 QtXml4.dll 的地址大致匹配。我的猜测是 3.5Mb 是相对偏移,而 DerefSrc 显然是绝对参考。将 DerefSrc 转换为相对地址并将其传递给 C++ 是否值得一试...?
c# - c# hookinig API
我正在研究一个反作弊,我想挂钩诸如 Read/WriteProcessMemory、OpenProcess 之类的 API,也许还有一些 API 来检查它是否从游戏读取或写入一些数据。
但我不是那种有经验的程序员自己做的,所以我尝试通过easyhook来做。首先,我让示例(http://www.codeproject.com/Articles/27637/EasyHook-The-reinvention-of-Windows-API-hooking)工作。然后我尝试替换CreateFile
,ReadProcessMemory
但是有一条线,如果我被钩住了This.Queue.Push(hProcess);
,我应该如何替换?hProcess
ReadProcessMemory
除了上面发布的挂钩之外,我找不到任何其他在 C# 中挂钩 API 的示例CreateFile
。如果有更简单的方法,也不需要通过easyhook来完成。谢谢。
c# - 在 Windows 上拦截/重定向传出的 http 连接
我正在寻找在 Windows 机器上重定向传出 http 连接(不使用系统代理)。
背景:
我有一些遗留软件与现已失效的 Web 服务交互。我在一个简单的桌面应用程序中模拟了该服务,并希望将传出的 http 请求重新路由到该应用程序。
实验上,我已经使用 Windows 主机文件成功重定向到本地主机,但这不切实际,因为我有其他服务需要在默认 http 端口 80 上侦听,我不想为此设置另一个物理服务器
旧版软件不使用系统代理,因此像 FiddlerCore 这样的解决方案将无法工作(不幸的是,因为这太棒了!)
我注意到在类似的问题中提到了 EasyHook,与 winsock 一起使用,但是我对低级编程的经验非常有限,在我开始漫长而混乱的旅程之前,我想检查一下我是否走在正确的道路上!
那么,理论上是否可以通过 hookwinsock(最好在 c# 中使用 easyHook)来拦截和重定向不使用系统代理的传出 http 流量?
一个简单的是/否的答案就可以了,一些推理,甚至更好的文档会很棒
c# - 如何让 EasyHook 工作?
我正在尝试了解 easyhook 如何为即将到来的项目工作。为此,我决定尝试在 firefox.exe 进程中劫持 GetMonitorInfoW 和 GetDeviceCaps 以获取 window.screen.width 和 height 以返回疯狂的值。
这是我所做的:
injectorHelperLib.dll:
注入器Lib.dll:
文本.exe:
该应用程序似乎已启动并报告附加到该过程,但对window.screen.width
我想要影响的任何其他变量没有影响。
我做错了什么?