HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Реверсинг
   
Закрытая тема
 
Опции темы Поиск в этой теме Опции просмотра

Выполнение кода в стеке
  #1  
Старый 01.11.2007, 23:51
GlOFF
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
С нами: 10531106

Репутация: 1338


По умолчанию Выполнение кода в стеке

Вопрос совместимости. Есть следующий код к примеру:
Код:
push XXXX 
push XXXX 
push XXXX 
push XXXX 
jmp esp
Т.е. положили в стек опкод и прыгнули на его выполнение. На всех ли процессорах разрешен запуск кода в стеке? Просто слышал что новые процесоры запрещают это. Правдо ли???
 

  #2  
Старый 02.11.2007, 00:39
DWORD
Участник форума
Регистрация: 24.07.2007
Сообщений: 138
С нами: 9894190

Репутация: 215
По умолчанию

http://www.shellcode.ru/index.php?name=News&file=print&sid=11

Не, не везде будет работать. Опкод это не операция, а ее код! =]

Great:
> Опкод это не операция, а ее код! =]
бред какойто. к чему это?

Последний раз редактировалось _Great_; 02.11.2007 в 10:03..
 

  #3  
Старый 02.11.2007, 10:02
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
С нами: 10721066

Репутация: 4360


По умолчанию

Цитата:
На всех ли процессорах разрешен запуск кода в стеке? Просто слышал что новые процесоры запрещают это. Правдо ли???
Правда. Читай про DEP (Data Execution Prevention).
Винда даже может это программно эмулировать для системных нужд, если проц это не поддерживает.

http://en.wikipedia.org/wiki/Data_Execution_Prevention

ЗЫ. Правда это как-то умудрялись вроде обходить в каких-то случаях, подсовывая адрес WriteProcessMemory или VirtualProtect в стек и готовя там параметры..

Последний раз редактировалось _Great_; 02.11.2007 в 10:05..
 

  #4  
Старый 02.11.2007, 12:22
DWORD
Участник форума
Регистрация: 24.07.2007
Сообщений: 138
С нами: 9894190

Репутация: 215
По умолчанию

Цитата:
Great:
> Опкод это не операция, а ее код! =]
бред какойто. к чему это?
:
Цитата:
Т.е. положили в стек опкод и прыгнули на его выполнение
Опкод нельзя исполнить, т.к. это не операция а ее код. Для выполнения операции нужны еще и операнды (а кроме них еще и всякие дополнительные биты, указывающие адрессацию и размерность операндов). Я правда не знаю, что здесь имеется ввиду под опкодом - может быть автор подразумевал всю закодированную команду? Просто в терминологии ассемблируемой команды код операции - это вполне определенный участок команды (обычно, но не всегда, 1 или немного по-больше байтов в начале команды для intel'овских и совместимых процессоров)
 

  #5  
Старый 02.11.2007, 14:54
ProTeuS
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,367
С нами: 11291486

Репутация: 2175


По умолчанию

Dword, ты синтакси4еские мнемоники имеешь ввиду, а ре4ьь шла о выполняемом коде\опкодам
 

  #6  
Старый 02.11.2007, 17:10
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
С нами: 10721066

Репутация: 4360


По умолчанию

Цитата:
Сообщение от DWORD  
:

Опкод нельзя исполнить, т.к. это не операция а ее код. Для выполнения операции нужны еще и операнды (а кроме них еще и всякие дополнительные биты, указывающие адрессацию и размерность операндов). Я правда не знаю, что здесь имеется ввиду под опкодом - может быть автор подразумевал всю закодированную команду? Просто в терминологии ассемблируемой команды код операции - это вполне определенный участок команды (обычно, но не всегда, 1 или немного по-больше байтов в начале команды для intel'овских и совместимых процессоров)
DWORD, опкодом называется как поле КодОПерации(КОП), так и полный машинный код данной команды, в зависимости от контекста. Более того, часто под опкодом понимается именно полный код данной инструкции.
 

  #7  
Старый 03.11.2007, 03:18
Lamia
Участник форума
Регистрация: 11.07.2007
Сообщений: 190
С нами: 9913237

Репутация: 185
По умолчанию

Раньше это прекрасно работало, весь декриптор помещался в стеке, а сейчас не знаю, но вроде как выполняется!

Последний раз редактировалось _Great_; 03.11.2007 в 09:24.. Причина: орфография
 

  #8  
Старый 03.11.2007, 21:23
DWORD
Участник форума
Регистрация: 24.07.2007
Сообщений: 138
С нами: 9894190

Репутация: 215
По умолчанию

Цитата:
Сообщение от ProTeuS  
Dword, ты синтакси4еские мнемоники имеешь ввиду, а ре4ьь шла о выполняемом коде\опкодам
Не понял, чего-чего я имею ввиду?
 

  #9  
Старый 03.11.2007, 23:04
ProTeuS
Познавший АНТИЧАТ
Регистрация: 26.11.2004
Сообщений: 1,367
С нами: 11291486

Репутация: 2175


По умолчанию

http://en.wikipedia.org/wiki/Opcode
 

  #10  
Старый 03.11.2007, 23:14
_Great_
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
С нами: 10721066

Репутация: 4360


По умолчанию

DWORD, знаешь, даже с если посчитать, что опкод это код операции, то есть, например, операция NOP c кодом 90h и замечательно выполняется, скажу тебе.
Не веришь - скрин:

 
Закрытая тема



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Mozilla Firefox URLBar: выполнение произвольного кода. -=lebed=- Уязвимости 5 29.07.2007 11:48
Удаленное выполнение произвольного PHP кода в Zeroboard Red Уязвимости CMS / форумов 7 14.01.2005 03:40



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.