Alterar System Call write()

1. Alterar System Call write()

Arantes
AdeusN

(usa Linux Mint)

Enviado em 18/03/2013 - 11:40h

Olá!

Preciso alterar a system call write() do Linux para que o conteúdo a ser gravado em disco seja modificado. Pelo que pesquisei a implementação da system call fica no arquivo linux/fs/read_write.c (vale lembrar que utilizo Linux Mint 12 - Kernel 3.0.30):

419 SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf,
420 size_t, count)
421 {
422 struct file *file;
423 ssize_t ret = -EBADF;
424 int fput_needed;
425
426 file = fget_light(fd, &fput_needed);
427 if (file) {
428 loff_t pos = file_pos_read(file);
429 ret = vfs_write(file, buf, count, &pos);
430 file_pos_write(file, pos);
431 fput_light(file, fput_needed);
432 }
433
434 return ret;
435 }

Alguém poderia me dar uma indicação de como eu faço para alterar a variável "buf", uma vez que ela é definida como uma constante. Eu pensei em copiar ela utilizando a função strcpy() para depois poder alterar os dados, porém não funcionou. Quando recompilei o kernel e reiniciei a máquina deu kernel panic.

Obrigado!


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts