| 導購 | 订阅 | 在线投稿
分享
 
 
當前位置: 王朝網路 >> perl >> 用PERL實現一個簡單的NIDS
 

用PERL實現一個簡單的NIDS

2008-05-19 03:00:21  編輯來源:互聯網  简体版  手機版  評論  字體: ||
 
 
  隨著對網絡安全需求的深入開發,基于網絡的入侵檢測技術已經成爲一個重要且有意思的研究方向。想學習NIDS技術除了去讀一些現成的資料和一些開源系統的源碼,最好的辦法莫過于自己去寫一個NIDS程序,只有那樣才能真正體會到一些NIDS的實現需求和設計妙處。

  本質上說NIDS只是一種網絡流量的分析工具,通過對網絡流量的分析識別出一些已知或未知的攻擊行爲,一個最簡單的NIDS完成的主要工作也就是抓包-協議解碼-匹配,衆所周知PERL是極其強大的腳本語言,尤其是它的字符串處理能力可以方便地實現對于網絡流量中惡意特征進行匹配。當然PERL畢竟只是腳本語言,它的執行效率不允許用于真正大流量生産性環境,但PERL的簡單易學及強大功能對于實現一個簡單的NIDS達到學習的目的無疑是非常好的,下面我介紹一個用PERL實現的簡單NIDS框架,我們將在Linux下實現它,在其他操作系統上類似。

  PERL的一個強大特性就在于它海量的CPAN模塊庫,很多你想實現的功能都可以找到現成的模塊,你所要做的只是安裝上那些模塊即可,關于PERL的模塊及面向對象特性的管理和使用在這就不介紹了,請參看相關資料,比如O'REILLY出版的《高級Perl編程》。在用PERL編寫網絡流量分析腳本之前,需要安裝一些底層的抓包及基本的數據包解碼模塊,包括如下這些:

  http://www.tcpdump.org/release/libpcap-0.8.1.tar.gz

  底層基本的抓包庫。

  http://www.cpan.org/authors/id/T/TI/TIMPOTTER/Net-Pcap-0.04.tar.gz

  libpcap的PERL接口。

  http://www.cpan.org/authors/id/T/TI/TIMPOTTER/Net-PcapUtils-0.01.tar.gz

  Net-Pcap模塊的wrapper,包裝Net-Pcap的函數,可以更方便地在PERL裏調用抓包。

  http://www.cpan.org/authors/id/T/TI/TIMPOTTER/NetPacket-0.03.tar.gz

  用于基本的IP/TCP/UDP等包解碼的模塊,剝除各種協議頭,抽取各個字段。

  下面的代碼演示了一個帶有基本SMB和FTP協議解碼模塊的最簡單NIDS框架,此程序實現最簡單的NIDS功能,面向單包,不關心包的狀態,不具備高級的商業NIDS産品諸如流重組,包狀態及應用層協議的跟蹤等功能。爲了提高檢測的准確性,與Snort直接匹配數據區不同的是,這個腳本實現了兩個應用層協議:SMB、FTP的簡單解碼,解碼完全是面向NIDS的需要,代碼也沒有經過仔細的測試可能存在問題,有什麽建議可聯系我。

  perl-ids.pl

  實現抓包及檢測分析的主程序。

  ------------------------------ 8< ----------------------------------------

  #!/usr/bin/perl

  #

  # Comments/suggestions to stardust at xfocus dot org

  #

  #

  # $Id: perl-ids.pl,v 1.16 2004/03/04 21:51:12 stardust Exp $

  #

  # 引用所有相關的模塊

  use Net::PcapUtils;

  use NetPacket::Ethernet qw(:strip);

  use NetPacket::TCP;

  use NetPacket::IP qw(:protos);

  use NetPacket::SMB;

  use NetPacket::FTP;

  # 定義日志文件名

  $workingdir = "./";

  $attacklog = "attack.log";

  $monitorlog = "monitor.log";

  # 以後台進程方式運行

  daemon ();

  sub daemon {

  unless (fork) {

  SniffLoop ();

  exit 0;

  }

  exit 1;

  }

  # 抓包循環

  sub SniffLoop {

  # 進入工作目錄

  chdir ("$workingdir");

  # 打開日志文件

  open (ATTACKLOG," $attacklog");

  open (MONITORLOG," $monitorlog");

  # 設置文件讀寫爲非緩沖模式

  select(ATTACKLOG); $|++; select(MONITORLOG); $|++; select(STDOUT); $|++;

  # 設置信號處理函數,因爲程序運行于後台,退出時需要利用信號處理函數做些清理工作

  $SIG{"INT"} = 'HandleINT';

  $SIG{"TERM"} = 'HandleTERM';

  # 進入抓包回調函數

  Net::PcapUtils::loop(\&sniffit, SNAPLEN = 1800, Promisc = 1, FILTER = 'tcp or udp', DEV = 'eth0');

  }

  sub sniffit {

  my ($args,$header,$packet) = @_;

  # 解碼IP包

  $ip = NetPacket::IP-decode(eth_strip($packet));

  # TCP協議

  if ($ip-{proto} == IP_PROTO_TCP) {

  # 解碼TCP包

  $tcp = NetPacket::TCP-decode($ip-{data});

  # 檢查來自SMB客戶端的包

  if (($tcp-{dest_port} == 139) || ($tcp-{dest_port} == 445)) {

  # 如果目的端口是139或445,認爲是SMB協議包,做相應的檢查

  SmbClientCheck ($ip-{src_ip},$tcp-{src_port},$ip-{dest_ip},$tcp-{dest_port},$tcp-{data});

  } elsif ($tcp-{dest_port} == 21) {

  # 如果目的端口是21,認爲是FTP協議,做相應的檢查

  FtpClientCheck ($ip-{src_ip},$tcp-{src_port},$ip-{dest_ip},$tcp-{dest_port},$tcp-{data});

  } else {}

  # UDP協議

  } elsif ($ip-{proto} == IP_PROTO_UDP) {

  } else {}

  }

  sub SmbClientCheck {

  my ($src_ip,$src_port,$dest_ip,$dst_port,$data) = @_;

  # 調用SMB解碼模塊解碼

  $smb = NetPacket::SMB-decode($data);

  # 如果解碼成功

  if ($smb-{valid}) {

  # 示例檢測新近公布eeye的那個ASN.1解碼錯誤導致的堆破壞漏洞

  # BID:9633,9635 CVEID:CAN-2003-0818 NSFOCUSID:6000

  # 如果SMB命令是Session Setup AndX

  if ($smb-{cmd} == 0x73) {

  # 如果設置了Extended Security Negotiation位,表示有包裏有Security Blob

  if ($smb-{flags2} & F2_EXTSECURINEG) {

  # 用正則表達式匹配通常會在攻擊包裏出現的OID及引發錯誤的畸形數據串

  # 由于不是從原理上檢測加之ASN.1編碼的靈活性,這樣的檢測會導致漏報

  if (($smb-{bytecount} 0) && ($smb-{bytes} =~ m/\x06\x06\x2b\x06\x01\x05\x05\x02.*[\xa1\x05\x23\x03\x03\x01\x07|\x84\xff\xff\xff]/)) {

  # 記入日志文件

  LogAlert ($src_ip,$src_port,$dest_ip,$dst_port,"ASN.1 malform encode attack!");

  }

  }

  }

  }

  }

  sub FtpClientCheck {

  my ($src_ip,$src_port,$dest_ip,$dst_port,$data) = @_;

  # 調用FTP解碼模塊解碼

  $ftp = NetPacket::FTP-decode($data);

  # 如果解碼成功

  if ($ftp-{valid}) {

  # 示例檢測新近公布的Serv-U < 5.0.0.4版FTP服務器MDTM命令溢出攻擊

  # BID:9751 NSFOCUSID:6078

  # 遍曆從數據包裏解碼出來的FTP命令及其參數

  for (my $i = 1;$i <= $ftp-{cmdcount};$i++) {

  my $cmd = "cmd"."$i";

  my $para = "para"."$i";

  # 如果FTP命令是MDTM

  if (uc($ftp-{$cmd}) eq "MDTM") {

  # 用正則表達式匹配引發溢出的參數串,這裏體現了正則

  # 表達式的強大,用此匹配可以從原理上檢測到畸形參數串

  if ($ftp-{$para} =~ m/\d{14}[+|-]\S{5,}\s+\S{1,}/) {

  LogAlert ($src_ip,$src_port,$dest_ip,$dst_port,"Serv-U < v5.0.0.4 MDTM command long timezone string overflow attack!");

  }

  }

  }

  }

  }

  # 記錄攻擊告警

  sub LogAlert {

  my ($src_ip,$src_port,$dest_ip,$dst_port,$message) = @_;

  my $nowtime = localtime;

  printf ATTACKLOG ("%s\t%s:%s - %s:%s\t%s\n",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);

  printf ("%s\t%s:%s - %s:%s\t%s\n",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);

  }

  # 記錄監控信息

  sub LogMonitor {

  my ($src_ip,$src_port,$dest_ip,$dst_port,$message) = @_;

  my $nowtime = localtime;

  printf MONITORLOG ("%s\t%s:%s - %s:%s\t%s\n",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);

  printf ("%s\t%s:%s - %s:%s\t%s\n",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);

  }

  # INT信號處理例程

  sub HandleINT {

  CleanUp ();

  exit (0);

  }

  # TERM信號處理例程

  sub HandleTERM {

  CleanUp ();

  exit (0);

  }

  # 清理,主要工作是關閉文件句柄

  sub CleanUp {

  close (ATTACKLOG); close (MONITORLOG);

  }

  ------------------------------ 8< ----------------------------------------

  FTP.pm

  FTP協議解碼模塊,抽取數據包裏的FTP命令及相應的參數,此文件需要拷貝到NetPacket系列模塊所在的目錄,通常是在/usr/lib/perl5/site_perl/5.x.x/NetPacket/

  ------------------------------ 8< ----------------------------------------

  #

  # NetPacket::FTP - Decode FTP packets

  #

  # Comments/suggestions to stardust at xfocus dot org

  #

  #

  # $Id: FTP.pm,v 1.16 2004/03/03 l1:16:20 stardust Exp $

  #
 
 
 
