Открыл сэмпл в иде и вижу такое https://i.imgur.com/w14Smtk.png Что это такое? Русский язык в компиляторе или ида сама добавляет?
Эти байты совпали с русскими символами в ASCII-таблице, ида их и показала. Никто ничего не "генерит" изниоткуда. Байты можно интерпретировать, как числовые значения в HEX, а можно, как буквы в какой-либо кодировке. В HEX-окошке ида показывает обе интерпретации.
Если напейсать программу с пустым main() и вообще без всякой мишуры, она примерно так и будет выглядеть.
f13nd, Компилер занопит, обычно заинтит не используемую область. Что бы произвольная передача управления привела к ловушке.
Думаю смысла дальше тему продолжать нет. Параметры компиляции /sdl- /GS- /NOCOFFGRPINFO /NODEFAULTLIB /SAFESEH:NO Entry point: main main функция пуста
Rel, Это ведь самая простая защита от op-атак, заполнить пространство между процедурами и не используемое int'ом. Если этого нет, то это ошибка сборки, либо как ты говоришь спец опция, это может быть нужно только если кодовый буфер, те код будет изменяться. --- Сообщение объединено, 6 фев 2020 --- galenkane, > main функция пуста Я так понял что это ты смотрел не какой то софт семпл, а свою пустую сборку. В твоей теме про какие то дебаг плаги ты сказал что нуби и хочешь что то реализовать на сишке. Нужно в начале освоить компилер, это хорошая для тебя тема и закрывать её бессмысленно, по простой причине - если ты столь простое спрашивал, то будет бесконечный поток вопросов, а тут как раз для этого твоя же тема
Indy_, я понимаю, но например, если ты складываешь код и данные в одну секцию, то во многих случаях компилятор не будет такое выравнивать с помощью инт3. Возможно есть и другие ситуации, но это первое, что пришло в голову.
Rel, Именно потому что всё в кучу мешается, данные и код и есть возможность(по этому) op-атак. Это как бы ошибка в самой архитектуре софтверной, формата. Из за этих недоработок вводится множество аппаратных фиксов, как тот же теневой стек. Что бы управление не передавалось на данные, хотя такую блокировку можно сделать через обычную адресную трансляцию, но пе формат изначально защиту не содержит. Поэтому ради обратной совместимости создаётся костыль и для него есчо один, так рекурсивно и совместно(софт и хард вендоры, плывут в одной лодке).