|
Принцип понял, однако возникла некоторая проблема.
Нашёл указатель второго уровня:
"Main.exe"+0012F320
50C
1C0
Определил базовый адрес программы:
0x1012F454
И пытаюсь прочитать значение переменной, отвечающей за монеты таким образом:
#include "http.h"
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include <cstring>
#include <random>
#include <urlmon.h>
#include<Windows.h>
#include <Shellapi.h>
#include <process.h>
#include <tlhelp32.h>
#include <psapi.h>
#pragma comment( lib, "psapi" )
#pragma comment (lib, "urlmon.lib")
#pragma warning(disable: 4996)
using namespace std;
// 0x002A1D28
DWORD Base_Adress = 0x1012F454;
DWORD pid;
DWORD value_1 = 0x0012F320;
DWORD get_value;
int main()
{
HWND hwnd = FindWindowA(0, ("Master of Defense by Voodoo Dimention (c) 2006 "));
GetWindowThreadProcessId(hwnd, &pid);
if (hwnd)
cout << "process id: " << pid << endl;
else
cout << "Window isn't found." << endl;
HANDLE phandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
ReadProcessMemory(phandle, (LPVOID)(Base_Adress + value_1), &get_value, sizeof(get_value), 0);
value_1 = get_value + 0x50C;
ReadProcessMemory(phandle, (LPVOID)(value_1), &get_value, sizeof(get_value), 0);
value_1 = get_value + 0x1C0;
ReadProcessMemory(phandle, (LPVOID)(value_1), &get_value, sizeof(get_value), 0);
cout << get_value;
cin.get();
cin.get();
return 0;
}
Однако получаю значение 0.
В чём я ошибся?
Добавлено через 8 минут
Думаю, что проблема в базовом адресе.
Не знаю, как его найти в Cheat Engine.
Определял его через стороннюю программу.
Последний раз редактировалось mraklbrw; 26.12.2016 в 18:06.
Причина: Добавлено сообщение
|