|
|
|
cupper |
|
||||||||||
Опытный Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
system_call
Всем снова сдрасте. У меня новая проблема Мне нужно модифицировать (клонировать) обработчик 80 прерывания, она же функция system_call. Но он везде где я находил описан очень и очень хренова. Обычно все описание заключается в том что сказано: в eax передается номер вызываемой функции, он проверяется, далее запускается, если чтото не так то производются сложные действия для коректного возврата. Без каких либо подробностей. Мне нужно сделать практически аналогичный обработчик за некими маленькими отклонениями. А чтобы понять где эти маленькие поправления должны быть нужно понять как там все это работает, до последнего винтика. Прошу вашей помощи в разборе. Начнем по порядку. Во первых сделаем для простоты такое упущение: ничего лишнего кроме как посмотреть номер вызываемой функции, вызвать ее и вернуть результат, ни надо, пока нужен самый минимум чтобы работал в идеальных условиях. И второе: нужно четко осознать те моменты где прямым образом фигурируют какие либо опоминания об пользовательском пространстве (дескрипторы GDT, DPL = 3, процесс вызвавший прерывание).
При таком вызове макроса
как он будет выполнятся ? Сначала выполнится чертвертая метка, потом 1-3 и он закончит свою работу выполнив POP_GS \pop ?
фух, несколько часов пост делал. Простите за мноо букф и еще больше вопросов, просто нужно все это понять %) Отвечайте по возможности лучше кусочками, так проще мазайку будет сложить. PS. И кстати если получится сложить все это в единую картину с хорошим описание то это будет очень хороший мануал, коих нету на белом свете. |
||||||||||
|
|||||||||||
MAKCim |
|
||||||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
http://lxr.linux.no/linux+v2.6.19/arch/i38...el/entry.S#L184 читать про формат dwarf2 необходим для создания отладочной инфы
в ebp помещаем _адрес_ структуры thread_info текущего процесса
проверка, включена ли для процесса трассировка системных вызовов
да смотрим, нужно ли обрабатывать спец. случаи (ака если процессу доставлен сигнал) если нужно обработать спец. случай -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
cupper |
|
||||||
Опытный Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
а можно чуть более поподробней а спец. случаях ? не совсем понял о чем речь Добавлено через 3 минуты
хе
макросы то я все смотрел хотелось бы механику их понять. Че за магические числа 3*4, -2*4, -3*4 ... |
||||||
|
|||||||
MAKCim |
|
||||
Воін дZэна Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 2 Всего: 207 |
TIF* флаги http://tomoyo.sourceforge.jp/cgi-bin/lxr/s...read_info.h#L76
я ж написал, читайте про dwarf2 и реализацию в gcc -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
Правила форума "Asm для Linux/Unix" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Linux/Unix | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |