Как добавить системный вызов в ядро ​​Linux?

Если у вас нет большого количества систем в вашей сети, настройка IDS, например Snort, вероятно, будет чрезмерной (особенно если у вас нет каких-либо сетевых сервисов на вашем компьютере). Я предлагаю начать с настройки logwatch, чтобы отправить отчет о том, что происходит в вашей системе. Как только вы это сделаете, настройте свой syslog, чтобы получить как можно больше релевантной информации.

3
задан 14 July 2011 в 01:28

14 ответов

Ubuntu не делает ничего особенного. Ваша первая трудность заключается в том, что у вас нет установленного источника ядра, только заголовки ядра. Авторы описывают систему с копией источника ядра в /usr/src/linux-2.x. Если вы только компилируете внешние модули, то заголовков, которые вы видите в вашей системе, достаточно. Ubuntu отправляет заголовки ядра для этой цели в пакеты linux-headers-* (которые вы обычно устанавливаете через зависимость от метапакета linux-headers-generic). Если вам нужен весь источник, получите сжатый архив из бинарного пакета linux-source-2.6.

Другое дело, что структура каталогов немного изменилась с течением времени; связанные с архитектурой заголовки переместились с include/asm-$ARCH на arch/$ARCH/include/asm. Кроме того, архитектуры i386 и x86_64 были объединены в унифицированный x86 в 2.6.24. ( linux-headers-generic ) Итак, теперь вам нужно искать в arch/x86/include, а не include/asm-i386.

Вот несколько полезных ресурсов для хакеров ядра Linux:

Драйверы устройств Linux (LDD3) LWN (новости о Linux, в том числе многие технические статьи о ядре одним из авторов LDD) LXR для поиска и поиска источника ядра LKML (список рассылки ядра Linux), Stack Переполнение, чтобы задать вопросы о ядре и разработке ядра

А также прочитать эту тему в Unix & amp; Linux, в котором объясняется, как найти реализацию существующего syscall.

4
ответ дан 25 May 2018 в 19:50
  • 1
    Хороший ответ! Я просто побежал find /usr/src -type f -name unistd.h за свой ответ :) – Andrew Gunnerson 14 July 2011 в 04:01
  • 2
    @Gilles: Я немного смутился с инструкцией автора. Большое вам спасибо за вашу помощь. – Chan 14 July 2011 в 09:48

Ubuntu не делает ничего особенного. Ваша первая трудность заключается в том, что у вас нет установленного источника ядра, только заголовки ядра. Авторы описывают систему с копией источника ядра в /usr/src/linux-2.x. Если вы только компилируете внешние модули, то заголовков, которые вы видите в вашей системе, достаточно. Ubuntu отправляет заголовки ядра для этой цели в пакеты linux-headers-* (которые вы обычно устанавливаете через зависимость от метапакета linux-headers-generic). Если вам нужен весь источник, получите сжатый архив из бинарного пакета linux-source-2.6.

Другое дело, что структура каталогов немного изменилась с течением времени; связанные с архитектурой заголовки переместились с include/asm-$ARCH на arch/$ARCH/include/asm. Кроме того, архитектуры i386 и x86_64 были объединены в унифицированный x86 в 2.6.24. ( linux-headers-generic ) Итак, теперь вам нужно искать в arch/x86/include, а не include/asm-i386.

Вот несколько полезных ресурсов для хакеров ядра Linux:

Драйверы устройств Linux (LDD3) LWN (новости о Linux, в том числе многие технические статьи о ядре одним из авторов LDD) LXR для поиска и поиска источника ядра LKML (список рассылки ядра Linux), Stack Переполнение, чтобы задать вопросы о ядре и разработке ядра

А также прочитать эту тему в Unix & amp; Linux, в котором объясняется, как найти реализацию существующего syscall.

4
ответ дан 25 July 2018 в 21:35

Ubuntu не делает ничего особенного. Ваша первая трудность заключается в том, что у вас нет установленного источника ядра, только заголовки ядра. Авторы описывают систему с копией источника ядра в /usr/src/linux-2.x. Если вы только компилируете внешние модули, то заголовков, которые вы видите в вашей системе, достаточно. Ubuntu отправляет заголовки ядра для этой цели в пакеты linux-headers-* (которые вы обычно устанавливаете через зависимость от метапакета linux-headers-generic). Если вам нужен весь источник, получите сжатый архив из бинарного пакета linux-source-2.6.

