Подскажите пожалуйста, каким образом формируется физический адрес при использовании стека. И как можно на это формирование повлиять, если можно.
Речь идёт о выполнении приложения не под управлением операционной системы, а в "системном режиме", или как бы его обозвать...
Есть сегмент стека от 0 до 4Гб устанавливаем mov esp, 0x200000-4 и запускаем прогрмму - работет; изменяем базу сегмента стека от 0x100 до 4Гб - не работает т.е. адрес в сегменте не равен физическому адресу. Как-то так. Хотелось бы как-нибудь это починить.
Формирование адреса при использовании стека
Модератор: Модераторы
- coyot.rush
- постоялец
- Сообщения: 309
- Зарегистрирован: 14.08.2009 08:59:48
Ring0
Именно физический? Управление памятью можно в windows \.DevicePhisicalMemory ; Linux /dev/mem. В обоих случаях нужны максимальные права в системе
Добавлено спустя 10 минут 45 секунд:
sub esp,some_memory резервироваие памяти в стеке
Добавлено спустя 10 минут 45 секунд:
Есть сегмент стека от 0 до 4Гб устанавливаем mov esp, 0x200000-4 и запускаем прогрмму - работет; изменяем базу сегмента стека от 0x100 до 4Гб - не работает т.е. адрес в сегменте не равен физическому адресу. Как-то так. Хотелось бы как-нибудь это починить.
sub esp,some_memory резервироваие памяти в стеке
я ж говорю, это не windows, и не linux. эта фигня исполнятеся в Virtual Box, на эмуляторе 386-го процессора. так что с правами проблем нет
- coyot.rush
- постоялец
- Сообщения: 309
- Зарегистрирован: 14.08.2009 08:59:48
Re: Формирование адреса при использовании стека
Новое сообщение hinst 26.03.2010 15:16:28
я ж говорю, это не windows, и не linux. эта фигня исполнятеся в Virtual Box, на эмуляторе 386-го процессора. так что с правами проблем нет
и как называеться это чудо
Как подменить стек? http://www.rsdn.ru/article/baseserv/stack.xml
Команда PUSH
Эта команда уменьшает регистр esp на размер своего операнда и записывает значение операнда по адресу, находящемуся в esp.
Команда POP
Эта команда читает значение операнда по текущему адресу в esp и увеличивает регистр esp на размер своего операнда.
Команда RETN
Действует также как и pop, однако операндом для нее неявно служит регистр eip – extended instruction pointer (указатель команд). С помощью этой команды вы можете изменять содержимое указателя команд, хотя явных инструкций для его изменения нет.
Добавлено спустя 4 минуты 14 секунд:
Идя состоит в многократном использование команд PUSH/ POP , тем самым влияя на стек
Вам прямая дорога на http://www.wasm.ru
