Гайд Write/Read ProcessMemory C++

Было ли это полезно

  • Да

    Голосов: 17 94.4%
  • Нет

    Голосов: 1 5.6%

  • Всего проголосовало
    18
Статус
В этой теме нельзя размещать новые ответы.
Забаненный
Статус
Оффлайн
Регистрация
16 Июл 2017
Сообщения
485
Реакции[?]
85
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Здравствуйте , сегодня я хочу показать как можно читать и писать в память .
(Read/Write ProcessMemory)
Данный материал я нашел на просторах интернета и поскольку на форуме нет ничего об этом хочу поведать вам один из способов.
Нам нужны следующие программы : Cheat Engine, Visual Studio , и игра где будем читать/писать значения.
Начнем -
1.Вы должны найти значение в игре с помощью Cheat Engine (Если надо могу сделать гайд , пишите в коменты)
Код:
Адрес: 0B389228 , Тип  : 4 bytes , Значение : 228
2.Создаем проект в VS(Visual Studio) : Консольное приложение (пустой проект/empty project)
Далее добавляем туда файл ресурса/resourece files.
Итак начнем писать код
Подключаем библиотеки и создаём основу
Код:
#include <iostream>
#include <Windows.h>

using namespace std;

int main()
{
int NewValue = 50000; // значение на что хотим подменить , которое хотим написать в памяти
int Read = 0; // значение которое мы прочитем из памяти (у меня оно целое так-что int)

return 0;
}
Далее мы дожны создать
Пожалуйста, авторизуйтесь для просмотра ссылки.
он будет искать наше окно с игрой
Код:
HWND hwnd = FindWindowA(NULL, "Earn To Die 2");

    if (hwnd == NULL) // Если окно не найдено
    {
        cout << "Window not found" << endl;
        Sleep(3000);
        exit(-1);
    }
    else // если найдено
    {

    }
Далее добавляем в если найдено
Код:
{

        DWORD ProcId; // Переменная хранящая в себе ID процесса
        GetWindowThreadProcessId(hwnd, &ProcId); // получение ID процесса
        HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, ProcId); // handle будет открывать для вашей программы вход в окно (если что поправьте)

        if (ProcId = NULL) // в случаи если процес найти не удалось (тоесть если окно закрыто)
        {
            cout << "Process not found" << endl;
            Sleep(3000);
            exit(-1);
        }
        else // если процесс был успешно найден
        {
            WriteProcessMemory(handle, (LPVOID)0x0B389228, &NewValue, sizeof(NewValue), 0); // пишем в память нашу переменную NewValue , к адресу всегда припысывайте 0x так как мы используем 16-ую систему счисления
            ReadProcessMemory(handle, (PBYTE*)0x0B389228, &Read, sizeof(Read), 0); // читаем наш адресс из памяти
            cout << "Our value is : " << Read << endl;
            system("pause");
        }
Также можем сделать кнопку при нажатии на которую будет включаться наш "трейнер"

Код:
else if (GetAsyncKeyState(VK_F1)) // если процесс был успешно найден
А на этом всё . Вы можете задать вопросы в коментарии .
Эта тема создана для новичков
 
Последнее редактирование:
В игре Source SDK
Забаненный
Статус
Оффлайн
Регистрация
10 Янв 2017
Сообщения
2,148
Реакции[?]
806
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
WriteProcessMemory(handle, (LPVOID)0x0B389228, &NewValue, sizeof(NewValue), 0); // пишем в память нашу переменную NewValue , к адресу всегда припысывайте 0x
ReadProcessMemory(handle, (PBYTE*)0x0B389228, &Read, sizeof(Read), 0); // читаем наш адресс из памяти
Или я не понимаю в кодинг или... тут что-то не так?
Откуда ты взял адреса?
Я вообще не пойму, что ты сделал.
Где ты взял имя окна?
 
Забаненный
Статус
Оффлайн
Регистрация
16 Июл 2017
Сообщения
485
Реакции[?]
85
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Или я не понимаю в кодинг или... тут что-то не так?
Откуда ты взял адреса?
Я вообще не пойму, что ты сделал.
Где ты взял имя окна?
Я же писал что нам понадобиться Cheat Engine (не стал писать как им пользоваться, написал если не знаете как пишите)
Путем простого поиска значения в CE(Cheat Engine) я узнал данные о значении (о деньгах в Earn To Die)
Адрес: 0B389228 , Тип : 4 bytes , Значение : 228
Я просто перевел чтоб было понятнее людям

А имя окна я взял посмотрев на него там же написанно к примеру "Minecraft "," The forest"
А не понимаешь, что я делаю из-за того что у тебя другой метод (я писал тебе насчет этого ты проигнорил) поэтому пошарил по инету и нашел этот, расписал и показал
 
Пользователь
Статус
Оффлайн
Регистрация
4 Янв 2018
Сообщения
100
Реакции[?]
32
Поинты[?]
0
Напиши, что мы добавляем "0x" к адресу потому что, указываем на адрес в 16-ой системе счисления.
 
Забаненный
Статус
Оффлайн
Регистрация
16 Июл 2017
Сообщения
485
Реакции[?]
85
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хотел ещё скрины добавить , но это муторно(мне лень) и не стал
 
Напиши, что мы добавляем "0x" к адресу потому что, указываем на адрес в 16-ой системе счисления.
Спасибо за примечание
 
Забаненный
Статус
Оффлайн
Регистрация
12 Май 2017
Сообщения
375
Реакции[?]
11
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу