|
|
|
Friackazoid |
|
||||
Шустрый Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
Доброго времени суток.
Пытаюсь провернуть такую операцию в ядре: сделать ljmp на свой сегмент и выполнить в этом сегменте функцию.
__MY_CS загружен в gdt по всем правилам. Но на это получаю general protection fault с кодом e8. Пробую делать lcall
и тоже получаю сбой защиты но уже с кодом 3cb8 Кто нибудь пробовал сделать что нибудь в этом духе или знает что значат эти коды ошибок? --------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
||||
|
|||||
MAKCim |
|
|||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
что после nop'а идет?
смотрели в мануале, что означают эти коды ошибок? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Friackazoid |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
После nop'a только выход из функции. И сли верть ману этот код ошибки и есть селектор сегмента.
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
Friackazoid |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
После экспериментов выяснилось что если своему сегменту зменит CPL на совпадающий с текущим, в данном слуае на 00 то джамп проходит нормально. В то же время интеовский ман говорит что такие джампы единственный способ понизить привилегии кода.
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
MAKCim |
|
|||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
тот сегмент, на который осуществляется переход, conforming или nonconforming?
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Friackazoid |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
Да сегмент non-conforming. Если сделать его conforming то выполнить прыжок получается только если сменить DPL сегменту на 0 и код в сегменте начинает выполнятся с CPL 0. :dash0
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
MAKCim |
|
|||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
в общем посмотрел я мануал
в принципе где вы нашли, что cpl можно понизить? -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Friackazoid |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
Все разобралась, изменить CPL таким способом действительно нельзя. Просто показалось что если можно перепрыгнуть на другой сегмент то почему бы не перепрыгнуть на сегмент с меньшими привилегиями (по аналогии с сегментом данных), ан нет для сегментов кода правила более строгие. Меняю сегмент с помошью iret
Мне просто надо сменить контекст что называется на лету, чтобы один раз выполнить функция. Использовать механизм смены процеса ядра использовать во-первых не хочу ибо неоправданно для такого случая много накладных расходов, во вторых не могу потому что механизм использует то что еще не инициализованно на момент запуска функции. --------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
MAKCim |
|
|||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
Friackazoid,
чем вы занимаетесь если не секрет? ;) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Friackazoid |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 148 Регистрация: 23.2.2006 Репутация: нет Всего: 3 |
Разработкой защитных средств для ядра) И никакого криминала
--------------------
Даже если тебя съели, то все равно есть два выхода.42Team блог |
|||
|
||||
Правила форума "Asm для Linux/Unix" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Linux/Unix | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |