GameHackLab[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    не могу понять почему не выводиться базовый адрес игры в трейнере

    Запланировано Прикреплена Закрыта Перенесена Взлом игр (начинающим)
    2 Сообщения 2 Posters 116 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • A
      android
      отредактировано

      Здравствуйте, пишу трейнер для игры MudRunner, на данном этапе пытаюсь вывести базовый адрес игры, но, видимо, что-то делаю не так код скину ниже.
      И касательно самой игры: я пытаюсь найти, скажем там, прочность машины и нашёл все необходимые офсеты, но с топливом ничего не получается.
      Значение как бы есть, но когда его меняешь и заходишь в игру, оно переходит обратно в тот вид до изменения, в чём может быть проблема, можете дать совет?
      прошу простить меня если я задаю совсем очевидные вопросы просто в этом я новичок и видимо что-то не до конца понимаю
      ещё раз простите если задал очевидный вопрос

      вот код:

      #include <Windows.h>
      #include <tlhelp32.h>
      #include <iostream>
      using namespace std;
      
      DWORD64 GetModuleBaseAddress(DWORD procId, const char* modName)
      {
          DWORD64 modBaseAddr = 0;
          HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE32, procId); 
      
          MODULEENTRY32 modEntry;
          modEntry.dwSize = sizeof(modEntry);
        
          if (Module32First(hSnap, &modEntry))
          {
              do
              {
                  if (!_stricmp(modEntry.szModule, modName))
                  {
                      modBaseAddr = (uintptr_t)modEntry.modBaseAddr;
                      break;
                  }
              } while (Module32Next(hSnap, &modEntry));
          }
      
          CloseHandle(hSnap);
          return modBaseAddr;
      }
      
      int main()
      {
          setlocale(LC_ALL, "ru");
          PROCESSENTRY32 entry;
          entry.dwSize = sizeof(PROCESSENTRY32);
          DWORD ID = 0;
          HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
      
          if (Process32First(snapshot, &entry) == TRUE)
          {
              while (Process32Next(snapshot, &entry) == TRUE)
              {
                  if (_stricmp(entry.szExeFile, "MudRunner.exe") == 0) 
                  {
                      ID = entry.th32ProcessID;
                      break;
                  }
              }
          }
      
          CloseHandle(snapshot);
      
          if (ID == 0) {
              cout << "Приложение не запущено" << endl;
              
          }
      
          DWORD moduleBase = GetModuleBaseAddress(ID, "MudRunner.exe");
         cout<<"ID процесса: "<<ID<<endl;
         cout << "Базовый адрес модуля: " << moduleBase << endl;
      
          system("pause");
          return 0;
      }
      
      __fastcall_ 1 ответ Последний ответ Ответить Цитировать 0
      • __fastcall_
        __fastcall @android
        отредактировано

        @android Возможно некая функция в игре постоянно туда пишет своё значение.

        1 ответ Последний ответ Ответить Цитировать 0
        • Первое сообщение
          Последнее сообщение