上一篇《使用CPAN安裝Perl模塊》
下一篇《下一代無線網絡技術:HiperLAN/2》
 
 
 
 
 
 
日版寵物情人插曲《Winding Road》歌詞

日版寵物情人2017的插曲,很帶節奏感,日語的,女生唱的。 最後聽見是在第8集的時候女主手割傷了,然後男主用嘴幫她吸了一下,插曲就出來了。 歌手:Def...

兄弟共妻,我成了他們夜裏的美食

老鍾家的兩個兒子很特別,就是跟其他的人不太一樣,魔一般的執著。兄弟倆都到了要結婚的年齡了,不管自家老爹怎麽磨破嘴皮子,兄弟倆說不娶就不娶,老父母爲兄弟兩操碎了心...

如何磨出破洞牛仔褲?牛仔褲怎麽剪破洞?

把牛仔褲磨出有線的破洞 1、具體工具就是磨腳石,下面墊一個硬物,然後用磨腳石一直磨一直磨,到把那塊磨薄了,用手撕開就好了。出來的洞啊很自然的。需要貓須的話調幾...

我就是掃描下圖得到了敬業福和愛國福

先來看下敬業福和愛國福 今年春節,支付寶再次推出了“五福紅包”活動,表示要“把欠大家的敬業福都還給大家”。 今天該活動正式啓動,和去年一樣,需要收集“五福”...

