Я имею в виду, как ядро выставляет свою функцию пользовательскому приложению.Как вызвать код ядра в libc? (windows или linux)
ответ
Функции ядра называются с использованием системных вызовов, которые обычно принимают форму заполнения некоторых регистров (тип системного вызова, параметры и т. Д.) И выполнение команды программного прерывания (int 0x80) или sysenter (если ваша архитектура поддерживает ее).
Если вы делаете это на Linux, вы можете увидеть некоторые документы Linux системных вызовов, как один здесь: http://bluemaster.iu.hio.no/edu/dark/lin-asm/syscalls.html
Там, безусловно, существует несколько подобных документов для других ядер (окна).
также в окнах? – lovespring
В принципе, да. В этой статье немного рассказывается о Windows http://www.symantec.com/connect/articles/windows-syscall-shellcode –
Предполагая, что вы говорите о Linux, вы помещаете свои аргументы в регистры и вызываете прерывание 0x80. Название это "системный вызов" Смотрите эти ссылки:
- http://www.ibm.com/developerworks/linux/library/l-system-calls/
- http://www.linuxjournal.com/article/4048
Windows, вероятно, похоже, это выглядит как хорошая статья:
http://www.codeguru.com/cpp/w-p/system/devicedriverdevelopment/article.php/c8035
и т. Д. Google
спасибо, MK. Понимаю. – lovespring
Ядро операционной системы? –
@Paul, если все в некотором роде, то кто угодно. – lovespring
вы должны быть немного более конкретными - поскольку вопрос стоит слишком неопределенным и, вероятно, будет закрыт, если вы не добавите больше деталей. –