C++ Вопрос Чтение/Запись в память игры

Начинающий
Статус
Оффлайн
Регистрация
11 Авг 2021
Сообщения
19
Реакции[?]
0
Поинты[?]
0
C++:
#include <Windows.h>
#include <iostream>

using namespace std;

int main() {
    setlocale(0, "Rus");
    DWORD pid = 0;
    cout << "PID: ";
    cin >> dec >> pid;

    HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
    if (hProcess == NULL) {
        cout << "Ошибка открытия процесса. GetLastError = " << dec << GetLastError() << endl;
        system("pause");
        return EXIT_FAILURE;
    }

    
    uintptr_t memoryAddress = 0x0;
    cout << "Введите адресс памяти : 0x";
    cin >> hex >> memoryAddress;

    
    int intToWrite = 0;
    cout << "Введите желаемое число : ";
    cin >> dec >> intToWrite;

    
    BOOL wpmReturn = WriteProcessMemory(hProcess, (LPVOID)memoryAddress, &intToWrite, sizeof(int), NULL);
    if (wpmReturn == FALSE) {
        cout << "Ошибка записи в память. GetLastError = " << dec << GetLastError() << endl;
        system("pause");
        return EXIT_FAILURE;
    }

    cout << "Успешно!" << endl;

    cout << "Press ENTER to quit." << endl;
    system("pause > nul");

    return EXIT_SUCCESS;
}
Как сделать так чтобы не приходилось вводить PID , а что бы он сам искал его именно определенной программы?
 
всем прив верите ли вы в призраков ???
Забаненный
Статус
Оффлайн
Регистрация
17 Авг 2018
Сообщения
863
Реакции[?]
338
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
int GetProcessIdByName(wchar_t* name) {
    PROCESSENTRY32 entry;
    entry.dwSize = sizeof(PROCESSENTRY32);

    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);

    if (Process32First(snapshot, &entry) == TRUE) {
        while (Process32Next(snapshot, &entry) == TRUE) {
            if (_wcsicmp(entry.szExeFile, name) == 0) {
                CloseHandle(snapshot);
                return entry.th32ProcessID;
            }
        }
    }

    CloseHandle(snapshot);
    return 0;
}



DWORD pid = GetProcessIdByName("application.exe");
 
Последнее редактирование:
Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,442
Реакции[?]
671
Поинты[?]
30K
Как сделать так чтобы не приходилось вводить PID , а что бы он сам искал его именно определенной программы?

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.


C++:
int GetProcessIdByName(wchar_t* name) {
    PROCESSENTRY32 entry;
    entry.dwSize = sizeof(PROCESSENTRY32);

    HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);

    if (Process32First(snapshot, &entry) == TRUE) {
        while (Process32Next(snapshot, &entry) == TRUE) {
            if (_wcsicmp(entry.szExeFile, name) == 0) {
                return entry.th32ProcessID;
            }
        }
    }

    CloseHandle(snapshot);
    return 0;
}



DWORD pid = GetProcessIdByName("application.exe");
У тебя при удачном поиске значение вернется, но камшот не закроется.
 
всем прив верите ли вы в призраков ???
Забаненный
Статус
Оффлайн
Регистрация
17 Авг 2018
Сообщения
863
Реакции[?]
338
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу