Я написал простой хук, который заменяет системный вызов kill на мой, а также создает новый и добавляет его в конец указателя sys_call_table, все работает нормально, за исключением того, что когда я вызываю системный вызов, но не могу передать аргумент к нему, а также я не могу вызвать системный вызов kill из пространства ядра, он просто ничего не делает. Я должен сказать, что в ядре 4.15 это работало хорошо, но в ядре 4.17 мне пришлось изменить несколько вещей в любом случае, это код моего нового системного вызова
asmlinkage long comu(struct pt_regs *t)
{
printk("%d\n",t.bx);
}
и когда я вызываю его с python с помощью ctypes и отправляю ему номер 0 или 1, он печатает очень высокий номер, и это моя версия sys_kill
asmlinkage long our_sys_kill(struct pt_regs *t)
{
printk("process was killed%ld\n",t->bx);
for( i=0;i<10;i++)
{
if(p[i]==t->bx&&t->cx!=2)
{
return 0;
}
}
return orig_kill(t);
}