【发布时间】: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