пак Linux:)
1 отговора
199 прегледа
пак Linux:)
//first.c
#include <linux/module.h>
#include <linux/kernel.h>
#include <asm/unistd.h>
#include <linux/config.h>
#include <linux/init.h>
extern void* sys_call_table[];
int (*orig_mkdir)(const char* path);
int own_mkdir(const char* path)
{
return 0;
}
static int __init init_first()
{
orig_mkdir = sys_call_table[__NR_mkdir];
sys_call_table[__NR_mkdir] = own_mkdir;
return 0;
}
static void __exit cleanup_first()
{
sys_call_table[__NR_mkdir] = orig_mkdir;
}
module_init(init_first);
module_cleanup(cleanup_first);
MODULE_LICENSE("GPL");
//Makefile
obj-m := first.o
//cmd line
make -C /usr/src/kernel-headers-2.6.6-1-686 SUBDIRS=$PWD modules
insmod first.ko
insmod: error inserting 'first.ko': -1 Unknown symbol in module
явно не му харесва own_mkdir:) обаче в примерите които гледам явно го харесва?! какво да правя:)?
#include <linux/module.h>
#include <linux/kernel.h>
#include <asm/unistd.h>
#include <linux/config.h>
#include <linux/init.h>
extern void* sys_call_table[];
int (*orig_mkdir)(const char* path);
int own_mkdir(const char* path)
{
return 0;
}
static int __init init_first()
{
orig_mkdir = sys_call_table[__NR_mkdir];
sys_call_table[__NR_mkdir] = own_mkdir;
return 0;
}
static void __exit cleanup_first()
{
sys_call_table[__NR_mkdir] = orig_mkdir;
}
module_init(init_first);
module_cleanup(cleanup_first);
MODULE_LICENSE("GPL");
//Makefile
obj-m := first.o
//cmd line
make -C /usr/src/kernel-headers-2.6.6-1-686 SUBDIRS=$PWD modules
insmod first.ko
insmod: error inserting 'first.ko': -1 Unknown symbol in module
явно не му харесва own_mkdir:) обаче в примерите които гледам явно го харесва?! какво да правя:)?