Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Проблема с поиском бвзовых адресов клиента.

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы
Старый 26.02.2024, 23:12   #1
 Разведчик
Аватар для sasha21l(№2 )
 
sasha21l(№2 ) никому не известный тип
Регистрация: 24.10.2010
Сообщений: 7
Популярность: 12
Сказал(а) спасибо: 1
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Проблема с поиском бвзовых адресов клиента.

Ищу с помощью чит инжин, нахожу статические зелененькие адреса, но они выглядят странно, например elementclient.exe + 0089DC20. По началу все работает, но потом либо они вообще исчезают, либо по этому адресу в памяти находиться 0 а не следующий адрес. Подскажите хотя-бы что это за защита, что-бы я нагуглил. Спасибо.

Добавлено через 13 часов 0 минут
Нагуглил это ASLR (address space layout randomization), подскажите как ее обойти. Тут еще кто-то остался кто шарит?

Последний раз редактировалось sasha21l(№2 ); 27.02.2024 в 12:13. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 14.09.2024, 05:09   #2
 Разведчик
Аватар для krysun
 
krysun на правильном пути
Регистрация: 01.07.2009
Сообщений: 23
Популярность: 83
Сказал(а) спасибо: 33
Поблагодарили 14 раз(а) в 11 сообщениях
Отправить сообщение для krysun с помощью Skype™
 
По умолчанию Re: Проблема с поиском бвзовых адресов клиента.

Цитата:
Сообщение от sasha21l(№2 )Посмотреть сообщение
Ищу с помощью чит инжин, нахожу статические зелененькие адреса, но они выглядят странно, например elementclient.exe + 0089DC20. По началу все работает, но потом либо они вообще исчезают, либо по этому адресу в памяти находиться 0 а не следующий адрес. Подскажите хотя-бы что это за защита, что-бы я нагуглил. Спасибо.

Добавлено через 13 часов 0 минут
Нагуглил это ASLR (address space layout randomization), подскажите как ее обойти. Тут еще кто-то остался кто шарит?

Код:
unit uOFFSETS;
uses
  Winapi.Windows, System.SysUtils, Vcl.Forms, TLHelp32;
////////////////////////////////////////////////////////////////////////////////
function GetBase:Dword;
const
  procName = 'ElementClient.exe';
var
  m_pID: integer;
  module: TModuleEntry32;
  //****************************************************************************
  procedure GetPID;
  var
    snapshot: THandle;
    pInfo: PROCESSENTRY32;
  begin
    snapshot := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    pInfo.dwSize := sizeof(PROCESSENTRY32);
    if (Process32First(snapshot, pInfo)) then
    begin
      while (Process32Next(snapshot, pInfo)) do
      begin
        if UpperCase(pInfo.szExeFile) = UpperCase(procName) then
        begin
          m_pID := pInfo.th32ProcessID;
          CloseHandle(snapshot);
          exit;
        end;
      end;
    end;
    m_pID := 0;
    CloseHandle(snapshot);
    exit;
  end;
  //****************************************************************************
  function GetModuleInfo(const module_name: PChar; main_process: boolean): TModuleEntry32;
  var
    snapshot: THandle;
    module: TModuleEntry32;
  begin
    snapshot := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, m_pID);
    module.dwSize := sizeof(TModuleEntry32);
    if (Module32First(snapshot, module)) then
    begin
      if (main_process) then
      begin
        CloseHandle(snapshot);
        result := module;
      end;
      while (Module32Next(snapshot, module)) do
      begin
        if (StrIComp(PChar(ExtractFileName(module.szModule)), PChar(module_name)) = 0) then
        begin
          CloseHandle(snapshot);
          result := module;
        end;
      end;
    end;
    result := module;
  end;
//******************************************************************************
begin
  GetPID;
  if m_pID<>0 then
  begin
    module          := GetModuleInfo(nil, true);
    module_hModule  := module.hModule;         // В классике 0х00400000, в реале всегда разный
    Result := module.hModule + $BD6450;                    // Base Addr

    // $BD6450 -  не меняеться, или меняеться с обновой.
    // Найди BA, отними hModule -получишь это смещение.

    // С остальными так же (WalkCall, PackCall, SkillCall, OnlineFlag etc...)
    // Game            := module.hModule + $BD98CC;  // $400000+$BD98CC = GameAddr (BA+$1C)
    // Base            := module.hModule + $BD6450;  // BA