冰箱異味産生的原因和臭味去除的方法

有時候我們打開冰箱就會聞到一股異味,冰箱裏的這種異味是因爲一些物質發出的氣味的混合體,聞起來讓人惡心。 産生這些異味的主要原因有以下幾點。 1、很多人有這種習...

《極品家丁》1-31集大結局分集劇情介紹

簡介 《極品家丁》講述了現代白領林晚榮無意回到古代金陵,並追隨蕭二小姐化名“林三”進入蕭府,不料卻陰差陽錯上演了一出低級家丁拼搏上位的“林三升職記”。...

李溪芮《極品家丁》片尾曲《你就是我最愛的寶寶》歌詞

你就是我最愛的寶寶 - 李溪芮 (電視劇《極品家丁》片尾曲) 作詞:常馨內 作曲:常馨內 你的眉 又鬼馬的挑 你的嘴 又壞壞的笑 上一秒吵鬧 下...

烏梅的功效與作用以及烏梅的食用禁忌有哪些?

烏梅,又稱春梅,中醫認爲,烏梅味酸,性溫,無毒,具有安心、除熱、下氣、祛痰、止渴調中、殺蟲的功效,治肢體痛、肺痨病。烏梅泡水喝能治傷寒煩熱、止吐瀉,與幹姜一起制...

什麽是脂肪粒?如何消除臉部脂肪粒?

什麽是脂肪粒 在我們的臉上總會長一個個像脂肪的小顆粒,弄也弄不掉,而且顔色還是白白的。它既不是粉刺也不是其他的任何痘痘,它就是脂肪粒。 脂肪粒雖然也是由油脂...

