Перейти к содержанию
Авторизация  
TimaS

[Counter-Strike 1.6] Нужна помощь с указателями с++

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

Тема закрыта. На этот вопрос уже есть ответ здесь: 

 

 

Всем доброго времени суток!

Перейду сразу к делу, дело в том что у меня не получается взять данные с игры counter strike 1.6 через с++

Нашел указатель на патроны, нашел смещения патронов и отдачи, и хотел сделать чит анти отдача

 

 

скрины:

http://prntscr.com/no8b7l

 

 

 

КОД С++:

Спойлер

#include <Windows.h>
#include <iostream>
#include "MemMan.h" // подключенный класс

MemMan MemClass; // использую класс для чтения

struct offsets
{
	DWORD AmmoBase = 0x07BBD9C; // 007BBD9C - адрес указателя,   значение - 06463A7C
	DWORD recoil = 0x100; // Смещение отдачи
	DWORD offset1 = 0x5C0; // Смещение
	DWORD offset2 = 0x7C; // Смещение
} offset;

struct variables
{
	DWORD AmmoBase; // переменная которая хранит значение указателя, то есть (gameModule + offset.AmmoBase) 
	DWORD gameModule; // переменная которая содержит модуль игры
	DWORD AmmoBase1; // переменная
	DWORD AmmoBase2; // переменная
} val;

int main()
{
	int procID = MemClass.getProcess("hl.exe"); // находим процесс игры
	val.gameModule = MemClass.getModule(procID, "hw.dll"); // находим модуль игры
	val.AmmoBase = MemClass.readMem<DWORD>(val.gameModule + offset.AmmoBase); // Находим значение указателя AmmoBase
	val.AmmoBase1 = val.AmmoBase + offset.offset1; // тут просто проверка
	val.AmmoBase2 = val.AmmoBase1 + offset.offset2; // тут просто проверка

	// дальше проверка
	if (val.AmmoBase == NULL || val.AmmoBase1 == NULL)
		while (val.AmmoBase == NULL || val.AmmoBase1 == NULL)
			val.AmmoBase = MemClass.readMem<DWORD>(val.gameModule + offset.AmmoBase);
			val.AmmoBase1 = val.AmmoBase + offset.offset1;
			val.AmmoBase2 = val.AmmoBase1 + offset.offset2;

	while (true)
	{
		DWORD recoild = MemClass.readMem<BYTE>(val.AmmoBase2 + offset.recoil); // находим адрес отдачи
		// if (recoild > 0)
			// MemClass.writeMem<BYTE>(val.AmmoBase + offset.recoil, 0);

		std::cout << recoild << std::endl; // Вывожу значение адреса отдачи
		Sleep(200);
	}

	return 0;
}

 

 

При выполнения кода выводит только 0, не изменяется, видимо другое значение

Буду благодарен за каждую вашу помощь!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

×

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

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