end;

Последний раз редактировалось krysun; 15.09.2024 в 13:29. Причина: Уточнение версии
  Ответить с цитированием
Старый 18.10.2024, 01:14   #3
 Разведчик
Аватар для krysun
 
krysun на правильном пути
Регистрация: 01.07.2009
Сообщений: 23
Популярность: 83
Сказал(а) спасибо: 33
Поблагодарили 14 раз(а) в 11 сообщениях
Отправить сообщение для krysun с помощью Skype™
 
По умолчанию Re: Проблема с поиском бвзовых адресов клиента.

Вопрос был в другом у автора топика.
У него сам по себе меняется базовый.
По факту меняет смещение базового, т.к. сам Хидер модуля не стандартный (или постоянный) как у большинства EXE-шников (точка входа в само приложение, или может, как-то по другому по умному называется) не 400000, а меняется при переподключении, или перезагрузке компа, или хз от чего оно зависит.
Саму функцию выше написал, а базовый (постоянный) по ПОСТОЯННОМУ смещению всегда на своем месте. До обновы, конечно)
---
ПыСы: Клиент камбэк (обе версии)

Последний раз редактировалось krysun; 18.10.2024 в 01:17.
  Ответить с цитированием
Старый 18.10.2024, 21:36   #4
 Разведчик
Аватар для LOLyta111
 
LOLyta111 никому не известный тип
Регистрация: 12.07.2022
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Проблема с поиском бвзовых адресов клиента.

Поняла, про что вы говорите.

Цитата:
У него сам по себе меняется базовый

Да, меняется адрес исполняемого файла ".exe"

Цитата:
PE-файл может быть загружен по адресу, отличному от того, для которого он был создан (это свойство называется перемещаемостью), при этом система автоматически корректирует все ссылки на абсолютные адреса, заменяя их новыми значениями. В результате образ файла в памяти не будет соответствовать тому, что записано на диске. И это происходит после каждой перезагрузки системы, а порой даже перезапуска приложения. Всякий раз PE-файл помещается по новому адресу.

Вдобавок к этому если раньше (до «Висты») системный загрузчик мог перемещать только DLL (в то же время, если ему не удавалось разместить в памяти по заданным адресам .exe, Windows выдавала ошибку загрузки модуля), то теперь исполняемые файлы тоже подвержены перемещению.

В Engine ПКМ по любому найденному адресу->Dissasemble this memory region->Tools->Dissect PE Headers.

На С++ код выглядит примерно аналогично вашему.

На пилоте можно проще, Сtrl+A по окну и:
Цитата:
--lua
function getExeAddress()
return relativeaddress2absolute("elementclient.exe")
end

Ну и, соответственно, значение берется как-то так:
[ [ getExeAddress()(меняется каждый раз при перезапуске игры)+ оффсет до игры, инстанс класса CECGameRun(меняется каждый раз при обнове) ] + оффсет до персонажа(условно постоянный) ] + оффсет до ХП(условно постоянный)

как-то не было таких проблем, поэтому не поняла вопрос.

Добавлено через 1 час 19 минут
Если автор искал в Engine при добавлении в список адресов "elementclient.exe" он в любом случае корректно адрес выдаст для модуля. По-моему просто неправильно нашли статический базовый адрес / или напоролись на структуру у которой смещение определяется по значениям из регистров
Цитата:
По началу все работает, но потом либо они вообще исчезают, либо по этому адресу в памяти находиться 0 а не следующий адрес

Скорее всего, автор искал что-то в массиве или хэшмапе

Последний раз редактировалось LOLyta111; 18.10.2024 в 23:00. Причина: Добавлено сообщение
  Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с поиском адресов molei Общение и обсуждение Perfect World 0 03.10.2012 16:36
[Помогите!] Проблема с поиском серверов на СТИМе Си Джи Прочий софт для Counter-Strike 5 24.08.2011 07:06
Проблема с поиском CkpuIIa4 Общение и обсуждение, архив Lineage 2 3 19.07.2010 18:16

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 09:38.

Пишите нам: [email protected]
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net