網絡安全治理:國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰受害者

來源:中國青年報 新的攻擊方法不斷湧現,黑客幾乎永遠占據網絡攻擊的上風,我們不可能通過技術手段杜絕網絡攻擊。國家安全保障的主要方向是打擊犯罪,而不是處置和懲罰...

河南夫妻在溫嶺網絡直播“造人”內容涉黃被刑事拘留

夫妻網絡直播“造人”爆紅   1月9日,溫嶺城北派出所接到南京警方的協查通告,他們近期打掉了一個涉黃直播APP平台。而根據掌握的線索,其中有一對涉案的夫妻主播...

如何防止牆紙老化?牆紙變舊變黃怎麽辦?

如何防止牆紙老化? (1)選擇透氣性好的牆紙 市場上牆紙的材質分無紡布的、木纖維的、PVC的、玻璃纖維基材的、布面的等,相對而言,PVC材質的牆紙最不透氣...

鮮肌之謎非日本生産VS鮮肌之謎假日貨是謠言

觀點一:破日本銷售量的“鮮肌之謎” 非日本生産 近一段時間,淘寶上架了一款名爲“鮮肌之謎的” 鲑魚卵巢美容液,號稱是最近日本的一款推出的全新護膚品,産品本身所...

中國最美古詩詞精選摘抄

系腰裙(北宋詞人 張先) 惜霜蟾照夜雲天,朦胧影、畫勾闌。人情縱似長情月,算一年年。又能得、幾番圓。 欲寄西江題葉字,流不到、五亭前。東池始有荷新綠,尚小如...

關于女人的經典語句

關于女人的經典語句1、【做一個獨立的女人】 思想獨立:有主見、有自己的人生觀、價值觀。有上進心,永遠不放棄自己的理想,做一份自己喜愛的事業,擁有快樂和成就...

未來我們可以和性愛機器人結婚嗎?

你想體驗機器人性愛嗎?你想和性愛機器人結婚嗎?如果你想,機器人有拒絕你的權利嗎? 近日,第二屆“國際人類-機器人性愛研討會”大會在倫敦金史密斯大學落下帷幕。而...

全球最變態的十個地方

10.土耳其地下洞穴城市 變態指數:★★☆☆☆ 這是土耳其卡帕多西亞的一個著名景點,傳說是當年基督教徒們爲了躲避戰爭而在此修建。裏面曾住著20000人,...

科學家稱,人類死亡後意識將在另外一個宇宙中繼續存活

據英國《每日快報》報道,一位科學家兼理論家Robert Lanza博士宣稱,世界上並不存在人類死亡,死亡的只是身體。他認爲我們的意識借助我們體內的能量生存,而且...

《屏裏狐》片頭曲《我愛狐狸精》歌詞是什麽?

