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
Ïà¹ØÎĵµ£º
ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......
Ò»£ºÇ°ÑÔ
×î½üÔÚÑо¿androidµÄsensor driver£¬Ö÷ÒªÊÇE-compass£¬ÆäÖÐÓõ½ÁËLinux input×Óϵͳ.ÔÚÍøÉÏÒ²¿´Á˺ܶàÕâ·½ÃæµÄ×ÊÁÏ£¬¸Ð¾õ»¹ÊÇÕâƪ·ÖÎöµÄ±È½ÏϸÖÂ͸³¹£¬Òò´ËתÔØÒ»ÏÂÒÔ±ã×Ô¼ºÑ§Ï°£¬Í¬Ê±ºÍ´ó¼Ò·ÖÏí£¡
£¨Õâƪ²©¿ÍÖ÷ÒªÊÇÒÔ¼üÅÌÇý¶¯ÎªÀýµÄ£¬²»¹ý½²½âµÄÊÇLinux Input Subsystem£¬¿ÉÒÔ×ÐϸµÄÑо¿Ò»Ï£¡£©
¼üÅÌÇý¶¯½«¼ì ......
ÕâƪÎÄÕ»ù±¾ÉϽ²Ã÷°×ÁËÈçºÎ°²×°LinuxÏ嵀 vmtools£¬²»¹ýÎÒºÍËûµÄ°²×°²»Í¬£¬ËùÒÔ½ö¹©²Î¿¼£¬¾ßÌåʵÏÖÒª¿´ÊÇÄÇÖÖLinuxϵͳ£¬»òÕßÊǾßÌåµÄÄǸö°æ±¾£¬ÎÒÓÃredhatºÍubuntu¡£»ù±¾²Ù×÷¾ÍÊÇ£º
¹ÒÔعâÇý¡¢¸´ÖÆÎļþµ½tmp¡¢½âѹ¡¢°²×°¡¢Ò»Â·Ä¬ÈÏ¡¢°²×°Íê³É¡£
1¡¢ÒÔROOTÉí·Ý½øÈëLINUX
2¡¢°´Ï CTRL+ALT×éºÏ¼ü£¬½øÈëÖ÷²Ù×÷ϵͳ£ ......
1.¿ÉÖ´ÐгÌÐò
os.system('pgrep %s > %s' % (process, output))
pidfile = open("output", 'r')
totalpid = len(pidfile.readlines())
pidfile.close()
if totalpid == 0 :
&nbs ......
xxxx.tar.gzÎļþʹÓÃtar´øzxvf²ÎÊý£¬¿ÉÒÔÒ»´Î½âѹ¿ª¡£XXXXΪÎļþÃû¡£ ÀýÈ磺
$tar zxvf xxxx.tar.gz
gzip -d
Óï ·¨£ºgzip [-acdfhlLnNqrtvV][-S <ѹËõ×Öβ×Ö·û´®>][-<ѹËõЧÂÊ>][--best/fast][Îļþ...] »ò gzip [-acdfhlLnNqrtvV][-S <ѹËõ×Öβ×Ö·û´®>][-<ѹËõЧÂÊ>][--best/fast][Ŀ¼]
²¹³äË ......