LINUX.ORG.RU

KHOOK v1.0

 , ,


2

1

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

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

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

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

#include <linux/fs.h> // 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;
}

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

★★

Проверено: jollheef ()
Последнее исправление: Shaman007 (всего исправлений: 3)

Ответ на: комментарий от Deleted

Мало строчек, не видно бурной деятельности. +Аесли нужно будет компилировать компилятором 1993года????

anonymous
()

Я так понимаю всякие хаспы эта штука откусит легко...

dem ★★
()

и не зависит от наличия в целевом ядре такого механизма как kprobes.

а единственной поддерживаемой архитектурой на данный момент является x86.

очень нужно, продолжайте в том же духе ))))

vasily_pupkin ★★★★★
()
Ответ на: комментарий от e7z0x1

так есть поддержка, 32/64 бита ... или вам надо специально писать «кошерное» название архитектуры типа x86_64? так даже в ядре Linux, в «arch» оно «arch/x86» зовётся ...

i82 ★★
() автор топика
Ответ на: комментарий от anonymous

Конечно зависит, иначе нужны сигнатуры какие-то/эвристика для поиска символов. Можно конечно передавать адреса параметрами в модуль... Но мне такого не надо было.

i82 ★★
() автор топика

Может расскажите зачем это может понадобиться когда а то противоречие с solid явные

anonymous
()

это что, какие-то аналоги декораторов из питона?

sniper21 ★★★★★
()
Ответ на: комментарий от anonymous

Кому именно понадобиться?

i82 ★★
() автор топика

Как «резидентные» проги в MS-DOS. Или манагеабельный код в винде, но об этом ничего, кроме названия, не знаю.

tomb
()
Ответ на: комментарий от anonymous

отглагольное прилагательное? ну окей... и?

i82 ★★
() автор топика
Ответ на: комментарий от Deleted

Ядро GNU89 использует(то есть C89 + Gnu extensions) и это как раз шаблон из C89

anonymous
()
Ответ на: комментарий от DAGAZ

Малварь плохо делать, да. Для других целей это велосипедостроение, у агрегатов квадратные и хрупкие колеса

annulen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.