Есть желание написать простенький криптор, но меня озадачила проблемка - зачем в екзе секция релоков, в дллке понятно, но ведь екзе всеравно всегда грузится по базовому адресу. Могу ли я в своем крипторе просто пропустить эту секцию, или ее нужно считать при криптовании? Или все-таки включать еще и секцию релоков в конечный результат?
1. Вероятность того, что ехе загрузится по нестандартному ImageBase - низкая, но все же есть, 2. Некоторые ехе экспортируют функции и переменные, а так же юзаются как динамические библиотеки.
Помоему такой вероятности именно нет вообще. Но часто надо поставить ехешнику флаг IMAGE_FILE_DLL, чтоб он превратился в дллку, для того релоки и суют туда. В основном используется в малваре : ) А про криптор - тебе полюбому надо сделать процессинг релоков ... Мало ли. Вышеуказаные случаи и тп, + потом дополнить криптом длл. Это имхо..
zoool Уже обсуждалось много раз - EXE не может быть EXE и DLL одновременно. Поведение загрузчика зависит от наличия флага MAGE_FILE_DLL.
релоки удобно при инжекте всего образа проинжектел, пропарсел релоки и не парешся с базонезависимостью. в малварах - это обычное дело.
Пишу паблик криптор для одного кулхацкерного форума, сама идея распространять пинч меня не интересует. Не охота еще одну тему создавать, скажите а я могу использовать секцию кода для записи, например под стек - очень удобно было бы. Я имею ввиду там DEP или еще что-нить не будет противостоять этому?
Ладно, я придумал по-другому - в моей подпрограмме в принципе из стека тока читается, а при вызове апишной функции я указатель стека буду восстанавливать.