nRaiver Опубликовано 18 августа, 2019 Поделиться Опубликовано 18 августа, 2019 Как отследить адрес "client.dll" ? Я так понимаю в игре используется ASLR и если получить адреса всех подключенных модулей к игре, то "client.dll" находится в адресном пространстве самой игры, а судя по скрину из CE, то "client.dll" находится далеко за адресным пространством игры. CE ведь после перезагрузки берет откуда-то корректный адрес и выдаёт правильное игровое значение. Возможно можно создать костыль, путём создания тренера и потом из своего софта доставать их него этот адрес? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 18 августа, 2019 Поделиться Опубликовано 18 августа, 2019 4 часа назад, nRaiver сказал: "client.dll" находится далеко за адресным пространством игры. Это с чего ты взял? Ссылка на комментарий Поделиться на другие сайты Поделиться
roma912 Опубликовано 18 августа, 2019 Поделиться Опубликовано 18 августа, 2019 Ну если на плюсах, то gemodulehandlea("client.dll"); В СЕ есть отдельный пункт для регионов в контекстном меню Ссылка на комментарий Поделиться на другие сайты Поделиться
nRaiver Опубликовано 18 августа, 2019 Автор Поделиться Опубликовано 18 августа, 2019 2 часа назад, Xipho сказал: Это с чего ты взял? Ну потому что можно узнать начало адресов самой игры, далее взглянуть на адрес "client.dll". Адрес "client.dll" из CE и "client.dll" полученный из процесса игры абсолютно разные. 1 час назад, roma912 сказал: Ну если на плюсах, то gemodulehandlea("client.dll"); В СЕ есть отдельный пункт для регионов в контекстном меню Совсем другой адрес получаем. Вот наглядный пример Game address: 7FF6BC7A0000 Address client.dll from game: 7FFDEFAD0000 Address client.dll from CE: 19B1D61308 2 часа назад, Xipho сказал: Это с чего ты взял? Она за адресным пространством, но она подключается к игре. Посмотрев адреса всех модулей я нашёл ещё 4 модуля, которые очень рядом с искомым модулем, но искомый по адресу далёкому от этих 4х. Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 19 августа, 2019 Поделиться Опубликовано 19 августа, 2019 Не проще написать скрипт со своим статическим смещением для динамического адреса. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 19 августа, 2019 Поделиться Опубликовано 19 августа, 2019 7FF6BC7A0000 - адрес игры 7FFDEFAD0000 - адрес, по которому библиотека была загружена в игру (в пределах адресного пространства игры) 19B1D61308 - базовый адрес самой длл Или я чего-то не понимаю. Ссылка на комментарий Поделиться на другие сайты Поделиться
nRaiver Опубликовано 19 августа, 2019 Автор Поделиться Опубликовано 19 августа, 2019 (изменено) 3 часа назад, Xipho сказал: 7FF6BC7A0000 - адрес игры 7FFDEFAD0000 - адрес, по которому библиотека была загружена в игру (в пределах адресного пространства игры) 19B1D61308 - базовый адрес самой длл Или я чего-то не понимаю. Ну если под понятием "базовый адрес" подразумевается адрес, который выдаёт CE, то да 5 часов назад, krocki сказал: Не проще написать скрипт со своим статическим смещением для динамического адреса. Если имеется ввиду смещение от адреса игры до dll, то даже смещение всегда разное. Даже модули, которые подключаются к игре и находятся почти рядом с искомым модулем, то даже от них смешение всегда разное. Изменено 19 августа, 2019 пользователем nRaiver Ссылка на комментарий Поделиться на другие сайты Поделиться
nRaiver Опубликовано 19 августа, 2019 Автор Поделиться Опубликовано 19 августа, 2019 (изменено) Если это что-то даст, то какая-то закономерность адреса имеется. Вот последние 5 адресов: 28D64F25890 28D64F25890 213ECECD890 14DF8495890 23E68485890 Ну и следовательно от игры смещение тоже постоянно с одинаковыми последними 3 символами. Изменено 19 августа, 2019 пользователем nRaiver Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 19 августа, 2019 Поделиться Опубликовано 19 августа, 2019 В 18.08.2019 в 16:27, nRaiver сказал: а судя по скрину из CE, то "client.dll" находится далеко за адресным пространством игры. Может для начала стоит изучить основы и прочитать про динамическое выделение памяти? ASLR не имеет никакого отношения к тому что на скрине и не понятно, зачем надо было его приплетать, а на скрине глобальный адрес указывающий на структуру, указатель на которую выделяется в куче, а как происходит выделение? Функция просматривает список занятых/свободных областей памяти, размещённых в куче, в поисках свободной области подходящего размера; В случае нехватки свободной памяти может запросить дополнительную память у ОС; Добавляет найденную область в список занятых областей (или помечает область как занятую); Возвращает указатель на начало области памяти; Записывает данные по этому указателю. Ссылка на комментарий Поделиться на другие сайты Поделиться
nRaiver Опубликовано 20 августа, 2019 Автор Поделиться Опубликовано 20 августа, 2019 (изменено) 15 часов назад, partoftheworlD сказал: Может для начала стоит изучить основы и прочитать про динамическое выделение памяти? ASLR не имеет никакого отношения к тому что на скрине и не понятно, зачем надо было его приплетать, а на скрине глобальный адрес указывающий на структуру, указатель на которую выделяется в куче, а как происходит выделение? Функция просматривает список занятых/свободных областей памяти, размещённых в куче, в поисках свободной области подходящего размера; В случае нехватки свободной памяти может запросить дополнительную память у ОС; Добавляет найденную область в список занятых областей (или помечает область как занятую); Возвращает указатель на начало области памяти; Записывает данные по этому указателю. Я видимо слишком туп что бы понять, почему из CE модуль по одному адресу, а этот же модуль, адрес которого получен из списка модулей игры разнятся ? Или в значении по адресу модуля из игры хранится адрес модуля из CE ? Изменено 20 августа, 2019 пользователем nRaiver Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения