作家
登录

内核exploit——如何应对空指针异常现象

作者: 来源: 2017-10-26 09:24:54 阅读次 我要评论

如今我们随便马虎地就能辨认出漏洞的函数,如下所示:

这一点异常重要,请谨记于心!是以,这两个指针在每次运行时都被设置一次(或者须要的话)。

  1. static ssize_t tostring_write(struct file *f, const char __user *buf,size_t len, loff_t *off) 
  2. { 
  3. char *bufk; 
  4. int i,j; 
  5. printk(KERN_INFO "Tostring: write()\n"); 
  6. bufk = kmalloc(len + 1, GFP_DMA); 
  7. if (bufk){ 
  8. if (copy_from_user(bufk, buf, len)) 
  9.     return -EFAULT; 
  10. bufk[len] = '\0'; 
  11. i=0; 
  12. while(i <len) { 
  13.   for (j=0;(j<10) && (bufk[j]=='*');j++); 
  14.   if (j == 10) { 
  15.     for (j=i+10;(bufk[j]!='\0') && (bufk[j] != '\n');j++); 
  16.     bufk[j]='\0'; 
  17.     printk("Tostring: Cmd %s\n",bufk+i+10); 
  18.     switch(bufk[i+10]) { 
  19.     case 'H': 
  20.       tostring->tostring_read= tostring_read_hexa; 
  21.       break; 
  22.     case 'D': 
  23.       tostring->tostring_read= tostring_read_dec; 
  24.       break; 
  25.     case 'S': 
  26.       printk("Tostring: Delete stack\n"); 
  27.       kfree(tostring->tostring_stack); 
  28.       tostring->tostring_stack=NULL; 
  29.       tostring->tostring_read=NULL; 
  30.       tostring->pointer=0; 
  31.       tostring->pointer_max=0; 
  32.       break; 
  33.     case 'N': 
  34.       printk("Tostring: Stack create with size %ld\n",local_strtoul(bufk+i+11,NULL,10)); 

      推荐阅读

      别不相信 大数据已经侵入到你生活的方方面面

    沙龙晃荡 | 去哪儿、陌陌、ThoughtWorks在主动化运维中的实践!10.28不见不散! 大年夜数据这个词,几乎天天都邑听到。不过谈到这个词典,要么是科技公司介绍新技巧、要么是专家学者介绍将>>>详细阅读


    本文标题:内核exploit——如何应对空指针异常现象

    地址:http://www.17bianji.com/lsqh/38226.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)