- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 429
- Реакции
- 10
Решил освежить базу по мануал маппингу, чтобы понимать, как оно под капотом ворочается, а не просто юзать готовые сурсы.
Накидываю свой инжектор и хочу подтвердить логику:
Это только верхушка айсберга. Насколько я понимаю, если просто залить секции в память, ничего не заведется, так как адреса будут битые. Чтобы DLL реально ожила, нужно реализовать еще несколько критических шагов.
Вопрос к местным реверсерам: кто как сейчас прячет аллокацию? Обычный RWX-регион сейчас палится любым адекватным античитом типа EAC или BattlEye через скан памяти. Стоит ли вообще копировать заголовки (Headers) в таргет или лучше их затирать сразу после инжекта, чтобы минимизировать футпринт?
Кто реализовывал подобный функционал, какие грабли ловили при маппинге в защищенные процессы?
Накидываю свой инжектор и хочу подтвердить логику:
- Чтение DLL-файла в буфер.
- Парсинг PE заголовков (Image Base, Entry Point, Section alignment).
- Аллокация памяти в целевом процессе через VirtualAllocEx.
- Копирование секций и заголовков через WriteProcessMemory (WPM).
Это только верхушка айсберга. Насколько я понимаю, если просто залить секции в память, ничего не заведется, так как адреса будут битые. Чтобы DLL реально ожила, нужно реализовать еще несколько критических шагов.
1. Резолв импортов (IAT) — нужно пройтись по дескрипторам импорта и подгрузить необходимые либы, заполнив таблицу реальными адресами функций.
2. Фикс релокаций (Base Relocations) — если ImageBase не совпал с адресом аллокации (что бывает почти всегда), нужно пропатчить все абсолютные адреса в коде.
3. Вызов TLS коллбеков — если они есть в PE-файле, их нужно выполнить до точки входа.
4. Вызов DllMain — собственно, прыжок на Entry Point с флагом DLL_PROCESS_ATTACH.
2. Фикс релокаций (Base Relocations) — если ImageBase не совпал с адресом аллокации (что бывает почти всегда), нужно пропатчить все абсолютные адреса в коде.
3. Вызов TLS коллбеков — если они есть в PE-файле, их нужно выполнить до точки входа.
4. Вызов DllMain — собственно, прыжок на Entry Point с флагом DLL_PROCESS_ATTACH.
Вопрос к местным реверсерам: кто как сейчас прячет аллокацию? Обычный RWX-регион сейчас палится любым адекватным античитом типа EAC или BattlEye через скан памяти. Стоит ли вообще копировать заголовки (Headers) в таргет или лучше их затирать сразу после инжекта, чтобы минимизировать футпринт?
Кто реализовывал подобный функционал, какие грабли ловили при маппинге в защищенные процессы?