为什么大多数黑客/改装者使用指针而不是编辑游戏可执行文件的静态区域?例如,我下载了很多培训师,我可以看到大多数培训师都在使用指针。我更喜欢在值上设置一个断点并跟踪调用者函数,这种方法在100%的时间中只需要nop指令或对其进行更改,或者最糟糕的是使我的子例程和代码陷入困境。 br />我的方法是否有我不知道的缺点?

#1 楼

这件事情是由很多原因导致的。我会记下我想起的一堆东西。


许多黑客都使用Cheat Engine的内置自动指针扫描功能,因为它很容易。即使他们不了解正在发生的事情,他们过去所遵循的YouTube视频和/或教程也已使他们的方法陷入困境。
与高级脚本相比,指针往往更易于编码为教练需要代码保存/内存分配以提供代码注入。这是一个主观要点,但是我已经注意到了。当然,如果所需要做的就是用NOP覆盖X个字节,而那个人没有这样做,那么,请参阅我的第一点或下面的第5点。任何给定的培训师,他们可能会选择为用户提供更大的灵活性,而不是简单地进行NOP处理或修改写入/读取。 -切刀越好。他们中的许多人都强调使用指针来使训练器的生成尽可能简单。
根据您从哪里获得训练器,在CE的指针扫描功能和更著名的作弊者使用的自定义工具之间,它是对于某些人来说,走指针路线的速度更快,以便尽快找到培训师,而不必一开始担心充斥基于脚本的作弊行为的错误/测试需求。指针随着更新游戏代码而易于发生其他变化,但值得一提的是,人们可能会选择自己的想法。让您思考为什么有人会选择基于脚本的东西的指针。

评论


我想到了另一件事,指针在任何更新上都不会改变,是真的吗?

– Cyb3r
18年4月22日在7:16

这就是我在上面第6点中提到的内容。指针有可能像其他任何东西一样进行更改,具体取决于更新。但是,根据研究任何给定游戏所花费的时间,您可能会发现某些东西的指针将在更新期间持续存在。直到您深入研究,您才真正知道情况会怎样(或者,可能是这样,您选择一种方法并希望达到最佳状态,然后再处理如果作弊行为中断就可以采取的任何措施)。

–dsasmblr
18年4月22日在15:44

抱歉,我刚刚注意到您编辑了该帖子,我之前已经阅读了您的帖子,但没有时间发表评论。谢谢您的贡献!

– Cyb3r
18年4月22日在15:49

#2 楼

有些程序在更改代码时不喜欢它,有些保护程序会检查内存修改。

评论


好点子。您能否详细说明他们如何实施这种反作弊。他们是在计算可执行的哈希,然后在运行时检查它吗?因为我曾经在寻找禁止作弊功能的游戏时遇到麻烦,他们禁止玩家修改可执行文件中的任何字节。

– Cyb3r
18年4月22日在7:21

很好的补充,COB RCE。除此之外,某些程序还会检查内存地址中的值是否有任何修改,因此指针也不一定有效(这与游戏密切相关,因此您在学习时会遇到什么挑战)。我最近入侵的两款游戏都有一些有趣的反作弊实现,可以观察地址中的值修改以及游戏代码的修改(例如Dark Souls 3,它可以循环扫描代码并恢复任何修改的字节)。在这两个游戏中,如果您修改了一个值,则一个将杀死您的角色,而另一个将关闭该游戏。

–dsasmblr
18年4月22日在15:49

@dsasmblr您是否绕过它并以某种方式使作弊工作有效?

– Cyb3r
18年4月22日在15:55

关于您的问题0x00,您的猜测与任何问题都一样。反作弊有很多技巧。学习并熟悉其中许多方法的一种好方法是花时间在MPGH和UnknownCheats(使用Google)等社区中,并将所学的知识付诸实践。根据目标的不同,它可能会变得昂贵。期望被禁止,然后必须再次购买游戏。关于第二个问题,是的,我已经解决了。他们是有趣的挑战。尝试一下:Caveblazers和UnEpic是两个游戏。尝试在每个游戏中修改黄金... =)

–dsasmblr
18年4月22日在15:58

我猜每个保护都有自己的实现,我想到的(不是特定于游戏的)是VMProtect和Themida,第一个说在达到OEP之前就保护了不可写的部分,第二个说了CRC没有精确说明其范围,因为@dsasmblr表示应该是循环扫描,检查代码并恢复/崩溃游戏(如果游戏已打包,则无法还原已修改的字节,因为它们是在运行时计算的,因此可能通过检查一些CRC并在发生故障的情况下崩溃来完成)

– COB RCE
18年4月22日在19:53