Я пытаюсь поиграть с CounterStrike, чтобы узнать что-то о редактировании памяти в C ++. Я использовал дампер смещения, чтобы получить статические указатели и смещения, которые приведут к временным адресам dw_LocalPlayer, m_fFlags и dw_ForceJump. Я не использую какие-либо классы редактирования памяти, такие как VAMemory.dll, просто ReadProcessMemory. Я обнаружил, что когда игрок находится в воздухе, значение m_fFlags равно «256». Когда он на земле, это «257». Тем не менее, я не могу прочитать эти значения после получения временного адреса. Вот код:
// ConsoleApplication1.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
//
#include "stdafx.h"#include <iostream>
#include <Windows.h>
#include <cstdint>
#define dwLocalPlayer 0xAB06EC
#define dwForceJump 0x4D6A684
#define fFlags 0x100
int main()
{
HWND hwnd = FindWindowA(NULL, "Counter-Strike: Global Offensive");
if (hwnd == NULL)
{
std::cout << "Error!" << std::endl;
exit(-1);
system("PAUSE");
}
else
{
DWORD pid = GetWindowThreadProcessId(hwnd, &pid);
HANDLE pHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);DWORD tempadress;
ReadProcessMemory(pHandle, (PBYTE*)dwLocalPlayer, &tempadress, sizeof(tempadress), NULL);
DWORD fl_Onground = tempadress + fFlags;
std::cout << fl_Onground << "\n" << &fl_Onground << std::endl;
system("PAUSE");
}
return 0;
}
Я был бы очень признателен за помощь и предложения по коду, так как я застрял на этом несколько дней назад. Я только пытаюсь получить знания о C ++ здесь, я не хочу кодировать какие-либо читы или еще что-то …
Задача ещё не решена.
Других решений пока нет …