【发布时间】:2010-07-20 22:57:57
【问题描述】:
我想知道 xfire 和/或 Steam 使用什么技术来覆盖游戏。 我正在尝试做类似的事情,我真的很想知道什么是侵入性最小的方式,即不会提醒任何反作弊系统。我不需要游戏中的任何信息(没有墙黑客BS)。我基本上只是想在游戏中显示一个带有自定义内容的矩形。
PS。我通过谷歌搜索看到了一些例子,但其中大多数看起来很老。它们仍然是不错的选择吗?
【问题讨论】:
我想知道 xfire 和/或 Steam 使用什么技术来覆盖游戏。 我正在尝试做类似的事情,我真的很想知道什么是侵入性最小的方式,即不会提醒任何反作弊系统。我不需要游戏中的任何信息(没有墙黑客BS)。我基本上只是想在游戏中显示一个带有自定义内容的矩形。
PS。我通过谷歌搜索看到了一些例子,但其中大多数看起来很老。它们仍然是不错的选择吗?
【问题讨论】:
据我所知,xfire 和 fraps 使用 directx 函数挂钩
这样他们就可以在调用某个函数时执行自己的(绘图)代码
一旦你找到了你需要的函数并将它们连接起来,你还需要一个directx设备的句柄,这样你就可以用它来做你自己的绘图
directx的endscene函数可能是最常用的
谷歌搜索“trampoline hook c++”并从那里开始
有许多方法,其中一些广为人知且相对简单,
其他更难找到和实施
那是因为人们不遗余力地寻找新技术,因为反作弊软件不喜欢你乱搞(重要或潜在可利用的)功能
因为它被认为是黑客攻击......
哦,我知道这是一个老问题 但我自己是通过谷歌来到这里的,可能会有更多人这样做 所以至少它现在有了答案
【讨论】:
几天前,我问过这个问题。这也可能对您有所帮助。阅读 Alan 的回复和他提到的链接:How to overlay graphics on Windows games?
【讨论】:
由于我没有看到示例,我无法判断它们是否适合使用。
我想我不会给你解决方案,但也许我会为你指明正确的方向。您可能正在使用 Windows 作为平台,并且每个窗口都有它的句柄。所以如果你能得到这个手柄,也许你可以直接进入游戏。
您现在应该可以行动了,就好像您的程序就是游戏本身一样。但是我没有尝试这样做,它可能会导致您遇到很多问题。
如果你只想画东西,另一种方法就是以正在做类似事情的东西为例。 FRAPS 或其他 FPS 测量工具呢?他们都在你的屏幕上绘制 FPS 数字。看看那里的开源应用程序并找到其中的任何部分你需要的东西应该是个好主意。然后只需对代码进行一点分解。
【讨论】: