Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

[C++] Помогите с поиском адресов

Забаненный
Забаненный
Статус
Оффлайн
Регистрация
19 Ноя 2017
Сообщения
78
Реакции
1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я нашел куда загружается server.dll. Если посмотреть в Cheat Engine, то все правильно. Если дописываю в своем коде то число, которое дописывает Cheat Engine в pointer ["server.dll" + число], то получаю другой адрес. Как найти этот адрес?

За ответ спасибо Крайслеру
Код:
Expand Collapse Copy
            DWORD dll = serverDll + 0x009405D4; // server.dll + циферки, которые в cheat engine
            DWORD dll2 = 0;
            ReadProcessMemory(Proc, (LPCVOID*)dll, &dll2, sizeof(DWORD), NULL); // что находится по адресу выше
            DWORD dll3 = dll2 + 0x21C;  // прибавление к адресу offset, данный до здоровья
            DWORD dll4 = 0;
            ReadProcessMemory(Proc, (LPCVOID*)dll3, &dll4, sizeof(DWORD), NULL); // конечное значение
 
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>

using namespace std;

const DWORD hp_off = 0x21C;
const DWORD x_off = 0x1AC;
const DWORD y_off = 0x19C;
const DWORD z_off = 0x1BC;

DWORD GetModuleNamePointer(const char *LPSTRModuleName, DWORD DwordProcessId);
DWORD GetServer;
DWORD pID;

HWND hWindow;

void Main() {
    SetConsoleTitle("Cheat CsGo");

    hWindow = FindWindow(0, "Counter-Strike: Global Offensive");
    GetWindowThreadProcessId(hWindow, &pID);
    if (hWindow == NULL) {
        cout << "Cannot find game." << endl;
        Sleep(3000);
        exit(1);
    } else {
        HANDLE Proc;
        Proc = OpenProcess(PROCESS_ALL_ACCESS, 0, pID);
        if (Proc == NULL) {
            cout << "Cannot find procces." << endl;
            Sleep(3000);
            exit(1);
        } else {
            GetServer = GetModuleNamePointer("server.dll", pID); // получает адрес загрузки server.dll
            DWORD dll = GetServer + 0x009405D4; // к server.dll прибавляет то число из cheat engine
            cout << GetServer << endl; // выводит адрес загрузки dll  // правильно
            cout << dll << endl; // выводит dll + число // неправильно
            system("pause");
        }
    }
}

DWORD GetModuleNamePointer(const char *LPSTRModuleName, DWORD DwordProcessId) { // функция по нахождению адреса загрузки dll
    MODULEENTRY32 lpModuleEntry = { 0 };
    HANDLE hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, DwordProcessId);
    if (!hSnapShot)
        return NULL;
    lpModuleEntry.dwSize = sizeof(lpModuleEntry);
    BOOL RunModule = Module32First(hSnapShot, &lpModuleEntry);
    while (RunModule) {
        if (!strcmp(lpModuleEntry.szModule, LPSTRModuleName)) {
            CloseHandle(hSnapShot);
            return (DWORD)lpModuleEntry.modBaseAddr;
        }
        RunModule = Module32Next(hSnapShot, &lpModuleEntry);
    }
    CloseHandle(hSnapShot);
    return NULL;
}

int main()
{
    Main();
}
 
естественно не верно, тебе нужно прочитать что по адресу лежит:

Код:
Expand Collapse Copy
        HANDLE Proc = OpenProcess(PROCESS_ALL_ACCESS, 0, pID);
        if (Proc == NULL)
        {
            cout << "Cannot find procces." << endl;
            Sleep(3000);
            exit(1);
        } else
        {
            GetServer = GetModuleNamePointer("server.dll", pID); // получает адрес загрузки server.dll
            DWORD dwAdress = GetServer + 0x009405D4; // к server.dll прибавляет то число из cheat engine
            cout << GetServer << endl; // выводит адрес загрузки dll  // правильно
            cout << dwAdress << endl; // выводит dll + число // неправильно
            
            DWORD realPointer = 0;
            ReadProcessMemory(Proc, (LPCVOID)dwAdress, &realPointer, sizeof(DWORD), NULL);
            printf_s("Real Pointer =  0x%X", realPointer);
            system("pause");
        }
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
естественно не верно, тебе нужно прочитать что по адресу лежит:

Код:
Expand Collapse Copy
        HANDLE Proc = OpenProcess(PROCESS_ALL_ACCESS, 0, pID);
        if (Proc == NULL)
        {
            cout << "Cannot find procces." << endl;
            Sleep(3000);
            exit(1);
        } else
        {
            GetServer = GetModuleNamePointer("server.dll", pID); // получает адрес загрузки server.dll
            DWORD dwAdress = GetServer + 0x009405D4; // к server.dll прибавляет то число из cheat engine
            cout << GetServer << endl; // выводит адрес загрузки dll  // правильно
            cout << dwAdress << endl; // выводит dll + число // неправильно
         
            DWORD realPointer = 0;
            ReadProcessMemory(Proc, (LPCVOID)dwAdress, &realPointer, sizeof(DWORD), NULL);
            printf_s("Real Pointer =  0x%X", realPointer);
            system("pause");
        }
Я так понимаю, что realPointer + 0x9405D4 ?
По адресу лежит 0x905A4D
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Последнее редактирование:
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу