Читаю статью Криса Касперски о ручном создании TLS callback функций,
есть там у него фраза:
Возможно, мы захотим прикрутить TLS к уже упакованной/запротекченной программе, следовательно, нам жизненно необходимо научиться создавать его руками. В случае EXE с убитыми фиксами это очень просто.
Что означает "exe с убитыми фиксами", может кто-нибудь пояснить?
Здравствуйте, KaBoom, Вы писали:
KB>Читаю статью Криса Касперски о ручном создании TLS callback функций, KB>есть там у него фраза: KB>
KB>Возможно, мы захотим прикрутить TLS к уже упакованной/запротекченной программе, следовательно, нам жизненно необходимо научиться создавать его руками. В случае EXE с убитыми фиксами это очень просто.
KB>Что означает "exe с убитыми фиксами", может кто-нибудь пояснить?
KB>Сама статья здесь
Relocation Directory. Имеется в виду exe без этой директории.
Здравствуйте, enigmas, Вы писали:
E>Relocation Directory. Имеется в виду exe без этой директории.
Не улавливаю связи. А если эта директория есть — TLS callback нельзя прикрутить разве? Вроде можно...
Или имелось ввиду, что отсутствие Relocation directory — признак упакованного файла?
Здравствуйте, KaBoom, Вы писали:
KB>Здравствуйте, enigmas, Вы писали:
E>>Relocation Directory. Имеется в виду exe без этой директории.
KB>Не улавливаю связи. А если эта директория есть — TLS callback нельзя прикрутить разве? Вроде можно... KB>Или имелось ввиду, что отсутствие Relocation directory — признак упакованного файла?
Если есть директория релоков, то при добавлении tls callback вручную, надо еще добавить ссылку на его адрес в релоки (а там своих нюансов полно). Чтобы при загрузке образа не по imagebase загрузчик пропатчил адрес tls callback и правильный код был вызван. Он как бы говорит, что без релоков проще, не надо ничего в них добавлять, что имеет смысл.
Здравствуйте, enigmas, Вы писали:
E>Здравствуйте, KaBoom, Вы писали:
KB>>Здравствуйте, enigmas, Вы писали:
E>>>Relocation Directory. Имеется в виду exe без этой директории.
KB>>Не улавливаю связи. А если эта директория есть — TLS callback нельзя прикрутить разве? Вроде можно... KB>>Или имелось ввиду, что отсутствие Relocation directory — признак упакованного файла?
E>Если есть директория релоков, то при добавлении tls callback вручную, надо еще добавить ссылку на его адрес в релоки (а там своих нюансов полно). Чтобы при загрузке образа не по imagebase загрузчик пропатчил адрес tls callback и правильный код был вызван. Он как бы говорит, что без релоков проще, не надо ничего в них добавлять, что имеет смысл.
И дополнить, если релоков нет, то загрузчик должен будет загрузить образ по imagebase и никак иначе.
Здравствуйте, enigmas, Вы писали:
E>Если есть директория релоков, то при добавлении tls callback вручную, надо еще добавить ссылку на его адрес в релоки (а там своих нюансов полно).
Из ньюансов, я так понимаю, нехватка места в сегментах или хедере (при добавлении нового сегмента). И не забудь align(4) для блока релоков.
E>Он как бы говорит, что без релоков проще, не надо ничего в них добавлять, что имеет смысл.
Вообще, плохая рекомендация. Лучше затачивать сразу обобщенный метод. Потому что если это не ехе а длл будет, то релоки уже не обрежешь.