Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

C++ Возможно после инжекта dll получить адреса (offset)

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2019
Сообщения
113
Реакции
3
возможно после инжекта dll получить адреса (offset) с++

суть
1. я написал dll imgui!
2. успешно заинжектилься
3. хочу получить адреса
4. как это сделать ? и реально это?
 
возможно после инжекта dll получить адреса (offset) с++
Конечно возможно.
У каждого процесса свое виртуальное адресное пространство, виртуальное означает что по двум одинаковым адресам у разных процессов могут быть разные данные.
При инжекте длл, ты провоцируешь процесс загрузить чит как библиотеку, при этом виндовый загрузчик проекцирует дллку в память процесса.
Таким образом дллка внутри получает полный доступ к памяти процесса, и она может совершать любые операции чтения и записи как будто это его адресное пространство.
Но стоит еще учитывать что сам экзешник процесса может быть спроецирован по любой базе из-за ASLR, поэтому сперва найди его базовый адрес (GetModuleHandleA(0)) и прибавляй к нему нужные смещения.
 
Конечно возможно.
У каждого процесса свое виртуальное адресное пространство, виртуальное означает что по двум одинаковым адресам у разных процессов могут быть разные данные.
При инжекте длл, ты провоцируешь процесс загрузить чит как библиотеку, при этом виндовый загрузчик проекцирует дллку в память процесса.
Таким образом дллка внутри получает полный доступ к памяти процесса, и она может совершать любые операции чтения и записи как будто это его адресное пространство.
Но стоит еще учитывать что сам экзешник процесса может быть спроецирован по любой базе из-за ASLR, поэтому сперва найди его базовый адрес (GetModuleHandleA(0)) и прибавляй к нему нужные смещения.
воо, спасибо! а базовый адрес искать лучше через CE ? ( пишу на игру Genshin Impact)
 
воо, спасибо! а базовый адрес искать лучше через CE ? ( пишу на игру Genshin Impact)
какой те геншин импакт, там ач кернелевский те его как минимум обойти над)
а адреса - лучше реверсить игру, но т.к он накрыт вмп ты пойдешь нахуй
 
Последнее редактирование:
Последнее редактирование:
лучше реверсить, но т.к он накрыт вмп ты пойдешь нахуй
Вовсе нет, даже если клиент игры с твоих слов накрыт вмп (я не вкурсе) это ничего не меняет.
Вмп не знает ничего о бинарнике, он никак не может скрыть части кода, если например используется упаковка, то он обязан распаковать бинарник целиком как раз перед передачей управления клиенту, поэтому достаточно сделать дамп после того как клиент уже распаковался и закинуть в иду.
А виртуализация маловероятна в играх вообще, потому что сильно убивает производительность.
 
воо, спасибо! а базовый адрес искать лучше через CE ? ( пишу на игру Genshin Impact)
C++:
Expand Collapse Copy
reinterpret_cast<std::uintptr_t>(GetModuleHandle(TEXT("GameAssembly.dll")))
--базовый адрес для юнити я просто хз на коком движке Genshin да
 
С какими другими. С другими играми примерно тоже самое, только если "другая игра" не на java написана.
 
Что за бред? Читы на C++ для игр на Java тоже пишутся))
Читай внимательней, я писал про свой гайд, что он работает для любой игры написанной на С. И никак не говорил, что читы для java нельзя написать.
 
Последнее редактирование:
Да, покажи как сделать чит для майнкрафта на С++ например с подробным описанием (хотя бы обычно чтение/запись) Да, не спорю, для игр на java пишутся читы, но не так просто, как для игр написанных на С.
а java на чем написана? и что тебе мешает с jvm работать на плюсах?
 
Я про свой гайд писал, что работает для любой игры написанной на С, но для игр на java - нет. Может автор вопрос имел ввиду, игру написанную на java (что тоже возможно).
 
Последнее редактирование:
Назад
Сверху Снизу