问题标签 [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.

0 投票
1 回答
2084 浏览

c++ - 使用 GetProcAddress 和 EasyHook 挂钩类方法和构造函数

我使用EasyHook将系统 API 例程(在 C++ 中)从库中挂钩,取得了很大的成功。这些库一直是扁平的,基本上充满了全局可调用例程。这是一个使用User32.dll 库中的MessageBeep()的小示例(减去设置代码):

这一切都很好。问题是,我现在需要从一个类中挂钩方法,而不仅仅是一个全局函数。我并不真正关心对象本身,我更感兴趣的是检查方法的参数,仅此而已。我不知道如何在语法上识别 GetProcAddress() 的函数名称参数中的例程,我什至不确定 GetProcAddress() 是否支持它。例如,我想将Pen::SetColor()方法从 gdiplus.dll 库中挂钩:

这当然行不通,我认为GetProcAddress(hGDIPlus, "Pen.SetColor")不正确。如何为 GetProcAddress() 指定一个类的成员函数?这甚至可能吗?另外,如果我想挂钩诸如Pen::Pen()之类的构造函数,这会怎样?

0 投票
1 回答
3023 浏览

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

我正在尝试编写一个简单的东西来防止第三方应用程序能够最小化。我将使用EasyHook,因为我认为这是最简单的方法。

我的代码将使用 C#。我一直在查看 EasyHook 存储库中的示例,我只是不确定我需要替换哪些 windows 函数来实现这一点。

或者,如果有另一种方法可以做到这一点,那也很好。


示例(不工作):

程序.cs

AutoMaximizeInject.cs

现在我没有列出的 PInvoke 东西我知道我在其他程序中使用它。当前的问题是 EasyHook.WOW64Bypass.Install() 函数崩溃,它尝试运行“EasyHook64Svc.exe”的进程崩溃了。

我不确定我是否做错了什么,或者这是一个 EasyHook 错误。如果有人能告诉它是哪一个,那会很有帮助。

0 投票
1 回答
517 浏览

c++ - Visual C++ 10 中 EasyHook 的链接器问题

我已经下载了 EasyHook 2.7 源代码,并尝试在我的 Visual Studio 2012 环境中编译它。

在解决了很多警告之后,我发现了其他我无法解决的警告,这些是:

我需要添加哪些库文件才能使链接器不会失败?注意前 2 个函数属于 Windows API,所以很好奇它没有链接。

问候詹姆

0 投票
1 回答
884 浏览

c# - EasyHook Inject - ArgumentException“给定的 32 位库不存在”



我正在尝试使用 EasyHook 注入一个 dll

不幸的是,这会引发 ArgumentException “STATUS_INVALID_PARAMETER_4:给定的 32 位库不存在!(代码:2)”尽管我 100% 确定路径正确并且引用的 dll 是 32 位库(平台目标:x86)


在此之前,我使用 GAC 在 GAC 中注册 dll


我的错误在哪里?

0 投票
3 回答
957 浏览

c# - EasyHook 给定的 32 位库不存在,用户库没有导出正确的运行

如果我做:

我收到此错误:

STATUS_INVALID_PARAMETER_4:给定的 32 位库不存在!

我正在使用具有管理员权限的 VS。在 bin 文件夹中,我有所有需要的文件 AFAIK:

EasyHookFilesNeeded

我添加了 easyhook.dll 和 easyload32 和 64 作为参考(为什么这两个新文件?还没有看到任何文档谈论它们)。谢谢!

PD:已经尝试过同样的结果:

0 投票
1 回答
1213 浏览

c# - EasyHook 没有拦截任何 recv 调用

我一直在尝试使用 EasyHook 从 Chrome 和 Firefox 挂起对“recv”的调用。但是,这不起作用 - 它不会因任何错误而失败,而且也没有捕获到任何数据包。我已经尝试了带有“CreateFile”钩子的示例程序,并且效果很好……由于几乎没有关于此的文档,因此我无法解决此问题。这是我的代码:

*

我已经尝试将 SetExclusiveACL 更改为 SetInclusiveACL,但这并没有帮助......

0 投票
2 回答
389 浏览

c# - 使用 easyhook 和一个函数将信息从 dll 发送到我的 c# 代码后,外部应用程序崩溃

我正在使用easyhook,退出我的应用程序后,被钩住的应用程序崩溃了。我知道它发生在哪里,但不知道如何解决它。我正在连接 DrawText。我什么都不做:

但是,如果我取消注释Interface.Read(...)它会在我退出我的 c# 程序时崩溃我的钩子应用程序(否则它会完美运行)。

该函数在我的 c# 代码中,看起来是这样的:

我能做些什么来防止这个外部应用程序崩溃?或者如何在不出现此问题的情况下将信息从我的 dll 发送到 c# 代码?

谢谢

0 投票
0 回答
5620 浏览

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 函数来跟踪套接字的阻塞状态。

谢谢

}

0 投票
0 回答
430 浏览

c# - 给定的用户库未导出正确的 Run 方法

我正在使用 EasyHook 将 DLL 注入进程(Duh!)但是,当调用 Inject 函数时,我收到以下错误消息:

“给定的用户库没有在 'EasyHook.IEntryPoint' 接口中导出正确的 Run(EasyHook.InjectionLoader+REMOTE_ENTRY_INFO) 方法。”

我相信它确实如此。

这是DLL代码:

这是我的注射器:

我也尝试将所有 EasyHook 文件添加到调试文件夹中,但这没有帮助。

0 投票
0 回答
204 浏览

c# - 我需要做什么才能知道何时加载和绘制图像?EasyHook/DLL 注入

我正在使用 easyHook 进行 DLL 注入,以了解何时在 3d 方应用程序窗口中写入文本。

此应用程序还在其窗口中绘制图像。我知道这张图片的路径/名称(假设路径是:C:\ImageLoadedByExternalProgramAndDrawnInTheWindow.png)

但是,我不知道要准确地挂钩什么才能知道何时调用此图像以进行绘制。我应该挂钩什么功能?

我查看了 API Monitor 并看到了这个:

在此处输入图像描述

但我不知道如何正确使用它,所以不确定是什么函数调用它。或者...我只需要在 kernelbase.dll 中挂钩 RtlIsDosPath...?

萨米