安全中国首页 > 文章中心 > 黑客编程
 
安全中国网友投稿专用上传FTP空间:
Ftp服务器:download.anqn.com
Ftp端口:21
用户名:anqn
密 码:anqn.com
 

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

更新时间:2008-8-4 0:31:46
责任编辑:池天
热 点:

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

C#代码
  1. #include <linux/kernel.h>  
  2. #include <linux/module.h>  
  3. #include <linux/kprobes.h>  
  4. #include <linux/kallsyms.h>  
  5. #include <linux/fs.h>  
  6. #include <linux/ip.h>  
  7. #include <linux/tcp.h>  
  8. #include <asm/uaccess.h>   
  9.   
  10. static struct jprobe jp;   
  11.   
  12. asmlinkage long new_sys_connect(int fd, struct sockaddr __user *uservaddr, int addrlen)   
  13. {   
  14.         printk("socket fd: %d\n", fd);   
  15.   
  16.         jprobe_return();   
  17.         return 0;   
  18. }   
  19.   
  20. int init_module(void)   
  21. {   
  22.         int ret;   
  23.   
  24.         jp.entry = (kprobe_opcode_t *) new_sys_connect;   
  25.         jp.kp.addr = (kprobe_opcode_t *)0xc05a39ab;   
  26.         if (!jp.kp.addr) {   
  27.                 printk("Couldn't find the address of sys_open\n");   
  28.                 return -1;   
  29.         }   
  30.   
  31.         if ((ret = register_jprobe(&jp)) <0) {   
  32.                 printk("register_jprobe failed, returned %d\n", ret);   
  33.                 return -1;   
  34.         }   
  35.         printk("Registered a jprobe.\n");   
  36.         return 0;   
  37. }   
  38.   
  39. void cleanup_module(void)   
  40. {   
  41.         unregister_jprobe(&jp);   
  42.         printk("jprobe unregistered\n");   
  43. }   
  44.   
  45. MODULE_LICENSE("GPL");   

 
相关文章
一日一文章
 
一日一软件
一日一动画