2011-01-26 2 views
-1

Я имею в виду, как ядро ​​выставляет свою функцию пользовательскому приложению.Как вызвать код ядра в libc? (windows или linux)

+0

Ядро операционной системы? –

+0

@Paul, если все в некотором роде, то кто угодно. – lovespring

+0

вы должны быть немного более конкретными - поскольку вопрос стоит слишком неопределенным и, вероятно, будет закрыт, если вы не добавите больше деталей. –

ответ

1

Функции ядра называются с использованием системных вызовов, которые обычно принимают форму заполнения некоторых регистров (тип системного вызова, параметры и т. Д.) И выполнение команды программного прерывания (int 0x80) или sysenter (если ваша архитектура поддерживает ее).

Если вы делаете это на Linux, вы можете увидеть некоторые документы Linux системных вызовов, как один здесь: http://bluemaster.iu.hio.no/edu/dark/lin-asm/syscalls.html

Там, безусловно, существует несколько подобных документов для других ядер (окна).

+0

также в окнах? – lovespring

+0

В принципе, да. В этой статье немного рассказывается о Windows http://www.symantec.com/connect/articles/windows-syscall-shellcode –

1

Предполагая, что вы говорите о Linux, вы помещаете свои аргументы в регистры и вызываете прерывание 0x80. Название это "системный вызов" Смотрите эти ссылки:

Windows, вероятно, похоже, это выглядит как хорошая статья:

http://www.codeguru.com/cpp/w-p/system/devicedriverdevelopment/article.php/c8035

и т. Д. Google

+0

спасибо, MK. Понимаю. – lovespring