Здравствуйте, Sergey Storozhevykh, Вы писали:
SS>ZwMapViewOfSection фиксит релоки?
Прошу прощения за дезинформацию, релоки фиксит LdrpMapDll... ZwMapViewOfSection (не сама конечно) делает самое важное — выравнивание секций PE в памяти.
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, Sergey Storozhevykh, Вы писали:
SS>Инжект без форсирования работает везде. Форсирование не работает только в WOW64 (безотносительно к версии Windows). Т.к. при форсировании на самом раннем этапе не инициализировано окружение WOW64.
Поэтому я и предлагаю заменить форсирование APC ручным заполнением структур Ldr. Грузить вместо thunk dll сразу нужную, и добавить в списки...
SS>Боюсь здесь возникнут те же самые проблемы с WOW64.
Однозначно, т.к APC собственно и работает через этот механизм, привёл лишь как вариант со своими + и —
People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
Здравствуйте, gear nuke, Вы писали:
GN>Поэтому я и предлагаю заменить форсирование APC ручным заполнением структур Ldr. Грузить вместо thunk dll сразу нужную, и добавить в списки...
А это уже тема для отдельной статьи!
Здравствуйте, Аноним, Вы писали:
А>Сергей, получите заслуженные 3 балла — отличная статья, много познавательного материала.
Зыбыли зарегистрироваться?
Здравствуйте, Сторожевых Сергей, Вы писали:
СС>Статья:
СС>Способ принудительной загрузки DLL в адресное пространство процессаАвтор(ы): Сторожевых Сергей
Дата: 14.11.2007
При решении многих задач системного программированния зачастую бывает необходимо загрузить динамически подключаемую библиотеку (DLL) в адресное пространство другого процесса, с целью исследования либо изменения его поведения. В данной статье показан способ, позволяющий внедрить DLL в любой процесс (в том числе защищенный) на самом раннем этапе его создания.
СС>Авторы:
СС> Сторожевых Сергей
СС>Аннотация:
СС>При решении многих задач системного программированния зачастую бывает необходимо загрузить динамически подключаемую библиотеку (DLL) в адресное пространство другого процесса, с целью исследования либо изменения его поведения. В данной статье показан способ, позволяющий внедрить DLL в любой процесс (в том числе защищенный) на самом раннем этапе его создания.
Я решил испробовать данный метод и у меня возникли следующие трудности. При загрузке библиотеки в некоторые процессы (например wscript.exe на Server 2003) появляется следующая ошибка
"Системная библиотека kernel32.dll перемещена в памяти. Работа приложения будет нарушена. Перемещение произошло из-за того, что библиотека Dinamically Allocated Memory заняла область адресов, зарезервированную для системных DLL Windows. Обратитесь к поставщику за новой версией библиотеки."
Буду благодарен за любую помощь.