Перейти к содержанию

Проблемка с чтением памяти


Рекомендуемые сообщения

Скрытый текст

#include "stdafx.h"
#include <windows.h>
#include <string.h>
#include <Tlhelp32.h>
#include <iostream>

int main()
{
	using namespace std;

	DWORD address = 0x0AE4;//ping игрока 
	int value = 8;
	DWORD pid;
	HWND hwnd;

	hwnd = FindWindow(NULL,L"Counter-Strike: Global Offensive");
	if (!hwnd) {
		cout << "window not found";
		cin.get();
		   }

	GetWindowThreadProcessId(hwnd,&pid);
	HANDLE phandle = OpenProcess(PROCESS_VM_READ,0,pid);
	if (!phandle) {
		cout << "Couldnt get handle";
		cin.get();
	}

	while (TRUE) {
		ReadProcessMemory(phandle,(void*)address,&value,sizeof(value),0);
		cout << value << "\n";
		Sleep(1000);
	}

}

 

Есть такой код , судя по CS:GO offset dumper , 0x0AE4 это адрес пинга перса(m_iPing). Но программа упорно выводит 8ки в консоль , в чем проблема?

// Читаем правила. Пользуемся тегами кода и спойлера. Если не знаем как , то читаем и смотрим FAQ. На первый раз - устное предупреждение. Garik66/

Ссылка на комментарий
Поделиться на другие сайты

Только что, partoftheworlD сказал:

Это смещение для класса ресурсов. Адрес класса + смещение пинга = твой пинг

А как узнать адрес класса?)

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Dzirt сказал:

А как узнать адрес класса?)

Ищешь пинг к примеру и реверсишь пока не находишь указатель на пинг он будет выглядеть примерно mov регистр, [адрес класса + 0xAE4]

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

52 минуты назад, partoftheworlD сказал:

Ищешь пинг к примеру и реверсишь пока не находишь указатель на пинг он будет выглядеть примерно mov регистр, [адрес класса + 0xAE4]

getLastError() выдает ошибку 299

Ссылка на комментарий
Поделиться на другие сайты

1 час назад, Dzirt сказал:

если хочу узнать хп , складываю , но ничего опять не выходит(

Описывай полностью что ты складываешь, как ты получаешь указатель на структуру localplayer и т.д иначе получаются какие-то отрывки информации.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Перешел на ProcMem
 
Скрытый текст

#include <iostream>
#include "ProcMem.h"
using namespace std;

/*do not change*/
const DWORD teamOffset = 0x00F0;
const DWORD healthOffset = 0xFC;
const DWORD EntLoopDist = 0x10;
/*do not change*/
/*change every update*/
const DWORD PlayerBase = 0x00AA66B8;//LocalPlayer
const DWORD EntityBase = 0x04AC9154;//EntityList
const DWORD crosshairOffset = 0x0000AA70;//CrossHairID
/*change every update*/

void trigger() {
    ProcMem Mem;
    Mem.Process("csgo.exe");
    DWORD ClientDLL = Mem.Module("client.dll");
    DWORD LocalPlayer = Mem.Read<DWORD>(ClientDLL + PlayerBase);
    int LocalTeam = Mem.Read<int>(LocalPlayer + teamOffset);
    int CrossHairID = Mem.Read<int>(LocalPlayer + crosshairOffset);
    DWORD EnemyInCH = Mem.Read<DWORD>(ClientDLL + EntityBase + ((CrossHairID - 1) * EntLoopDist));
    int EnemyHealth = Mem.Read<int>(EnemyInCH + healthOffset); 
    int EnemyTeam = Mem.Read<int>(EnemyInCH + teamOffset);
    cout << Mem.Read<int>(LocalPlayer + healthOffset) << endl;
    
    if (LocalTeam != EnemyTeam && EnemyHealth > 0)
    {
        cout << "yes";
        mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL);
        mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL);
        Sleep(500);
    }
}

int main()
{
    cout << "pusk";
    while (true)
    {
        trigger();
    }
    return 0;
}

 

Yes не выводит , hp отрицательное , стрелять не стреляет

Изменено пользователем Dzirt
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.