问题标签 [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.
c++ - 使用 GetProcAddress 和 EasyHook 挂钩类方法和构造函数
我使用EasyHook将系统 API 例程(在 C++ 中)从库中挂钩,取得了很大的成功。这些库一直是扁平的,基本上充满了全局可调用例程。这是一个使用User32.dll 库中的MessageBeep()的小示例(减去设置代码):
这一切都很好。问题是,我现在需要从一个类中挂钩方法,而不仅仅是一个全局函数。我并不真正关心对象本身,我更感兴趣的是检查方法的参数,仅此而已。我不知道如何在语法上识别 GetProcAddress() 的函数名称参数中的例程,我什至不确定 GetProcAddress() 是否支持它。例如,我想将Pen::SetColor()方法从 gdiplus.dll 库中挂钩:
这当然行不通,我认为GetProcAddress(hGDIPlus, "Pen.SetColor")不正确。如何为 GetProcAddress() 指定一个类的成员函数?这甚至可能吗?另外,如果我想挂钩诸如Pen::Pen()之类的构造函数,这会怎样?
c# - 我需要挂钩什么功能(使用简单挂钩)以防止最小化第三方应用程序?
我正在尝试编写一个简单的东西来防止第三方应用程序能够最小化。我将使用EasyHook,因为我认为这是最简单的方法。
我的代码将使用 C#。我一直在查看 EasyHook 存储库中的示例,我只是不确定我需要替换哪些 windows 函数来实现这一点。
或者,如果有另一种方法可以做到这一点,那也很好。
示例(不工作):
程序.cs
AutoMaximizeInject.cs
现在我没有列出的 PInvoke 东西我知道我在其他程序中使用它。当前的问题是 EasyHook.WOW64Bypass.Install() 函数崩溃,它尝试运行“EasyHook64Svc.exe”的进程崩溃了。
我不确定我是否做错了什么,或者这是一个 EasyHook 错误。如果有人能告诉它是哪一个,那会很有帮助。
c++ - Visual C++ 10 中 EasyHook 的链接器问题
我已经下载了 EasyHook 2.7 源代码,并尝试在我的 Visual Studio 2012 环境中编译它。
在解决了很多警告之后,我发现了其他我无法解决的警告,这些是:
我需要添加哪些库文件才能使链接器不会失败?注意前 2 个函数属于 Windows API,所以很好奇它没有链接。
问候詹姆
c# - EasyHook Inject - ArgumentException“给定的 32 位库不存在”
我正在尝试使用 EasyHook 注入一个 dll
不幸的是,这会引发 ArgumentException “STATUS_INVALID_PARAMETER_4:给定的 32 位库不存在!(代码:2)”尽管我 100% 确定路径正确并且引用的 dll 是 32 位库(平台目标:x86)
在此之前,我使用 GAC 在 GAC 中注册 dll
我的错误在哪里?
c# - EasyHook 没有拦截任何 recv 调用
我一直在尝试使用 EasyHook 从 Chrome 和 Firefox 挂起对“recv”的调用。但是,这不起作用 - 它不会因任何错误而失败,而且也没有捕获到任何数据包。我已经尝试了带有“CreateFile”钩子的示例程序,并且效果很好……由于几乎没有关于此的文档,因此我无法解决此问题。这是我的代码:
*
我已经尝试将 SetExclusiveACL 更改为 SetInclusiveACL,但这并没有帮助......
c# - 使用 easyhook 和一个函数将信息从 dll 发送到我的 c# 代码后,外部应用程序崩溃
我正在使用easyhook,退出我的应用程序后,被钩住的应用程序崩溃了。我知道它发生在哪里,但不知道如何解决它。我正在连接 DrawText。我什么都不做:
但是,如果我取消注释Interface.Read(...)
它会在我退出我的 c# 程序时崩溃我的钩子应用程序(否则它会完美运行)。
该函数在我的 c# 代码中,看起来是这样的:
我能做些什么来防止这个外部应用程序崩溃?或者如何在不出现此问题的情况下将信息从我的 dll 发送到 c# 代码?
谢谢
c# - C# Easyhook Winsock WS2_32.dll,连接钩子 Socks5
我正在尝试挂钩winsock连接功能并通过socks5代理/ w auth路由TCP连接。
如果套接字是阻塞套接字,则此方法有效,但是在使用 firefox(非阻塞套接字)时,我得到很多 10035、10022 winsock 错误。
我如何确定它是否是非阻塞/阻塞套接字?
我真的很感激任何提示或想法来实现挂钩 wsock 连接功能并通过 socks5 服务器路由 tcp 流量的功能。
如果有人想测试它,我可以将演示应用程序放在 github 上。(适用于任何版本的Firefox)
编辑1:https ://github.com/duketwo/WinsockConnectHookSocks5/
(您必须在 WSockConnectHook/HookManager.cs 中编辑代理信息,在 Injector/MainForm.cs 中编辑 firefox 的路径)
Edit2:这是造成麻烦的easyhook,原始函数调用之后的任何内容都无法正常工作。
Edit3:似乎我让它有很多缺陷,实际上需要区分非阻塞套接字和阻塞套接字。任何想法如何实现这一目标?
Edit4:Windows 不提供任何方法来检索套接字的阻塞属性,因此我可能必须挂钩 ioctlsocket 函数来跟踪套接字的阻塞状态。
谢谢
}
c# - 给定的用户库未导出正确的 Run 方法
我正在使用 EasyHook 将 DLL 注入进程(Duh!)但是,当调用 Inject 函数时,我收到以下错误消息:
“给定的用户库没有在 'EasyHook.IEntryPoint' 接口中导出正确的 Run(EasyHook.InjectionLoader+REMOTE_ENTRY_INFO) 方法。”
我相信它确实如此。
这是DLL代码:
这是我的注射器:
我也尝试将所有 EasyHook 文件添加到调试文件夹中,但这没有帮助。