Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö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; //Õû¸ö±¨Îij¤¶È²»¿ÉÄܱȱ¨Í·³¤¶ÈС
 if (pskb_tr


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

linux ³ÌÐòÄÚ²¿ ²é¿´¿ÉÖ´ÐгÌÐò·¾¶

linux shell pwd ÏÔʾµ±Ç°Â·¾¶
¼ÙÈôÓÐtest.cpp
g++ test.cpp -o test
./test
ÏëÔÚtestÖÐÕÒµ½µ±Ç°Ö´ÐгÌÐòËùÔڵķ¾¶
¿ÉÒÔÔÙtest.cppÖÐʹÓÃreadlinkº¯Êý
¾ßÌå¼ûÈçÏÂʵÀý£º
#include<iostream>
#include<unistd.h>
#include<dirent.h>
#include<string.h>
#include<string>
using ......

LinuxÖеÄÑÓʱº¯Êý¼°»ñȡϵͳʱ¼äº¯Êý

Ó¦Óò㣺
   #include <unistd.h>
 
   1¡¢unsigned int sleep(unsigned int seconds); Ãë¼¶
   2¡¢int usleep(useconds_t usec);              ΢Ãë¼¶£º1/10^-6 
 
   #define _PO ......

linux϶¯Ì¬Á´½Ó¿âµÄ¼ÓÔØ¼°½âÎö¹ý³Ì

http://hi.baidu.com/hust_chen/blog/item/54a8c516231d0c0ec93d6d3e.html
linux϶¯Ì¬Á´½Ó¿âµÄ¼ÓÔØ¼°½âÎö¹ý³Ì£¨ZZ£©
2008-12-18 15:19
±íÃæÉÏ¿´£¬¶¯Ì¬Á´½Ó¿â£¨dll£©µÄ¼ÓÔØ¼°½âÎöÊÇÒ»¸öÊ®·Ö·±¸´µÄ¹ý³Ì£¬ÆäÖÐÇ£Éæµ½µÄÊý¾Ý½á¹¹¼°ÆäÖ®¼äµÄ¹ØÏµÒ²ÈÃÈËÍû¶øÉúη¡£Whatever£¬Ñ§Ï°Õâ ÊÂÇ飬˵µ½µ×ÊÇûÓнݾ¶¿É×ߵ쬳ýÁËËÀ¿Ð½öÓÐ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