В ядре Linux 6.8:
Я пытаюсь украсть системный вызов stat
Я пытаюсь изменить возвращаемые аргументы системных вызовов в Linux.
Но путь не изменился, а значения статистики плохие:
ls -l
[...]
-????????? ? ? ? ? ? Makefile
-????????? ? ? ? ? ? modules.order
-????????? ? ? ? ? ? Module.symvers
-????????? ? ? ? ? ? time_routines.c
[...]
Вот я код:
Я использую этот вопрос (не могу прочитать аргументы системного вызова из обработчика kprobe).
Но мне удалось разобраться с этим аргументом.< /p>
#include
#include
#include
MODULE_VERSION("v.0");
MODULE_LICENSE("GPL");
MODULE_AUTHOR("Flavien ASTRAUD ");
MODULE_DESCRIPTION("ex. pour interception d'un syscall");
static void __kprobes m_statx(struct kprobe *p, struct pt_regs *regs,
unsigned long flags)
{
long r = 0;
char path[128];
struct pt_regs *user_regs = (struct pt_regs *)regs->di;
struct statx statxbuf; // (struct statx *) regs->r8;
// char *path = (char *)user_regs->si;
r = strncpy_from_user(path, (char __user *)user_regs->si, 128);
path[0] = 'X';
path[1] = 'Y';
r = copy_from_user(&statxbuf, (struct statx *)user_regs->r8,
sizeof (struct statx));
pr_info("STATX_V2: %s size=%lld\n", path, statxbuf.stx_size);
pr_info("STATX: [%s]\n", path);
statxbuf.stx_size = 42;
r = copy_to_user((char __user *)user_regs->si, path, strlen(path)+1);
r = copy_to_user((struct statx *)user_regs->r8,
&statxbuf, sizeof(statxbuf));
return;
}
struct kprobe kp = {
.symbol_name = "__x64_sys_statx",
.post_handler = m_statx,
};
static int override_statx(void)
{
if (register_kprobe(&kp) < 0)
return 0;
pr_info("sym addr : [%pK]\n", kp.addr);
return 0;
}
static void pullback_syscall(void)
{
unregister_kprobe(&kp);
return;
}
static int __init kstatx_init(void)
{
pr_info("kstatx INIT\n=============\n");
override_statx();
return 0;
}
static void __exit kstatx_exit(void)
{
pr_info("kstatx END\n=============\n");
pullback_syscall();
}
module_init(kstatx_init);
module_exit(kstatx_exit);
Подробнее здесь: https://stackoverflow.com/questions/790 ... kernel-6-8
Изменение // кража системных вызовов Linux с помощью kprode в ядре 6.8 ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение