自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

數(shù)據(jù)包處理利器——Scapy基礎(chǔ)知識(shí)

大數(shù)據(jù) 數(shù)據(jù)分析
capy是功能強(qiáng)大的交互式數(shù)據(jù)包處理程序。它能夠偽造或解碼各種協(xié)議的數(shù)據(jù)包,在線發(fā)送,捕獲,匹配請(qǐng)求和響應(yīng)等。

[[400032]]

本文轉(zhuǎn)載自微信公眾號(hào)「運(yùn)維開(kāi)發(fā)故事」,作者wanger。轉(zhuǎn)載本文請(qǐng)聯(lián)系運(yùn)維開(kāi)發(fā)故事公眾號(hào)。

什么 是scapy

Scapy是功能強(qiáng)大的交互式數(shù)據(jù)包處理程序。它能夠偽造或解碼各種協(xié)議的數(shù)據(jù)包,在線發(fā)送,捕獲,匹配請(qǐng)求和響應(yīng)等。它可以輕松處理大多數(shù)經(jīng)典任務(wù),例如掃描,跟蹤路由,探測(cè),單元測(cè)試,攻擊或網(wǎng)絡(luò)發(fā)現(xiàn),它可以代替hping,arpspoof,arp-sk,arping,p0f甚至Nmap,tcpdump和tshark的某些部分。。它在其他工具無(wú)法處理的許多其他特定任務(wù)上也表現(xiàn)出色,例如發(fā)送無(wú)效幀,組合技術(shù)(VLAN跳變+ ARP緩存中毒,WEP加密通道上的VOIP解碼等等)

安裝scapy

直接pip安裝即可,我使用的是python3

  1. pip3 install scapy 

scapy基本使用

輸入scapy回車(chē)進(jìn)入scapy的shell 可以使用ls()來(lái)查看scapy支持的協(xié)議

使用lsc()查看scapy支持的函數(shù)

還可以使用ls()獲取協(xié)議包含的參數(shù)

 

發(fā)送和接收數(shù)據(jù)包

send

- 在第3層發(fā)送數(shù)據(jù)包(Scapy創(chuàng)建第2層標(biāo)頭),不接收任何數(shù)據(jù)包。

  • loop 參數(shù)默認(rèn)為0,如果它的值不是0,那么數(shù)據(jù)包將一直循環(huán)發(fā)送,直到按CTRL-C為止。
  • count 可用于設(shè)置要發(fā)送的數(shù)據(jù)包的確切數(shù)量。
  • inter 可用于設(shè)置每個(gè)數(shù)據(jù)包之間的秒數(shù)。
  1. >>> send(IP(dst='8.8.8.8')/TCP(dport=53, flags='S')) 
  2. Sent 1 packets. 
  3. >>>  
  4. >>> send(IP(dst='8.8.8.8')/TCP(dport=53, flags='S'), count=10) 
  5. .......... 
  6. Sent 10 packets. 
  7. >>> 
  8. >>> send(IP(dst='8.8.8.8')/TCP(dport=53, flags='S'), loop=1) 
  9. ......................... [... snipped ...] 
  10. Sent 1503 packets. 

sendp

  • 與send()相同,但在第2層發(fā)送數(shù)據(jù)包(必須提供第2層標(biāo)頭),不接收任何數(shù)據(jù)包。
  • 使用iface到設(shè)置界面上發(fā)送數(shù)據(jù)包。(如果未設(shè)置,將使用conf.iface的值)
  1. >>> sendp(Ether()/IP(dst="1.2.3.4",ttl=(1,4)), iface="eth0"
  2. .... 
  3. Sent 4 packets. 
  4.  
  5. >>> sendp("I’m travelling on Ethernet", iface="eth0", loop=1, inter=0.2) 
  6.  
  7. >>> sendp(rdpcap("/tmp/pcapfile")) # tcpreplay 
  8. ........... 
  9. Sent 11 packets. 

sr

  • 發(fā)送數(shù)據(jù)包并接收響應(yīng)。
  • sr()返回兩個(gè)列表,第一個(gè)列表包含響應(yīng)的,第二個(gè)列表包含未響應(yīng)的。
  1. >>> sr(IP(dst="60.205.177.168")/TCP(dport=[21,22,23])) 
  2. Begin emission: 
  3. Finished sending 3 packets. 
  4. ...**...............................^C 
  5. Received 36 packets, got 2 answers, remaining 1 packets 
  6. (<Results: TCP:2 UDP:0 ICMP:0 Other:0>, 
  7.  <Unanswered: TCP:1 UDP:0 ICMP:0 Other:0>) 
  8. >>> ans,unans=_ 
  9. >>> unans.summary() 
  10. IP / TCP 172.17.51.80:ftp_data > 60.205.177.168:telnet S 
  11. >>> ans[0] 
  12. (<IP  frag=0 proto=tcp dst=60.205.177.168 |<TCP  dport=ftp |>>, 
  13.  <IP  version=4 ihl=5 tos=0x0 len=40 id=53978 flags=DF frag=0 ttl=64 proto=tcp chksum=0x9a1e src=60.205.177.168 dst=172.17.51.80 |<TCP  sport=ftp dport=ftp_data seq=0 ack=1 dataofs=5 reserved=0 flags=RA window=0 chksum=0xe1cf urgptr=0 |>>) 
  14. >>> ans[0][0] 
  15. <IP  frag=0 proto=tcp dst=60.205.177.168 |<TCP  dport=ftp |>> 

sr1

  • 發(fā)送所有數(shù)據(jù)包并僅記錄第一個(gè)響應(yīng)。
  1. >>> p=sr1(IP(dst="www.baidu.com")/ICMP()/"asdqwe"
  2. Begin emission: 
  3. Finished sending 1 packets. 
  4. .* 
  5. Received 2 packets, got 1 answers, remaining 0 packets 

srloop

  • 循環(huán)發(fā)送,接收響應(yīng)并顯示響應(yīng)。
  • 該函數(shù)返回幾個(gè)數(shù)據(jù)包和響應(yīng),以及未響應(yīng)的。
  1. >>> packet = IP(dst='60.205.177.168')/ICMP() 
  2. >>> srloop(packet) 
  3. RECV 1: IP / ICMP 60.205.177.168 > 172.17.51.80 echo-reply 0 
  4. RECV 1: IP / ICMP 60.205.177.168 > 172.17.51.80 echo-reply 0 
  5. RECV 1: IP / ICMP 60.205.177.168 > 172.17.51.80 echo-reply 0 
  6. RECV 1: IP / ICMP 60.205.177.168 > 172.17.51.80 echo-reply 0 
  7. ^C         
  8. Sent 4 packets, received 4 packets. 100.0% hits. 
  9. (<Results: TCP:0 UDP:0 ICMP:9 Other:0>, 
  10.  <PacketList: TCP:0 UDP:0 ICMP:0 Other:0>) 

使用Scapy創(chuàng)建數(shù)據(jù)包

  • Scapy數(shù)據(jù)包的創(chuàng)建與網(wǎng)絡(luò)中的分層方法一致。
  • 數(shù)據(jù)包的基本構(gòu)建塊是一層,而整個(gè)數(shù)據(jù)包則是通過(guò)將各個(gè)層堆疊在一起而構(gòu)建的。
  • scapy通過(guò)在TCP / IP的不同層上為每個(gè)協(xié)議定義數(shù)據(jù)包頭,然后按順序堆疊這些層,來(lái)構(gòu)造數(shù)據(jù)包。

在一行中創(chuàng)建數(shù)據(jù)包

  1. >>> packet = Ether()/IP(dst='8.8.8.8')/TCP(dport=53,flags='S'

分別創(chuàng)建每個(gè)圖層并使用'/'運(yùn)算符將它們堆疊

  1. >>> l2 = Ether() 
  2. >>> l3 = IP(dst='8.8.8.8/30'
  3. >>> l4 = TCP(dport=53, flags = 'S'
  4. >>> packet = l2/l3/l4 

Scapy IP表示法

Scapy接受普通的IP表示法,CIDR表示法,主機(jī)名。

  1. >>> packet = IP(dst = '8.8.8.8'
  2. >>> packet = IP(dst = 'scanme.nmap.org'
  3. >>> packet = IP(dst = '8.8.8.8/30'
  4. >>> [a for a in packet] 
  5. [<IP  dst=8.8.8.8 |>, <IP  dst=8.8.8.9 |>, <IP  dst=8.8.8.10 |>, <IP  dst=8.8.8.11 |>] 
  6. >>> packet = IP(dst = 'egadz.metasploit.com/30'

創(chuàng)建一組數(shù)據(jù)包

我們可以使用Scapy創(chuàng)建一組數(shù)據(jù)包

  1. >>> pkts = IP(ttl=[1,3,5,(7,10)])/TCP() 
  2. >>> [pkt for pkt in pkts] 
  3. [<IP  frag=0 ttl=1 proto=tcp |<TCP  |>>, 
  4.  <IP  frag=0 ttl=3 proto=tcp |<TCP  |>>, 
  5.  <IP  frag=0 ttl=5 proto=tcp |<TCP  |>>, 
  6.  <IP  frag=0 ttl=7 proto=tcp |<TCP  |>>, 
  7.  <IP  frag=0 ttl=8 proto=tcp |<TCP  |>>, 
  8.  <IP  frag=0 ttl=9 proto=tcp |<TCP  |>>, 
  9.  <IP  frag=0 ttl=10 proto=tcp |<TCP  |>>] 
  10.  >>> packet=IP(dst="192.168.*.1-10")/TCP(dport=(0,100)) 
  11.  >>> [a for a in packet] 
  12. [<IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=0 |>>, 
  13.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=tcpmux |>>, 
  14.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=compressnet |>>, 
  15.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=3 |>>, 
  16.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=4 |>>, 
  17.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=rje |>>, 
  18.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=6 |>>, 
  19.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=echo |>>, 
  20.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=8 |>>, 
  21.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=discard |>>, 
  22.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=10 |>>, 
  23.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=systat |>>, 
  24.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=12 |>>, 
  25.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=daytime |>>, 
  26.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=14 |>>, 
  27.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=netstat |>>, 
  28.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=16 |>>, 
  29.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=qotd |>>, 
  30.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=msp |>>, 
  31.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=chargen |>>, 
  32.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=ftp_data |>>, 
  33.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=ftp |>>, 
  34.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=ssh |>>, 
  35.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=telnet |>>, 
  36.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=lmtp |>>, 
  37.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=smtp |>>, 
  38.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=26 |>>, 
  39.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=nsw_fe |>>, 
  40.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=28 |>>, 
  41.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=msg_icp |>>, 
  42.  <IP  frag=0 proto=tcp dst=192.168.1.1 |<TCP  dport=30 |>>, 
  43. ... 

檢查數(shù)據(jù)包

獲取數(shù)據(jù)包的詳細(xì)說(shuō)明以及數(shù)據(jù)類型

  1. >>> packet = IP()/TCP() 
  2. >>> ls(packet) 
  3. version    : BitField             = 4               (4) 
  4. ihl        : BitField             = None            (None) 
  5. tos        : XByteField           = 0               (0) 
  6. len        : ShortField           = None            (None) 
  7. id         : ShortField           = 1               (1) 
  8. flags      : FlagsField           = 0               (0) 
  9. frag       : BitField             = 0               (0) 
  10. ttl        : ByteField            = 64              (64) 
  11. proto      : ByteEnumField        = 6               (0) 
  12. chksum     : XShortField          = None            (None) 
  13. src        : Emph                 = '127.0.0.1'     (None) 
  14. dst        : Emph                 = '127.0.0.1'     ('127.0.0.1'
  15. options    : PacketListField      = []              ([]) 
  16. [-- snipped --] 

show

顯示詳細(xì)的包頭

  1. >>> packet.show() 
  2. ###[ IP ]###  
  3.   version= 4 
  4.   ihl= None 
  5.   tos= 0x0 
  6.   len= None 
  7.   id= 1 
  8.   flags=  
  9.   frag= 0 
  10.   ttl= 64 
  11.   proto= tcp 
  12.   chksum= None 
  13.   src= 127.0.0.1 
  14.   dst= 127.0.0.1 
  15.   \options\ 
  16. ###[ TCP ]###  
  17.      sport= ftp_data 
  18.      dport= http 
  19.      seq= 0 
  20.      ack= 0 
  21.      dataofs= None 
  22.      reserved= 0 
  23.      flags= S 
  24.      window= 8192 
  25.      chksum= None 
  26.      urgptr= 0 
  27.      options= [] 

show2

與show()類似,但可以組裝數(shù)據(jù)包并計(jì)算校驗(yàn)和和IHL(報(bào)頭長(zhǎng)度,最小值是5)。

  1. >>> packet.show2() 
  2. ###[ IP ]###  
  3.   version= 4 
  4.   ihl= 5 
  5.   tos= 0x0 
  6.   len= 40 
  7.   id= 1 
  8.   flags=  
  9.   frag= 0 
  10.   ttl= 64 
  11.   proto= tcp 
  12.   chksum= 0x7ccd 
  13.   src= 127.0.0.1 
  14.   dst= 127.0.0.1 
  15.   \options\ 
  16. ###[ TCP ]###  
  17.      sport= ftp_data 
  18.      dport= http 
  19.      seq= 0 
  20.      ack= 0 
  21.      dataofs= 5 
  22.      reserved= 0 
  23.      flags= S 
  24.      window= 8192 
  25.      chksum= 0x917c 
  26.      urgptr= 0 
  27.      options= [] 

summary

顯示數(shù)據(jù)包的簡(jiǎn)短的摘要

  1. >>> packet.summary() 
  2. 'IP / TCP 127.0.0.1:ftp_data > 127.0.0.1:http S' 

與數(shù)據(jù)包內(nèi)部的字段進(jìn)行交互

  1. >>> Ether(dst="d8:55:a3:fe:80:78")/IP(dst="8.8.8.8"
  2. <Ether  dst=d8:55:a3:fe:80:78 type=IPv4 |<IP  dst=8.8.8.8 |>> 
  3. >>> packet=_ 
  4. >>> packet.dst 
  5. 'd8:55:a3:fe:80:78' 
  6. >>> packet[IP].dst 
  7. '8.8.8.8' 

檢查數(shù)據(jù)包中是否存在層

haslayer方法

  1. >>> if packet.haslayer(IP): 
  2. ...:     print (packet[IP].dst) 
  3. ...:  
  4. 8.8.8.8 

使用in構(gòu)造

  1. >>> pkt = IP()/TCP()/DNS() 
  2. >>> DNS in pkt 
  3. True 

Scapy的sprintf

  • sprintf()方法是Scapy的強(qiáng)大功能之一,在編寫(xiě)自定義工具時(shí)非常方便。
  • sprintf 用數(shù)據(jù)包中的值填充格式字符串,就像C語(yǔ)言庫(kù)中的sprintf一樣,不同的是這里用數(shù)據(jù)包中的字段值填充格式字符串。
  1. >>> packet.sprintf("Ethernet source is %Ether.src% and IP proto is %IP.proto%"
  2. 'Ethernet source is 00:16:3e:0c:d1:ad and IP proto is tcp' 
  3. >>> a.sprintf("%dst% %IP.dst% vlan=%Dot1Q.vlan%"
  4. '00:00:d4:ae:3f:71 192.168.0.1 vlan=42' 
  5. >>> 
  6. >>>a.sprintf(" %TCP.flags% | %5s,TCP.flags% | %#05xr,TCP.flags%"
  7. ' RA | RA    | 0x014' 

數(shù)據(jù)包處理程序

我們可以使用lambda函數(shù)編寫(xiě)處理TCP數(shù)據(jù)包的數(shù)據(jù)包處理程序,但該功能僅適用于TCP數(shù)據(jù)包。

  1. >>>  f=lambda x:x.sprintf("%IP.dst%:%TCP.dport%"
  2. >>> f(IP(dst="8.8.8.8")/TCP()) 
  3. '8.8.8.8:http' 
  4. >>> f(IP(dst="8.8.8.8")/UDP()) 
  5. '8.8.8.8:??' 

還可以使用sprintf()中的條件子字符串來(lái)實(shí)現(xiàn)處理其它層的目的。條件子字符串僅在數(shù)據(jù)包中存在某個(gè)層時(shí)才觸發(fā),否則將被忽略。還可以!用于檢查是否缺少圖層。條件子字符串格式: {[!]層:子字符串}

  1. >>> f=lambda x: x.sprintf("=> {IP:ip=%IP.dst% {UDP:dport=%UDP.dport%}\ 
  2. ...: ... {TCP:%TCP.dport%/%TCP.flags%}{ICMP:type=%r,ICMP.type%}}\ 
  3. ...: ... {!IP:not an IP packet}") 
  4. >>> f(IP()/TCP()) 
  5. '=> ip=127.0.0.1 http/S' 
  6. >>> f(IP()/UDP()) 
  7. '=> ip=127.0.0.1 dport=domain' 
  8. >>> f(IP()/ICMP()) 
  9. '=> ip=127.0.0.1 type=8' 
  10. >>> f(Ether()/ARP()) 
  11. '=> not an IP packet' 

導(dǎo)入與導(dǎo)出數(shù)據(jù)

PCAP格式

從PCAP文件導(dǎo)入數(shù)據(jù)包。

  1. pkts = rdpcap("temp.cap"
  2. pkts = sniff(offline="temp.cap"

將數(shù)據(jù)包導(dǎo)出到pcap文件。

  1. wrpcap("temp.cap",pkts) 

十六進(jìn)制轉(zhuǎn)儲(chǔ)格式

  • Scapy允許以各種十六進(jìn)制格式導(dǎo)出數(shù)據(jù)包。
  • 使用hexdump()函數(shù)使用hexdump格式顯示一個(gè)或多個(gè)數(shù)據(jù)包:
  1. >>> hexdump(s) 
  2. 0000  D8 55 A3 FE 80 78 00 16 3E 0C D1 AD 08 00 45 00  .U...x..>.....E. 
  3. 0010  00 28 00 01 00 00 40 06 8B 5E AC 11 33 50 08 08  .(....@..^..3P.. 
  4. 0020  08 08 00 14 00 50 00 00 00 00 00 00 00 00 50 02  .....P........P. 
  5. 0030  20 00 A0 0D 00 00        

十六進(jìn)制字符串

還可以使用str()函數(shù)將整個(gè)數(shù)據(jù)包轉(zhuǎn)換為十六進(jìn)制字符串

  1. >>> s 
  2. <Ether  dst=d8:55:a3:fe:80:78 type=IPv4 |<IP  frag=0 proto=tcp dst=8.8.8.8 |<TCP  dport=http |>>> 
  3. >>> str(s) 
  4. WARNING: Calling str(pkt) on Python 3 makes no sense! 
  5. "b'\\xd8U\\xa3\\xfe\\x80x\\x00\\x16>\\x0c\\xd1\\xad\\x08\\x00E\\x00\\x00(\\x00\\x01\\x00\\x00@\\x06\\x8b^\\xac\\x113P\\x08\\x08\\x08\\x08\\x00\\x14 
  6. \\x00P\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00P\\x02 \\x00\\xa0\\r\\x00\\x00'" 

Base64

  • Scapy可以使用export_object()函數(shù)導(dǎo)出數(shù)據(jù)包的base64編碼數(shù)據(jù)。
  1. >>> export_object(s) 
  2. b'eNprYEouTk4sqNTLSaxMLSrWyzHici3JSC3iKmTQDCpk1EiOT85PSU0u5krNAzG4Cpki7BkYGA7PCD20+PC+Qw0VDGJ2PIcnHlrLweDKwKDBwMjA4MB2qDvu0BpB4wAOIGAQYQhggIIAJgWGQwt4GRgKmSPYgPycxJLMPMNClrZC1qBCNnfHGxoeDcsdkv2AoKSQPUkPALURLMU=' 
  3. >>> new_pkt = import_object 

嗅探

Sniff()

  • sniff()函數(shù)可幫助我們捕獲所有流量:
  • 包括count,filter,iface,lfilter,prn,timeout選項(xiàng)。
  1. >>> sniff(count=4, iface='eth0'
  2. <Sniffed: TCP:1 UDP:3 ICMP:0 Other:0> 

 

可以添加過(guò)濾以捕獲需要的數(shù)據(jù)包,使用標(biāo)準(zhǔn)的tcpdump / libpcap語(yǔ)法:

  1. >>> pkts = sniff(count=1,filter="tcp and host 60.205.177.168 and port 80"
  2. >>> pkts.summary() 
  3. Ether / IP / TCP 172.17.51.80:54578 > 60.205.177.168:http S 
  • 可以做類似tcpdump的簡(jiǎn)單流量分析器
  1. >>>  pkts = sniff(count=5,filter="host 60.205.177.168",prn=lambda x:x.summary()) 
  2. Ether / IP / TCP 172.17.51.80:54624 > 60.205.177.168:http S 
  3. Ether / IP / TCP 60.205.177.168:54624 > 172.17.51.80:http S 
  4. Ether / IP / TCP 172.17.51.80:http > 60.205.177.168:54624 SA 
  5. Ether / IP / TCP 60.205.177.168:http > 172.17.51.80:54624 SA 
  6. Ether / IP / TCP 172.17.51.80:54624 > 60.205.177.168:http A 
  • 也可以從pcap文件中嗅探數(shù)據(jù)包。
  1. pkts = sniff(offline='test.pcap'
  2. >>> pkts.nsummary() 
  3. 0000 Ether / IP / TCP 172.16.16.128:1606 > 74.125.95.104:http S 
  4. 0001 Ether / IP / TCP 74.125.95.104:http > 172.16.16.128:1606 SA 
  5. 0002 Ether / IP / TCP 172.16.16.128:1606 > 74.125.95.104:http A 
  6. 0003 Ether / IP / TCP 172.16.16.128:1606 > 74.125.95.104:http PA / Raw 
  7. 0004 Ether / IP / TCP 74.125.95.104:http > 172.16.16.128:1606 A / Padding 
  8. >>> sniff(offline='test.pcap', lfilter = lambda s: s[TCP].flags == 18, prn = lambda x: x[IP].dst) 
  9. 192.168.1.1 
  10. <Sniffed: TCP:1 UDP:0 ICMP:0 Other:0> 

 

責(zé)任編輯:武曉燕 來(lái)源: 運(yùn)維開(kāi)發(fā)故事
相關(guān)推薦

2021-05-26 08:01:25

數(shù)據(jù)包Scapy數(shù)據(jù)安全

2010-12-09 21:46:26

Scapy

2021-11-05 15:31:01

UbuntuLinux

2023-05-12 09:40:53

ContextGolang

2020-10-22 08:28:04

大數(shù)據(jù)架構(gòu)技術(shù)

2021-04-29 07:56:04

PythonScapy收包

2010-05-26 17:42:29

IPv6數(shù)據(jù)包

2011-05-12 10:18:41

數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)

2023-09-22 14:57:21

2015-08-26 14:15:12

數(shù)據(jù)挖掘

2010-06-02 13:03:20

MySQL數(shù)據(jù)庫(kù)

2023-03-20 12:06:44

數(shù)據(jù)中心綜合布線

2011-09-16 10:13:02

Emacs

2011-03-29 14:11:20

Cacti基礎(chǔ)知識(shí)

2009-04-10 09:35:00

WCDMA基礎(chǔ)無(wú)線網(wǎng)絡(luò)

2023-07-04 07:31:06

MapReduce數(shù)據(jù)處理編程模型

2010-07-16 11:22:31

Perl

2014-08-20 10:15:45

2009-09-23 11:07:11

Hibernate基礎(chǔ)

2010-07-16 10:53:30

Perl基礎(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)