易截截图软件、单文件、免安装、纯绿色、仅160KB

Linux netfilter源码分析(1)

转贴自:http://alexanderlaw.blog.hexun.com/8960896_d.html
Linux netfilter源码分析(1)
内容基本上来自两篇文章:
《Netfilter源码分析》—(独孤九贱http://www.skynet.org.cn/index.php)
《Linux Netfilter实现机制和扩展技术》——(杨沙洲 国防科技大学计算机学院)
一、   IP报文的接收到hook函数的调用
 
1.1  ip_input.c    ip_rcv()函数
以接收到的报文为例,类似的还有ip_forward(ip_forward.c)和ip_output(ip_output.c)
int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt, struct net_device *orig_dev)
{
    struct iphdr *iph;   //定义一个ip报文的数据报头
    u32 len;
    if (skb->pkt_type == PACKET_OTHERHOST)
       goto drop;  //数据包不是发给我们的
    IP_INC_STATS_BH(IPSTATS_MIB_INRECEIVES); //收到数据包统计量加1
    if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL)
   {
/* 如果数据报是共享的,则复制一个出来,此时复制而出的已经和socket脱离了关系 */
      IP_INC_STATS_BH(IPSTATS_MIB_INDISCARDS);
      goto out;
   }
   if (!pskb_may_pull(skb, sizeof(struct iphdr)))
     goto inhdr_error;  //对数据报的头长度进行检查,
 
   iph = skb->nh.iph;  //取得数据报的头部位置
  if (iph->ihl < 5 || iph->version != 4)  //版本号或者头长度不对,
    goto inhdr_error; //头长度是以4字节为单位的,所以5表示的是20字节
  if (!pskb_may_pull(skb, iph->ihl*4))
    goto inhdr_error;
 
  if (unlikely(ip_fast_csum((u8 *)iph, iph->ihl)))
     goto inhdr_error; //检查报文的检验和字段
  len = ntohs(iph->tot_len);
 if (skb->len < len || len < (iph->ihl*4))
    goto inhdr_error; //整个报文长度不可能比报头长度小
 if (pskb_tr


相关文档:

linux设备文件系统sysfs介绍

      linux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中两种。
1,devfs:devfs是在2.4内核就出现了,它是用来解决linux中设备管理混乱的问题,linux内核开发人员开发了devfs。
2,sysfs:是Linux 内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与proc 有些类似,但 ......

虚拟机下linux挂载U盘

需要让你的虚拟机Guest OS(Linux)能自动识别U盘。
方法如下:
保持焦点在Linux上,插入U盘,这时宿主操作系统Windows会弹出“找到新设备的提示”,然后一步一步
的点下一步,结束以后,就可以在linux使用fdisk -l /dev/sdb命令查看到/dev/sdb1。
在虚拟机识别出USB之后,用
fdisk -l /dev/sdb

fdisk -l ......

linux下动态链接库的加载及解析过程

http://hi.baidu.com/hust_chen/blog/item/54a8c516231d0c0ec93d6d3e.html
linux下动态链接库的加载及解析过程(ZZ)
2008-12-18 15:19
表面上看,动态链接库(dll)的加载及解析是一个十分繁复的过程,其中牵涉到的数据结构及其之间的关系也让人望而生畏。Whatever,学习这 事情,说到底是没有捷径可走的,除了死啃仅有 ......

【转】在Windows中显示Linux的图形界面

xmanager secureCRT结合使用
环境:在xp中安装虚拟机vmware ,host-only方式虚拟Linux系统。xp的ip为192.168.0.1,虚拟机Linux为192.168.0.88
在xp中安装xmanager和secureCRT ,默认情况下CRT不能显示图形界面,通过以下配置可以实现在Windows下的CRT里显示Linux中的oracle图形界面:
以oracle用户登陆Linux,修改.ba ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号