问题标签 [detours]

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 投票
3 回答
345 浏览

windows - 有没有办法覆盖 Windows 中现有应用程序的拖放或复制/粘贴行为?

我想扩展一些现有应用程序的拖放行为,我想知道是否有任何方法可以通过监视应用程序的消息循环并注入我自己的消息来破解拖放支持或更改拖放行为。

它还可以监视何时执行粘贴操作,基本上是在控件仅支持粘贴文本并粘贴图像时创建自定义行为。

我认为Detours可能是我最好的选择,但一个问题是我必须为我想要扩展的每个应用程序编写自定义代码。如果 Windows 的设计考虑到可扩展性就好了!

另一方面,是否有任何操作系统支持这种性质的可扩展性?

0 投票
2 回答
11465 浏览

c++ - C++ - 绕道 WinSock Hooking

我想要做的是使用Detours 库挂钩到应用程序 WinSock2 send() 和 recv() 函数(数据包记录器)。

虽然它适用于 send() 函数,但它不适用于 recv() 函数。

这是我的相关代码:

有任何想法吗?

编辑:所以我也连接了 recvfrom() 和 WSARecvEx(),但它仍然没有记录传出的数据包!我已经用我的确切代码更新了我的代码。

0 投票
1 回答
1446 浏览

c++ - 注入的DLL在哪里循环?

所以我有一个应用程序可以启动另一个应用程序并注入我的 DLL(使用 Detours)。入口点是 DllMain。我不能从 DllMain 做很多事情,当然也不能循环。那么如何每隔 x 秒调用一次我的 DLL 监视器函数呢?我读到你不能从 DllMain 创建一个线程(至少在它返回之前),它是真的,因为它让我崩溃了。所以我尝试在附加线程事件中创建它,它让我崩溃了。所以现在我要做的是再次注入它(以防 Detours 失败),这样我就可以获得模块句柄。然后我得到一个创建我的线程的初始化函数的地址。我得到了模块句柄,但我认为我不能得到函数地址。我将函数设为空,但它仍然让我崩溃。所以它甚至没有达到调用函数的程度。Visual Studio 说我没有读取权限。

那我该怎么办?当您不拥有附加的程序 (exe) 时,您如何循环您的 DLL 函数。

函数 Starter 是 extern C 导出的,并且看起来很好检查(它是序数 1)。

我不知道可能出了什么问题,只希望那里有人对这个话题和崩溃有过经验。

这是DLL代码:

谢谢

0 投票
6 回答
12350 浏览

winapi - 为商业应用程序挂钩 Win32 API 的推荐方法是什么?

对于商业应用程序中使用的 API 挂钩库或代码,您有什么建议?

我看过 Microsoft Detours,它似乎非常好,但绝对超出了我期望从我的应用程序中获得的利润的预算。

是否有任何库提供跨 WinXP 和 Vista 的兼容性(如果不是太多要求的话,还有 Windows 7!)?有没有人在商业产品中使用过这样的库?

0 投票
2 回答
1371 浏览

c++ - 无法使 ::WideCharToMultiByte 工作

我有一个用于注入的 DLL。这是通过 CBT-hook 注入的。现在,当通过 CBT 遇到所需的进程时,我已经用我自己的绕过了 WinAPI 的 ExtTextOutW。ExtTextOutW 的规范是:

在我绕道的 ExtTextOutW 中,我试图使用以下代码将 str (LPCWSTR) 转换为多字节:

不幸的是,这不起作用。WideCharToMultiByte 挂起注入的进程。为什么?

0 投票
3 回答
2463 浏览

c++ - 绕行 DrawText

我已经下载并编译了微软绕行库。在我的项目中,我包含了头文件并将.lib文件添加为依赖项。一切都编译没有错误。现在我一直在尝试绕开 DrawText,但由于某种原因,绕开的函数根本没有被调用。类似地,我尝试绕过 Sleep 函数,它按预期工作,并且调用了我绕过的函数。

我不太精通 API 编程业务或任何其他低级活动。我怀疑这可能与我试图在控制台应用程序中执行此操作而不是在 DLL 中完成绕行这一事实有关。我只是觉得奇怪的是,在这种情况下它能够绕道睡眠。

我的方法有问题还是代码有问题?

0 投票
2 回答
1764 浏览

c++ - C++ - 指向类方法的指针

我必须设置一个指向库函数 ( IHTMLDocument2::write) 的指针,它是类的一个方法IHTMLDocument2。(对于好奇的:我必须用 Detours 挂钩该功能)

我不能直接这样做,因为类型不匹配,我也不能使用强制转换(reinterpret_cast<>这是“正确的”afaik 不起作用)

这就是我正在做的事情:

谢谢你的帮助!

0 投票
2 回答
3758 浏览

c++ - C++——Detours(Win32 API劫持)——劫持类方法

很长一段时间以来,我在使用 Detours 劫持函数时都没有遇到任何问题……当我试图劫持类方法时(在我的情况下,IHTMLDocument2::write from mshtml.dll)我遇到了无穷无尽的问题(主要是类型不匹配)。由于我在网上没有找到任何相关的例子,我开始怀疑这是否可以做到。

我的问题是:是否可以使用 Detours 劫持类方法?请问我可以举个例子吗?如果没有,是否可以使用另一个挂钩库以更简单的方式劫持类方法?

提前谢谢各位!

0 投票
1 回答
256 浏览

c++ - 绕道获取全局指针?

我需要得到一个应用程序的协议版本,我对迂回的内部工作了解不多。我通常使用我的一个朋友编写的 detour 类(不是 windows detour,因为这适用于 win/linux)但我想知道是否有人可以给我一些关于如何检索全局指针值的见解?我找到了一个使用它的函数,但是我使用的类只允许你重写函数,而不是访问单独的行。这是来自 IDA 的程序集的样子……

我需要获取“gpszVersionString_ptr”的值

http://www.ampaste.net/m57f13aba

编辑

抱歉,它丢失了格式,所以我不得不将其放大。

0 投票
1 回答
574 浏览

java - 是否可以覆盖 Random 类的 Java 实现?

在 C++ 中使用Windows Detours,我已经看到可以实现函数调用,以便您可以拦截 Windows 基本功能并返回自定义结果集,而无需修改原始函数调用。

我想知道是否有任何方法可以覆盖 Java 随机化调用,以便我可以实现自己的结果集。在上一个问题中,我问是否有任何方法可以让 C# 模仿 Java 随机化函数。作为一种可能的解决方案,在不混淆其他问题的情况下,我想知道是否有人在实施“类似迂回”的解决方案方面有任何经验。