KHOOK v1.0

good-penguin.png

Тихо и незаметно вышла первая стабильная версия встраиваемого фреймворка (движка) перехвата функций для ядра Linux — KHOOK v1.0

Особенностью данного ПО является то, что перехват осуществляется путём модификации (патчинга) пролога функции, сохраняя возможность вызова оригинальной функции, и не зависит от наличия в целевом ядре такого механизма как kprobes.

Кроме того, для определения количества инструкций процессора необходимых к сохранению при модификации пролога, используется встроенный в ядро дизассемблер длин, а единственной поддерживаемой архитектурой на данный момент является x86.

В качестве примера использования, ниже приведён код перехвата функции ядра inode_permission (…):

#include  // has inode_permission() proto
KHOOK(inode_permission);
static int khook_inode_permission(struct inode *inode, int mask)
{
        int ret = 0;
        ret = KHOOK_ORIGIN(inode_permission, inode, mask);
        printk("%s(%p, %08x) = %d\n", __func__, inode, mask, ret);
        return ret;
}

>>> Подробности

©  Linux.org.ru