Другое дело, что структура каталогов немного изменилась с течением времени; связанные с архитектурой заголовки переместились с include/asm-$ARCH на arch/$ARCH/include/asm. Кроме того, архитектуры i386 и x86_64 были объединены в унифицированный x86 в 2.6.24. ( linux-headers-generic ) Итак, теперь вам нужно искать в arch/x86/include, а не include/asm-i386.

Вот несколько полезных ресурсов для хакеров ядра Linux:

Драйверы устройств Linux (LDD3) LWN (новости о Linux, в том числе многие технические статьи о ядре одним из авторов LDD) LXR для поиска и поиска источника ядра LKML (список рассылки ядра Linux), Stack Переполнение, чтобы задать вопросы о ядре и разработке ядра

А также прочитать эту тему в Unix & amp; Linux, в котором объясняется, как найти реализацию существующего syscall.

4
ответ дан 31 July 2018 в 13:16

Ubuntu не делает ничего особенного. Ваша первая трудность заключается в том, что у вас нет установленного источника ядра, только заголовки ядра. Авторы описывают систему с копией источника ядра в /usr/src/linux-2.x. Если вы только компилируете внешние модули, то заголовков, которые вы видите в вашей системе, достаточно. Ubuntu отправляет заголовки ядра для этой цели в пакеты linux-headers-* (которые вы обычно устанавливаете через зависимость от метапакета linux-headers-generic). Если вам нужен весь источник, получите сжатый архив из бинарного пакета linux-source-2.6.

Другое дело, что структура каталогов немного изменилась с течением времени; связанные с архитектурой заголовки переместились с include/asm-$ARCH на arch/$ARCH/include/asm. Кроме того, архитектуры i386 и x86_64 были объединены в унифицированный x86 в 2.6.24. ( linux-headers-generic ) Итак, теперь вам нужно искать в arch/x86/include, а не include/asm-i386.

Вот несколько полезных ресурсов для хакеров ядра Linux:

Драйверы устройств Linux (LDD3) LWN (новости о Linux, в том числе многие технические статьи о ядре одним из авторов LDD) LXR для поиска и поиска источника ядра LKML (список рассылки ядра Linux), Stack Переполнение, чтобы задать вопросы о ядре и разработке ядра

А также прочитать эту тему в Unix & amp; Linux, в котором объясняется, как найти реализацию существующего syscall.

4
ответ дан 2 August 2018 в 03:12

Ubuntu не делает ничего особенного. Ваша первая трудность заключается в том, что у вас нет установленного источника ядра, только заголовки ядра. Авторы описывают систему с копией источника ядра в /usr/src/linux-2.x. Если вы только компилируете внешние модули, то заголовков, которые вы видите в вашей системе, достаточно. Ubuntu отправляет заголовки ядра для этой цели в пакеты linux-headers-* (которые вы обычно устанавливаете через зависимость от метапакета linux-headers-generic). Если вам нужен весь источник, получите сжатый архив из бинарного пакета linux-source-2.6.

Другое дело, что структура каталогов немного изменилась с течением времени; связанные с архитектурой заголовки переместились с include/asm-$ARCH на arch/$ARCH/include/asm. Кроме того, архитектуры i386 и x86_64 были объединены в унифицированный x86 в 2.6.24. ( linux-headers-generic ) Итак, теперь вам нужно искать в arch/x86/include, а не include/asm-i386.

Вот несколько полезных ресурсов для хакеров ядра Linux:

Драйверы устройств Linux (LDD3) LWN (новости о Linux, в том числе многие технические статьи о ядре одним из авторов LDD) LXR для поиска и поиска источника ядра LKML (список рассылки ядра Linux), Stack Переполнение, чтобы задать вопросы о ядре и разработке ядра

А также прочитать эту тему в Unix & amp; Linux, в котором объясняется, как найти реализацию существующего syscall.

4
ответ дан 4 August 2018 в 19:06

Ubuntu не делает ничего особенного. Ваша первая трудность заключается в том, что у вас нет установленного источника ядра, только заголовки ядра. Авторы описывают систему с копией источника ядра в /usr/src/linux-2.x. Если вы только компилируете внешние модули, то заголовков, которые вы видите в вашей системе, достаточно. Ubuntu отправляет заголовки ядра для этой цели в пакеты linux-headers-* (которые вы обычно устанавливаете через зависимость от метапакета linux-headers-generic). Если вам нужен весь источник, получите сжатый архив из бинарного пакета linux-source-2.6.

Другое дело, что структура каталогов немного изменилась с течением времени; связанные с архитектурой заголовки переместились с include/asm-$ARCH на arch/$ARCH/include/asm. Кроме того, архитектуры i386 и x86_64 были объединены в унифицированный x86 в 2.6.24. ( linux-headers-generic ) Итак, теперь вам нужно искать в arch/x86/include, а не include/asm-i386.

Вот несколько полезных ресурсов для хакеров ядра Linux:

Драйверы устройств Linux (LDD3) LWN (новости о Linux, в том числе многие технические статьи о ядре одним из авторов LDD) LXR для поиска и поиска источника ядра LKML (список рассылки ядра Linux), Stack Переполнение, чтобы задать вопросы о ядре и разработке ядра

А также прочитать эту тему в Unix & amp; Linux, в котором объясняется, как найти реализацию существующего syscall.

4
ответ дан 6 August 2018 в 03:24

Ubuntu не делает ничего особенного. Ваша первая трудность заключается в том, что у вас нет установленного источника ядра, только заголовки ядра. Авторы описывают систему с копией источника ядра в /usr/src/linux-2.x. Если вы только компилируете внешние модули, то заголовков, которые вы видите в вашей системе, достаточно. Ubuntu отправляет заголовки ядра для этой цели в пакеты linux-headers-* (которые вы обычно устанавливаете через зависимость от метапакета linux-headers-generic). Если вам нужен весь источник, получите сжатый архив из бинарного пакета linux-source-2.6.

Другое дело, что структура каталогов немного изменилась с течением времени; связанные с архитектурой заголовки переместились с include/asm-$ARCH на arch/$ARCH/include/asm. Кроме того, архитектуры i386 и x86_64 были объединены в унифицированный x86 в 2.6.24. ( linux-headers-generic ) Итак, теперь вам нужно искать в arch/x86/include, а не include/asm-i386.

Вот несколько полезных ресурсов для хакеров ядра Linux:

Драйверы устройств Linux (LDD3) LWN (новости о Linux, в том числе многие технические статьи о ядре одним из авторов LDD) LXR для поиска и поиска источника ядра LKML (список рассылки ядра Linux), Stack Переполнение, чтобы задать вопросы о ядре и разработке ядра

А также прочитать эту тему в Unix & amp; Linux, в котором объясняется, как найти реализацию существующего syscall.

4
ответ дан 7 August 2018 в 21:10

/usr/src/linux-headers-2.6.38-10-generic/include/linux/unistd.h

или в будущих ядрах:

/usr/src/linux-headers-KERNEL_VERSION/include/asm-generic/unistd.h

:)

3
ответ дан 25 May 2018 в 19:50

/usr/src/linux-headers-2.6.38-10-generic/include/linux/unistd.h

или в будущих ядрах:

/usr/src/linux-headers-KERNEL_VERSION/include/asm-generic/unistd.h

:)

3
ответ дан 25 July 2018 в 21:35

/usr/src/linux-headers-2.6.38-10-generic/include/linux/unistd.h

или в будущих ядрах:

/usr/src/linux-headers-KERNEL_VERSION/include/asm-generic/unistd.h

:)

3
ответ дан 31 July 2018 в 13:16

/usr/src/linux-headers-2.6.38-10-generic/include/linux/unistd.h

или в будущих ядрах:

/usr/src/linux-headers-KERNEL_VERSION/include/asm-generic/unistd.h

:)

3
ответ дан 2 August 2018 в 03:12

/usr/src/linux-headers-2.6.38-10-generic/include/linux/unistd.h

или в будущих ядрах:

/usr/src/linux-headers-KERNEL_VERSION/include/asm-generic/unistd.h

:)

3
ответ дан 4 August 2018 в 19:06

/usr/src/linux-headers-2.6.38-10-generic/include/linux/unistd.h

или в будущих ядрах:

/usr/src/linux-headers-KERNEL_VERSION/include/asm-generic/unistd.h

:)

3
ответ дан 6 August 2018 в 03:24

/usr/src/linux-headers-2.6.38-10-generic/include/linux/unistd.h

или в будущих ядрах:

/usr/src/linux-headers-KERNEL_VERSION/include/asm-generic/unistd.h

:)

3
ответ дан 7 August 2018 в 21:10

Другие вопросы по тегам:

Похожие вопросы: