我遇到了一个问题,不确定如何做我想做的事情。
我正在使用C++将DLL注入到应用程序中,并且想要修改一个地址。但问题是我不确定如何定位它 - 让我解释一下...
我知道如何使用指针:
int x;
int *myPointer;
myPointer = &x;
*myPointer = 5;
std::cout << x << endl; // 5
我知道你能处理指针:
int x;
int *myPointer;
int **myPointer2;
myPointer = &x;
myPointer2 = &myPointer;
**myPointer = 5;
std::cout << x << endl; // 5
我正在尝试通过将DLL注入到游戏中,并在按下某个键时将弹药设置为固定值,制作一个基本的游戏修改器。注入和按键操作正常,但每次尝试访问内存时都会崩溃。
我已经使用 Cheat Engine 获取了要更改的变量的静态地址以及三个偏移量。
Cheat Engine 中的地址信息如下:
Address: 0288A520 = 19
Type: 4 bytes
0 [0288A520 + 0] -> 0288A520
14 [0288A520 + 14] -> 0288A520
384 [0288A3D0 + 384] -> 02881A30
ac_client.exe+109B74 -> 0288A3D0
我希望可以修改我的DLL中的值19。
如果我关闭游戏并重新打开,我可以通过这些指针获得正确的值,但现在我的问题是我不知道如何在C++中实现这一点。我该如何表示这个静态地址?
我的主线程目前看起来像这样...
DWORD WINAPI Main_Thread(LPVOID lpParam)
{
while(1)
{
if(GetAsyncKeyState(VK_HOME)) {
// Output value here???
}
Sleep(100);
}
}
非常感谢您的帮助。
int *myPointer; myPointer = 0x0288A520; *myPointer=19
- Jerry Jeremiah