Просмотр полной версии : Выполнение кода в стеке
Вопрос совместимости. Есть следующий код к примеру:
push XXXX
push XXXX
push XXXX
push XXXX
jmp esp
Т.е. положили в стек опкод и прыгнули на его выполнение. На всех ли процессорах разрешен запуск кода в стеке? Просто слышал что новые процесоры запрещают это. Правдо ли???
http://www.shellcode.ru/index.php?name=News&file=print&sid=11
Не, не везде будет работать. Опкод это не операция, а ее код! =]
Great:
> Опкод это не операция, а ее код! =]
бред какойто. к чему это?
На всех ли процессорах разрешен запуск кода в стеке? Просто слышал что новые процесоры запрещают это. Правдо ли???
Правда. Читай про DEP (Data Execution Prevention).
Винда даже может это программно эмулировать для системных нужд, если проц это не поддерживает.
http://en.wikipedia.org/wiki/Data_Execution_Prevention
ЗЫ. Правда это как-то умудрялись вроде обходить в каких-то случаях, подсовывая адрес WriteProcessMemory или VirtualProtect в стек и готовя там параметры..
Great:
> Опкод это не операция, а ее код! =]
бред какойто. к чему это?
:
Т.е. положили в стек опкод и прыгнули на его выполнение
Опкод нельзя исполнить, т.к. это не операция а ее код. Для выполнения операции нужны еще и операнды (а кроме них еще и всякие дополнительные биты, указывающие адрессацию и размерность операндов). Я правда не знаю, что здесь имеется ввиду под опкодом - может быть автор подразумевал всю закодированную команду? Просто в терминологии ассемблируемой команды код операции - это вполне определенный участок команды (обычно, но не всегда, 1 или немного по-больше байтов в начале команды для intel'овских и совместимых процессоров)
Dword, ты синтакси4еские мнемоники имеешь ввиду, а ре4ьь шла о выполняемом коде\опкодам
:
Опкод нельзя исполнить, т.к. это не операция а ее код. Для выполнения операции нужны еще и операнды (а кроме них еще и всякие дополнительные биты, указывающие адрессацию и размерность операндов). Я правда не знаю, что здесь имеется ввиду под опкодом - может быть автор подразумевал всю закодированную команду? Просто в терминологии ассемблируемой команды код операции - это вполне определенный участок команды (обычно, но не всегда, 1 или немного по-больше байтов в начале команды для intel'овских и совместимых процессоров)
DWORD, опкодом называется как поле КодОПерации(КОП), так и полный машинный код данной команды, в зависимости от контекста. Более того, часто под опкодом понимается именно полный код данной инструкции.
Раньше это прекрасно работало, весь декриптор помещался в стеке, а сейчас не знаю, но вроде как выполняется!
Dword, ты синтакси4еские мнемоники имеешь ввиду, а ре4ьь шла о выполняемом коде\опкодам
Не понял, чего-чего я имею ввиду? :)
http://en.wikipedia.org/wiki/Opcode
DWORD, знаешь, даже с если посчитать, что опкод это код операции, то есть, например, операция NOP c кодом 90h и замечательно выполняется, скажу тебе.
Не веришь - скрин:
http://gr8.cih.ms/uploads/nop.png
дада, так и есть. вот он:
http://prot.someshit.net/opcode.JPG
Не понял что ты этим хотел сказать. Безоперандной инструкции ничего кроме кода операции ненужно, так что это вроде бы очевидно. Или я не так понял тебя?
http://en.wikipedia.org/wiki/Opcode
Сам-то читал, что там написано? А написано как раз то, что говорю я, а не вы
приведи цитату а то спор еще на неделю)
Там две строчки текста, чего цитировать-то?.. И о чем спорить. Вот любите вы ни о чем поспорить. Особенно касательно русского языка. Вся документация, в т.ч. приведенная Протеусом гласит, что опкод это часть машинной инструкции, а не вся эта инструкция. Хотя мне вообщем-то всеравно, вообще не понимаю людей которые спорят о терминологии, прекрасно друг друга при этом понимая, это выпендреж просто какой-то. Пусть называют как угодно, главное понимание.
Пусть называют как угодно, главное понимание.
dword Ну а зачем тогда поднял этот разговор, придравшись к высказыванию, зная о чем идет речь? ;)
dword Ну а зачем тогда поднял этот разговор, придравшись к высказыванию, зная о чем идет речь? ;)
я вскользь. любя :)
чел, прекрати спорить. это тупо
топикстартер свой ответ получил.
тема закрыта
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot