【问题标题】:Adding Base Address + Offsets to Modify Value添加基地址 + 偏移量以修改值
【发布时间】:2011-08-27 17:12:44
【问题描述】:

我正在尝试修改 Solitaire 的值,例如分数。

无论如何,我找到了指针指向的地址(使用 CheatEngine),但我很难注入代码来修改分数。我几乎可以肯定这是我将偏移量添加到基值的方式,而不是 Windows DEP、我的注入方法或其他任何东西。

这是我正在使用的代码。

#define BASE    0xFFAEAFA8
#define fOFFSET 0x50
#define sOFFSET 0x14
#define VALUE   55555


*(int*)(((*(int*) BASE) + fOFFSET) + sOFFSET) = VALUE;

每当我注入此代码时,我的游戏就会崩溃。如果我修改 Cheat Engine 中的值而不是代码中的值,则可以正常工作。

【问题讨论】:

  • sOFFSET 是以字节为单位还是以整数 (DWORD) 为单位?
  • 在调试器中运行程序以获取有关它如何“崩溃”的更多详细信息。
  • @Nemo:Solitaire 是一个非常简单的项目,可以用来学习基本的注入和黑客攻击。没有什么比每次启动 WoW 时都必须输入身份验证密钥更烦人的了。 ;)
  • @Kerrek SB - 实际上我不太喜欢。也许我使用了错误的数据类型?我猜它是一个整数,因为我一直扫描的值类型是 4 字节。
  • @juryben:好吧,如果你想以字节为单位推进一个指针,你必须将它转换为char;如果你提前一个int*,它会增加sizeof(int)...

标签: c++ offset object-address


【解决方案1】:

尝试:

volatile int * pScore = (int*)( BASE + fOFFSET + sOFFSET );
*pScore = VALUE;

【讨论】:

    【解决方案2】:

    我做错了什么: 我需要使用ReadProcessMemory() API 来查找指针指向的地址。然后添加偏移量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-24
      • 2018-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      相关资源
      最近更新 更多