Как происходит перебазирование исполняемого файла с отраженной загрузкой и как он реализован?

Недавно я заинтересовался инъекцией рефлексивного кода и процессом его старшего брата. В обоих случаях исполняемый образ загружается в адресное пространство процесса хоста, и я продолжаю слышать, что обычно необходимо "перебазировать" загруженный исполняемый файл после его копирования в адресное пространство процесса хоста. Поправьте меня, если я ошибаюсь, но значения в загруженном изображении, относящиеся к его фактическому расположению в адресном пространстве процесса хоста, должны отражать (без каламбура) его фактическое положение в адресном пространстве процесса хоста, да?

Я слышал, что это требует синтаксического анализа каталога перемещения и некоторых значений, таких как значение ImageBase в дополнительном заголовке PE файла PE (исполняемого файла), но я не совсем уверен относительно того, что делает синтаксический анализ каталога перемещения, и как это сделать, или нет. Я уверен, что конкретные значения должны быть изменены в загруженном исполняемом файле, чтобы перебазировать его.

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

0 ответов

Другие вопросы по тегам