《我愛狐狸精》 - 劉馨棋   (電視劇《屏裏狐》主題曲)   作詞:金十三&李旦   作曲:劉嘉   狐狸精 狐狸仙   千年修...

 
 
 
  隨著對網絡安全需求的深入開發,基于網絡的入侵檢測技術已經成爲一個重要且有意思的研究方向。想學習NIDS技術除了去讀一些現成的資料和一些開源系統的源碼,最好的辦法莫過于自己去寫一個NIDS程序,只有那樣才能真正體會到一些NIDS的實現需求和設計妙處。   本質上說NIDS只是一種網絡流量的分析工具,通過對網絡流量的分析識別出一些已知或未知的攻擊行爲,一個最簡單的NIDS完成的主要工作也就是抓包-協議解碼-匹配,衆所周知PERL是極其強大的腳本語言,尤其是它的字符串處理能力可以方便地實現對于網絡流量中惡意特征進行匹配。當然PERL畢竟只是腳本語言,它的執行效率不允許用于真正大流量生産性環境,但PERL的簡單易學及強大功能對于實現一個簡單的NIDS達到學習的目的無疑是非常好的,下面我介紹一個用PERL實現的簡單NIDS框架,我們將在Linux下實現它,在其他操作系統上類似。   PERL的一個強大特性就在于它海量的CPAN模塊庫,很多你想實現的功能都可以找到現成的模塊,你所要做的只是安裝上那些模塊即可,關于PERL的模塊及面向對象特性的管理和使用在這就不介紹了,請參看相關資料,比如O'REILLY出版的《高級Perl編程》。在用PERL編寫網絡流量分析腳本之前,需要安裝一些底層的抓包及基本的數據包解碼模塊,包括如下這些:   http://www.tcpdump.org/release/libpcap-0.8.1.tar.gz   底層基本的抓包庫。   http://www.cpan.org/authors/id/T/TI/TIMPOTTER/Net-Pcap-0.04.tar.gz   libpcap的PERL接口。   http://www.cpan.org/authors/id/T/TI/TIMPOTTER/Net-PcapUtils-0.01.tar.gz   Net-Pcap模塊的wrapper,包裝Net-Pcap的函數,可以更方便地在PERL裏調用抓包。   http://www.cpan.org/authors/id/T/TI/TIMPOTTER/NetPacket-0.03.tar.gz   用于基本的IP/TCP/UDP等包解碼的模塊,剝除各種協議頭,抽取各個字段。   下面的代碼演示了一個帶有基本SMB和FTP協議解碼模塊的最簡單NIDS框架,此程序實現最簡單的NIDS功能,面向單包,不關心包的狀態,不具備高級的商業NIDS産品諸如流重組,包狀態及應用層協議的跟蹤等功能。爲了提高檢測的准確性,與Snort直接匹配數據區不同的是,這個腳本實現了兩個應用層協議:SMB、FTP的簡單解碼,解碼完全是面向NIDS的需要,代碼也沒有經過仔細的測試可能存在問題,有什麽建議可聯系我。   perl-ids.pl   實現抓包及檢測分析的主程序。   ------------------------------ 8< ----------------------------------------   #!/usr/bin/perl   #   # Comments/suggestions to stardust at xfocus dot org   #   #   # $Id: perl-ids.pl,v 1.16 2004/03/04 21:51:12 stardust Exp $   #   # 引用所有相關的模塊   use Net::PcapUtils;   use NetPacket::Ethernet qw(:strip);   use NetPacket::TCP;   use NetPacket::IP qw(:protos);   use NetPacket::SMB;   use NetPacket::FTP;   # 定義日志文件名   $workingdir = "./";   $attacklog = "attack.log";   $monitorlog = "monitor.log";   # 以後台進程方式運行   daemon ();   sub daemon {   unless (fork) {   SniffLoop ();   exit 0;   }   exit 1;   }   # 抓包循環   sub SniffLoop {   # 進入工作目錄   chdir ("$workingdir");   # 打開日志文件   open (ATTACKLOG," $attacklog");   open (MONITORLOG," $monitorlog");   # 設置文件讀寫爲非緩沖模式   select(ATTACKLOG); $|++; select(MONITORLOG); $|++; select(STDOUT); $|++;   # 設置信號處理函數,因爲程序運行于後台,退出時需要利用信號處理函數做些清理工作   $SIG{"INT"} = 'HandleINT';   $SIG{"TERM"} = 'HandleTERM';   # 進入抓包回調函數   Net::PcapUtils::loop(\&sniffit, SNAPLEN = 1800, Promisc = 1, FILTER = 'tcp or udp', DEV = 'eth0');   }   sub sniffit {   my ($args,$header,$packet) = @_;   # 解碼IP包   $ip = NetPacket::IP-decode(eth_strip($packet));   # TCP協議   if ($ip-{proto} == IP_PROTO_TCP) {   # 解碼TCP包   $tcp = NetPacket::TCP-decode($ip-{data});   # 檢查來自SMB客戶端的包   if (($tcp-{dest_port} == 139) || ($tcp-{dest_port} == 445)) {   # 如果目的端口是139或445,認爲是SMB協議包,做相應的檢查   SmbClientCheck ($ip-{src_ip},$tcp-{src_port},$ip-{dest_ip},$tcp-{dest_port},$tcp-{data});   } elsif ($tcp-{dest_port} == 21) {   # 如果目的端口是21,認爲是FTP協議,做相應的檢查   FtpClientCheck ($ip-{src_ip},$tcp-{src_port},$ip-{dest_ip},$tcp-{dest_port},$tcp-{data});   } else {}   # UDP協議   } elsif ($ip-{proto} == IP_PROTO_UDP) {   } else {}   }   sub SmbClientCheck {   my ($src_ip,$src_port,$dest_ip,$dst_port,$data) = @_;   # 調用SMB解碼模塊解碼   $smb = NetPacket::SMB-decode($data);   # 如果解碼成功   if ($smb-{valid}) {   # 示例檢測新近公布eeye的那個ASN.1解碼錯誤導致的堆破壞漏洞   # BID:9633,9635 CVEID:CAN-2003-0818 NSFOCUSID:6000   # 如果SMB命令是Session Setup AndX   if ($smb-{cmd} == 0x73) {   # 如果設置了Extended Security Negotiation位,表示有包裏有Security Blob   if ($smb-{flags2} & F2_EXTSECURINEG) {   # 用正則表達式匹配通常會在攻擊包裏出現的OID及引發錯誤的畸形數據串   # 由于不是從原理上檢測加之ASN.1編碼的靈活性,這樣的檢測會導致漏報   if (($smb-{bytecount} 0) && ($smb-{bytes} =~ m/\x06\x06\x2b\x06\x01\x05\x05\x02.*[\xa1\x05\x23\x03\x03\x01\x07|\x84\xff\xff\xff]/)) {   # 記入日志文件   LogAlert ($src_ip,$src_port,$dest_ip,$dst_port,"ASN.1 malform encode attack!");   }   }   }   }   }   sub FtpClientCheck {   my ($src_ip,$src_port,$dest_ip,$dst_port,$data) = @_;   # 調用FTP解碼模塊解碼   $ftp = NetPacket::FTP-decode($data);   # 如果解碼成功   if ($ftp-{valid}) {   # 示例檢測新近公布的Serv-U < 5.0.0.4版FTP服務器MDTM命令溢出攻擊   # BID:9751 NSFOCUSID:6078   # 遍曆從數據包裏解碼出來的FTP命令及其參數   for (my $i = 1;$i <= $ftp-{cmdcount};$i++) {   my $cmd = "cmd"."$i";   my $para = "para"."$i";   # 如果FTP命令是MDTM   if (uc($ftp-{$cmd}) eq "MDTM") {   # 用正則表達式匹配引發溢出的參數串,這裏體現了正則   # 表達式的強大,用此匹配可以從原理上檢測到畸形參數串   if ($ftp-{$para} =~ m/\d{14}[+|-]\S{5,}\s+\S{1,}/) {   LogAlert ($src_ip,$src_port,$dest_ip,$dst_port,"Serv-U < v5.0.0.4 MDTM command long timezone string overflow attack!");   }   }   }   }   }   # 記錄攻擊告警   sub LogAlert {   my ($src_ip,$src_port,$dest_ip,$dst_port,$message) = @_;   my $nowtime = localtime;   printf ATTACKLOG ("%s\t%s:%s - %s:%s\t%s\n",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);   printf ("%s\t%s:%s - %s:%s\t%s\n",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);   }   # 記錄監控信息   sub LogMonitor {   my ($src_ip,$src_port,$dest_ip,$dst_port,$message) = @_;   my $nowtime = localtime;   printf MONITORLOG ("%s\t%s:%s - %s:%s\t%s\n",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);   printf ("%s\t%s:%s - %s:%s\t%s\n",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);   }   # INT信號處理例程   sub HandleINT {   CleanUp ();   exit (0);   }   # TERM信號處理例程   sub HandleTERM {   CleanUp ();   exit (0);   }   # 清理,主要工作是關閉文件句柄   sub CleanUp {   close (ATTACKLOG); close (MONITORLOG);   }   ------------------------------ 8< ----------------------------------------   FTP.pm   FTP協議解碼模塊,抽取數據包裏的FTP命令及相應的參數,此文件需要拷貝到NetPacket系列模塊所在的目錄,通常是在/usr/lib/perl5/site_perl/5.x.x/NetPacket/   ------------------------------ 8< ----------------------------------------   #   # NetPacket::FTP - Decode FTP packets   #   # Comments/suggestions to stardust at xfocus dot org   #   #   # $Id: FTP.pm,v 1.16 2004/03/03 l1:16:20 stardust Exp $   #
󰈣󰈤
 
 
 
  免責聲明:本文僅代表作者個人觀點,與王朝網路無關。王朝網路登載此文出於傳遞更多信息之目的,並不意味著贊同其觀點或證實其描述,其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,並請自行核實相關內容。
 
 
小龍女彤彤之情溢皇都
龔潔
智能手機形象美女
崔潔彤
回家的路上----
中國一站(哈爾濱)
清明植物園的花。
桃花堤印象之豎版
 
>>返回首頁<<
 
 
 
 熱帖排行
 
 
 
 
© 2005- 王朝網路 版權所有