当前位置:编程学习 > 网站相关 >>

高版本内核写rootkit将会更加方便

高版本内核中使用jprobe提供得强大钩子接口,可以方便的hook任何内核函数。写lkm rootkit将越来越方便了。

C#代码
#include <linux/kernel.h>  
#include <linux/module.h>  
#include <linux/kprobes.h>  
#include <linux/kallsyms.h>  
#include <linux/fs.h>  
#include <linux/ip.h>  
#include <linux/tcp.h>  
#include <asm/uaccess.h>   
  
static struct jprobe jp;   
  
asmlinkage long new_sys_connect(int fd, struct sockaddr __user *uservaddr, int addrlen)   
{   
        printk("socket fd: %d ", fd);   
  
        jprobe_return();   
        return 0;   
}   
  
int init_module(void)   
{   
        int ret;   
  
        jp.entry = (kprobe_opcode_t *) new_sys_connect;   
        jp.kp.addr = (kprobe_opcode_t *)0xc05a39ab;   
        if (!jp.kp.addr) {   
                printk("Couldnt find the address of sys_open ");   
                return -1;   
        }   
  
        if ((ret = register_jprobe(&jp)) <0) {   
                printk("register_jprobe failed, returned %d ", ret);   
                return -1;   
        }   
        printk("Registered a jprobe. ");   
        return 0;   
}   
  
void cleanup_module(void)   
{   
        unregister_jprobe(&jp);   
        printk("jprobe unregistered ");   
}   
  
MODULE_LICENSE("GPL");  

补充:综合编程 , 安全编程 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,