摘要:
__user表示是一个用户空间的指针,所以kernel不可能直接使用。#ifdef __CHECKER__# define __user __attribute__((noderef, address_space(1)))# define __kernel /* default address space */#else# define __user# define __kernel#endifnoderef告诉编译器,不应该解除该指针的引用,因为在当前地址空间中它是没有意义的。这里的CHECKER表示是否使用了Sprase(就是一种静态分析工具,用来分析内核源码中的BUG)。是不是想研究一下 阅读全文
摘要:
Table of Contents,Show Frames,No FramesChapter 15Linux Data StructuresThis appendix lists the major data structures that Linux uses and which are described in this book. They have been edited slightly to fit the paper.block_dev_structblock_dev_structdata structures are used to register block devices 阅读全文
摘要:
author :deep_pro目前网上的这个exploit(http://www.milw0rm.com/exploits/8369)的分析是有些问题的(http://forum.eviloctal.com/viewthread.php?tid=34942&pid=154634&page=1&extra=page%3D1#pid154634)感谢乱雪给我提供了思路,解释了疑问有问题的内核代码( http://lxr.linux.no/linux+v2.6.29/kernel/exit.c#L951)if (tsk->exit_signal != SIGCHLD 阅读全文
摘要:
udp_sendmsg空指针漏洞分析 by wzt漏洞描述:由于Linux ipv4协议栈中udp_sendmsg()函数设计上存在缺陷, 导致struct rtable *rt以空指针形式传递给ip_append_data(), 从而引发kernel oops,攻击者可以利用此漏洞提升进程权限。漏洞影响2.6.19以下的版本。漏洞成因:>> linux+v2.6.18/net/ipv4/udp.cint udp_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,size_t len){...// rt被 阅读全文