C++ 基本内存地址中的[byte]需要使用哪种数据类型?
我正在开发一个“黑客”程序,该程序可以“破解”GTA:San Andreas 我正在使用C++ 基本内存地址中的[byte]需要使用哪种数据类型?,c++,window,C++,Window,我正在开发一个“黑客”程序,该程序可以“破解”GTA:San Andreas 我正在使用WriteProcessMemory函数将数据写入特定项的基本内存,并使用FindWindow查找GTA:sanandreas窗口 我的问题是,第二个和第三个WriteProcessMemory不工作,它不影响游戏,也不做任何事情 我看到了我需要的基本内存地址和数据类型,您可以向下滚动到作弊选项,查看它们需要的基本内存和数据类型[byte] 示例: #include <iostream> #inc
WriteProcessMemory
函数将数据写入特定项的基本内存,并使用FindWindow
查找GTA:sanandreas窗口
我的问题是,第二个和第三个WriteProcessMemory
不工作,它不影响游戏,也不做任何事情
我看到了我需要的基本内存地址和数据类型,您可以向下滚动到作弊选项,查看它们需要的基本内存和数据类型[byte]
示例:
#include <iostream>
#include <Windows.h>
using namespace std;
void GameHack(LPCSTR winname)
{
int newValue = 125555;
byte bytes = 1;
HWND GameWindow = FindWindowA(NULL, winname);
if (GameWindow == NULL) {
auto errorcode = GetLastError();
std::cout << "Failed to FindWindow & Error Code: " << errorcode;
Sleep(3000);
exit(1);
}
else {
DWORD procID;
GetWindowThreadProcessId(GameWindow, &procID);
HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, procID);
if (handle == NULL) { // compare handle to NULL, not procID to FALSE
auto errorcode = GetLastError(); // 1st thing to do
std::cout << "procID Failed & Error Code: " << errorcode;
Sleep(3000);
exit(1);
}
else {
int option;
cout << "\n 1. Money Booster!\n 2. Weapon Set 1\n 3. Max Muscle\n\n";
cout << " Choose One Option You Want To Do: "; cin >> option;
if (option == 1) {
WriteProcessMemory(handle, (LPVOID)0x00C0F188, &newValue, sizeof(newValue), NULL);
}
if (option == 2) {
WriteProcessMemory(handle, (LPVOID)0x969130, &bytes, sizeof(bytes), NULL);
}
if (option == 3) {
WriteProcessMemory(handle, (LPVOID)0x969155, &bytes, sizeof(bytes), NULL);
}
CloseHandle(handle);
}
}
}
int main()
{
GameHack("GTA: San Andreas");
return 0;
}
#包括
#包括
使用名称空间std;
void GameHack(LPCSTR winname)
{
int newValue=125555;
字节=1;
HWND GameWindow=FindWindowA(NULL,winname);
如果(GameWindow==NULL){
自动错误代码=GetLastError();
std::cout您链接的网站列出了需要用作字节的数据类型,您正在这样做。如果您的第一个WriteProcessMemory工作,但第二个2不工作,则地址已更改
您的第一个货币地址被列为0x00C0F188,它与网站上列出的地址不同,可以正常工作
如果您必须为钱使用不同的地址,那么很可能所有变量都有不同的地址
您需要首先找到游戏的版本,并将其与指南进行比较。无论哪种方式,最好的解决方案始终是自己反转地址,而不是依赖其他人的工作(可能已经过时)。注意:以下内存地址都不适用于GTA:San Andreas v2.0或3.0(steam)。v2.0及更高版本中的所有地址都已更改或移动。因此无法访问。这是否适用于您的GTA版本?字节最好用std::byte
类型表示,但通常您会看到使用char
。两者都可以使用。@ChrisMM-Hey,[dword]金钱对我来说很有用。我如何检查我的GTA:San Andreas版本?@Frank我曾尝试使用std::byte
并将值设置为1,但仍然无效。有人可以帮助我吗?