修改二进制文件中的游戏设置

时间:2011-07-12 12:19:51

标签: assembly binary hex

(我在游戏上问了这个问题,但是关闭了,ppl建议我在Stackoverflow上询问。如果这不合适,请在关闭之前建议一个更好的地方。谢谢。)

在游戏中作弊的一种常见方法是使用内存扫描工具来追踪您想要更改的值。然而另一种常见的欺骗方法是修改二进制文件。

例如,在游戏中,当你杀死一个敌人时你获得+5 exp,并且通过将二进制存储器中的5到50改为你可以得到+50 exp。据我所知,很多iPhone游戏作弊都是这样的,需要你修补二进制文件或使用HEX编辑器。

我对黑客如何找到设置感兴趣。 找出特定值所在的二进制文件以及相应的偏移量的一般方法/工具是什么?如果它是一个非常唯一的数字或ascii字符串,如3219或{{ 1}},你可以只搜索十六进制值,但如果它是一个常见值,如1?

2 个答案:

答案 0 :(得分:4)

您可以反汇编游戏可执行文件,这样您原则上可以知道每个内存位置的作用。这对大多数游戏来说可能都不实用。

更直接针对特定值的另外两种方法:

  • 在获得经验之前使用调试器暂停游戏,并逐步查看代码以查看受影响的内存位置。
  • 虽然肯定会有许多位置包含与您的体验相同的数字,但您可以快速缩小它们:假设您有50个EXP,转储所有内存位置的列表*包含50,然后获得更多EXP(比如20) )现在您可以排除所有未更改为70的位置。

*您可能正在搜索32/64位整数而不是单字节位置。

答案 1 :(得分:0)

尝试通过反复试验找出文件格式。程序员通常不会故意让事情变得困难,除非游戏是MMO或巨大的大片,容易作弊。如果你正在玩一款游戏,它可以为你提供杀死slu的游戏,这里有一些基本的步骤:

  1. 找到“Monster”文件或数据库表。这包含有关所有怪物的信息。
  2. 搜索一些已知信息。在这种情况下,怪物的名称是“Slug”。
  3. 使用十六进制编辑器检查怪物名称附近的字节。查找包含值“50”的DWORD,WORD或BYTE。
  4. 将50更改为51并保存更改。杀死“Slug”并查看exp是否发生变化。
  5. 如果你仍然得到50 exp,请在“Slug”附近尝试一些其他值并重复。
  6. 有足够的时间和耐心,您最终会找出整个文件格式,并能够随意更改任何内容。