WIFI:802.11協議幀格式

  802協議楨格式

  802.11和Wi-Fi技術並非同一個東西。Wi-Fi標準是802.11標準的一個子集,而且是Wi-Fi聯盟負責管理html

  802協議楨格式:算法

協議 發佈年份/日期 Op.標準頻寬 實際速度 (標準) 實際速度(最大) 半徑範圍(室內) 半徑範圍(室外)
Legacy 1997 2.4-2.5 GHz 1 Mbit/s 2 Mbit/s  ?  ?
802.11a 1999 5.15-5.35/5.47-5.725/5.725-5.875 GHz 25 Mbit/s 54 Mbit/s 約30米 約45米[3]
802.11b 1999 2.4-2.5 GHz 6.5 Mbit/s 11 Mbit/s 約30米 約100米
802.11g 2003 2.4-2.5 GHz 25 Mbit/s 54 Mbit/s 約30米 約100米
802.11n 2009 2.4 GHz or 5 GHz bands 300 Mbit/s (20MHz*4 MIMO) 600 Mbit/s (40MHz*4 MIMO) 約70米 約250米
802.11p 2009 5.86-5.925 GHz 3 Mbit/s 27 Mbit/s 約300米 約1000米
802.11ac 2011.11 5 GHz 433Mbit/s, 867Mbit/s (80MHz), (160MHz爲可選) 867Mbit/s, 1.73 Gbit/s, 3.47 Gbit/s, 6.93 Gbit/s (8 MIMO, 160MHz) 約35米[4]

  

  無線網絡協議楨的分類

  類型和字段定義了無線網絡的三種類型,分別是:小程序

  1: Management frames,它的主要做用是維護接入點和無線客戶端之間的通訊,管理該框架擁有如下子類型:數組

    Authentication緩存

    De-authenticationsass

    Association Request安全

    Association Response微信

    Reassociation Request網絡

    Reassociation Response框架

    Disassociation

    Beacon

    Probe Request

    Probe Response

   2:  Control frames

    控制幀是負責客戶端和接入點的數據交換,類型爲:

    Request to Send (RTS)    Clear to Send (CTS)    Acknowledgement (ACK)

    這些數據能夠在一些報文請求中看到。 

   3: Data frames

  這些不一樣類別的數據包被統稱爲"數據包類型"。

  WLAN有如下三種網絡拓撲結構

1) 獨立基本服務集(Independent BSS, IBSS)網絡(也叫ad-hoc網絡)
2) 基本服務集(Basic Service Set, BSS)網絡
3) 擴展服務集(Extent Service Set, ESS)網絡

  1) AD-Hoc網絡

  win7自帶的AD-Hoc組建功能,可讓咱們很方便的在一個小範圍內快速組建"局域網",聯網打遊戲啥的很方便

  2) BSS網絡

對於我的PC來講,使用最多的所謂"無線Wi-Fi"指的就是BSS網絡模式,咱們經過AP(Access Point)接入點來接入網絡

  3) ESS網絡

其中,ESS中的DS(分佈式系統)是一個抽象系統,用來鏈接不一樣BSS的通訊信道(經過路由服務),這樣就能夠消除BSS中STA與STA之間直接傳輸距離受到物理設備的限制。

 

  無線網絡協議楨的三種類型

  咱們知道數據鏈路層是一個很靠近底層的通訊協議,它使用Bit來表示信息(也使用Bit來標識數據包的開始和結束),因此數據鏈路層的協議格式並無強制要求一個固定的長度,即802.11協議長度是可變的。不一樣功能的數據幀長度會不同。這一特性說明mac802.11數據幀顯得更加靈活,然而,也會更加複雜。

  mac 802.11的數據幀長度不定主要是因爲如下幾點決定的

1. mac地址數目不定,根據幀類型不一樣,mac 802.11的mac地址數會不同。好比說 ACK幀僅有一個mac地址,而數據幀有3個mac地址,在WDS模式下,幀頭有4個mac地址。
2. 802.11的管理幀所攜帶的信息長度不定,在管理幀中,不只僅只有一些相似於mac地址,分片標誌之類的這些信息,並且另外還會包括一些其它的信息,這些信息有關於安全設置的,有關於物理
通訊的,好比說咱們的SSID名稱就是經過管理幀得到的。AP會根據不一樣的狀況發送包含有不一樣信息的管理幀。 
3. 加密(wep,wpa等)信息,QOS(quality of service)信息,如有加密的數據幀格式和沒有加密的數據幀格式還不同,加密數據幀格式還多了個加密頭,用於解密用。然則QOS也是一樣道理

  1: 控制幀

  0x0: Frame Control字節結構:

  2: 管理幀

  0x1: 管理幀協議格式

(Beacon(信標)幀)

(Probe Request(探測請求)幀)

(Probe Response(探測響應)幀)

(ATIM幀)

(Disassociation(解除關聯)與Deauthentication(解除認證)幀)

(Association Request(關聯請求)幀)

(Reassociation Request(從新關聯請求)幀)

(Authentication(身份認證)幀)

   管理幀協議格式 字節順序解析:

1. 幀控制結構(Frame Control)
    1) Protocol Version: (協議版本)一般爲0
    2) Type: 幀類型,管理幀: 00 
    3) Subtype: 進一步判斷幀的子類型 
        3.1) Beacon(信標)幀
        3.2) Probe Request(探測請求)幀
        3.3) Probe Response(探測響應)幀
        3.4) ATIM幀
        3.5) Disassociation(解除關聯)
        3.6) Deauthentication(解除認證)幀
        3.7) Association Request(關聯請求)幀
        3.8) Reassociation Request(從新關聯請求)幀
        3.9) Authentication(身份認證)幀
    4) To DS: 代表該幀是不是BSS向DS發送的幀 
    5) From DS: 代表該幀是不是DS向BSS發送的幀 
    6) More Fragment: 用於說明長幀被分段的狀況,是否還有其它的幀,若是有則該值設置爲1
    7) Retry(重傳域): 表示該分段是先前傳輸分段的重發幀。 
    8) Power Management: 表示傳輸幀之後,站所採用的電源管理模式
        8.1) 爲1: STA處於power_save模式
        8.2) 爲0: STA處於active模式
    9) More Data: 表示有不少幀緩存到站中。即至少還有一個數據幀要發送給STA是設置爲1。 
    10) Protected Frame: 表示根據WEP(Wired Equivalent Privacy)算法對幀主體進行加密。若是幀體部分包含被密鑰套處理過的數據,則設置爲1,不然設置爲0 
    11) Order(序號域): 在長幀分段傳送時,該域設置爲1表示接受者應該嚴格按照順序處理該幀,不然設置爲0
2. Duration/ID(持續時間/標識)
代表該幀和它的確認幀將會佔用信道多長時間,Duration 值用於網絡分配向量(NAV)計算 
3. Address Fields(地址域): 
    1) Destination Address
    2) Source Address
    3) BSS ID 
4. Sequence Control(序列控制域): 用於過濾重複幀
    1) MSDU(MAC Server Data Unit), 12位序列號(Sequence Number)
    2) MMSDU(MAC Management Server Data Unit), 4位片斷號(Fragment Number)組成 
5. Frame Body(Data): 發送或接收的信息。對於不一樣類型的數據幀來講,這個域的格式差異較大
    1) Beacon(信標)幀
        1.1) Timestamp(時戳)位: 可用來同步 BSS 中的工做站 BSS 的主計時器會按期發送目前已做用的微秒數。當計數器到達最大值時,便會從頭開始計數
        1.2) Beacon interval位: AP點每隔一段時間就會發出的Beacon(信標)信號,用來宣佈 802.11網絡的存在。咱們打開無線鏈接的時候之因此能看到不少Wi-Fi點就是由於它
        1.3) Capability information位: 發送Beacon信號的時候,它被用來通知各方,該網絡具有哪一種性能
        1.4) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱
        1.5) 跳頻參數組合(PH Parameter Set): 包含了加入 802.11跳頻(frequency-hopping)網絡所須要的參數
        1.6) 直接序列參數集合(DS Parameter Set): 指明網絡所使用的信道數
        1.7) 免競爭參數集合(CF Parameter Set): 出如今支持免競爭接入點所發送的 Beacon幀中,並不是必須
        1.8) IBSS 參數集合(IBSS Parameter Set): 指明ATIM window (數據待傳指示通知信息間隔期間)
        1.9) TIM數據待傳信息(Traffic Indication Map): 指示有哪些工做站須要接收待傳數據
        1.10) Country: 國家識別碼
        1.11) 功率限制(Power Constraint): 讓網絡得以向工做站傳達其所容許的最大傳輸功率
        1.12) 信道切換宣告(Channel Switch Announcement): 爲了警告網絡中的工做站即將變換信道
        1.13) 禁聲(Quiet): 爲了不與特定的軍事雷達技術彼此干擾
        1.14) 發射功率控制報告(TPC Report): 指明鏈路的衰減狀況,能夠幫助工做站了解該如何調整傳輸功率
        1.15) 擴展物理層(ERP)
        1.16) 支持速率(Supported Rates): 無線局域網絡支持數種標準速率。當移動工做站試圖加入網絡,會先檢視該網絡所使用的數據速率。有些速率是強制性的,每部工做站都必須支持
     ,有些則是選擇性的
        1.17) RSN強健安全網絡(Robust Security Network)
    2) Probe Request(探測請求)幀
        2.1) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱
        2.2) Supported Rate(支持速率)
        2.3) 擴展支持速率(Extended Supported Rate)
    3) Probe Response(探測響應)幀
        3.1) Timestamp(時戳)位: 可用來同步 BSS 中的工做站 BSS 的主計時器會按期發送目前已做用的微秒數。當計數器到達最大值時,便會從頭開始計數
        3.2) Beacon interval位: AP點每隔一段時間就會發出的Beacon(信標)信號,用來宣佈 802.11網絡的存在。咱們打開無線鏈接的時候之因此能看到不少Wi-Fi點就是由於它
        3.3) Capability information位: 發送Beacon信號的時候,它被用來通知各方,該網絡具有哪一種性能
        3.4) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱
        3.5) 支持速率(Supported Rates): 無線局域網絡支持數種標準速率。當移動工做站試圖加入網絡,會先檢視該網絡所使用的數據速率 
        3.6) 跳頻參數組合(PH Parameter Set): 包含了加入 802.11跳頻(frequency-hopping)網絡所須要的參數
        3.7) 直接序列參數集合(DS Parameter Set): 指明網絡所使用的信道數
        3.8) 免競爭參數集合(CF Parameter Set): 出如今支持免競爭接入點所發送的 Beacon幀中,並不是必須
        3.9) IBSS 參數集合(IBSS Parameter Set): 指明ATIM window (數據待傳指示通知信息間隔期間)
        3.10) Country: 國家識別碼
        3.11) FH Hopping Parameters
        3.12) FH Pattern Table
        3.13) 功率限制(Power Constraint): 讓網絡得以向工做站傳達其所容許的最大傳輸功率
        3.13) 信道切換宣告(Channel Switch Announcement): 爲了警告網絡中的工做站即將變換信道
        3.14) 禁聲(Quiet): 爲了不與特定的軍事雷達技術彼此干擾
        3.15) IBSS 動態選項(IBSS DFS):在 IBSS 中負責動態選頻的工做站能夠在管理幀中傳遞 IBSS DFS 信息元素
        3.16) 發射功率控制報告(TPC Report): 指明鏈路的衰減狀況,能夠幫助工做站了解該如何調整傳輸功率
        3.17) 擴展物理層(ERP)
        3.18) 擴展支持速率(Extended Supported Rate) 
        3.19) RSN強健安全網絡(Robust Security Network)
    4) ATIM幀
    5) Disassociation(解除關聯)
        5.1) Beacon Code
    6) Deauthentication(解除認證)幀
        6.1) Beacon Code
    7) Association Request(關聯請求)幀
        7.1) Capability information位: 發送Beacon信號的時候,它被用來通知各方,該網絡具有哪一種性能
        7.2) Listen interval位: 爲了節省電池的電力,工做站能夠暫時關閉 802.11網絡接口的天線。當工做站處於休眠狀態,接入點必須爲之暫存幀
        7.3) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱
        7.4) Supported Rate(支持速率)
    8) Reassociation Request(從新關聯請求)幀
        8.1) Capability information位: 發送Beacon信號的時候,它被用來通知各方,該網絡具有哪一種性能
        8.2) Listen interval位: 爲了節省電池的電力,工做站能夠暫時關閉 802.11網絡接口的天線。當工做站處於休眠狀態,接入點必須爲之暫存幀
        8.3) Current AP Address位: 使用Current AP Address(目前接入點的地址)位來代表目前所鏈接的接入點的 MAC地址
        8.4) SSID服務集標識(Service Set Identity): 由字節所造成的字串,用來標示所屬網絡的BSSID,即咱們在Wi-Fi鏈接前看到的接入點名稱
        8.5) Supported Rate(支持速率)
    9) Authentication(身份認證)幀
        9.1) Authentication Algorithm Number: 指明認證程序所使用的認證類型
        9.2) Authentication Transaction Sequence Number: 用以追蹤身份認證的進度
        9.3) Status Code: 狀態代碼用來表示某項過程成功或失敗
        9.4) 質詢口令(Challenge Text): 802.11所定義的共享密鑰身份認證系統。會要求移動工做站必須成功解碼一段加密過的質詢口令。這段質詢口令的發送系經過 Challenge Text
    (質詢口令)信息元素
6. FCS(CRC): 包括32位的循環冗餘校驗(CRC),用於檢錯,注意是檢錯不是糾錯 

 

  3 : 數據幀

  0x2: 數據幀協議格式

  數據幀的形式取決於網絡的形式。幀究竟屬於哪一種類型,徹底取決於subtype(子類型)位,而與其餘位是否出如今幀中無關

數據幀的形式取決於網絡的形式。幀究竟屬於哪一種類型,徹底取決於subtype(子類型)位,而與其餘位是否出如今幀中無關

  (IBSS 數據幀的一種)

  (接入點發送(From AP)的幀,數據幀的一種)

  (發送至接入點(To AP)的幀,數據幀的一種)

  (WDS幀,數據幀的一種)

1. 幀控制結構(Frame Control)
    1) Protocol Version: (協議版本)一般爲0
    2) Type: 幀類型,數據幀: 10 
    3) Subtype: 進一步判斷幀的子類型,不一樣類型的數據幀這個字段的格式是不一樣的
        3.1) IBSS幀
            3.1.1) 0000: Data
            3.1.2) 0010: Null
        3.2) From AP幀
            3.2.1) 0000: Data
            3.2.2) 1000: Data+CF+ASK
            3.2.3) 0100: Data+CF+Poll
            3.2.4) 1100: Data+CF+ACK+CF+Poll
            3.2.5) 1010: CF+ACK
            3.2.6) 0110: CF+Poll
            3.2.7) 1110: ACK+CF+Poll 
        3.3) To AP幀
            3.3.1) 0000: Data
            3.3.2) 1000: Data+CF+ACK
            3.3.3) 0010: Null
            3.3.4) 1010: CF+ACK(no data)
        3.4) WDS幀
            null
    4) To DS: 代表該幀是不是BSS向DS發送的幀時
        4.1) IBSS: 設置爲0
        4.2) To AP: 設置爲1
        4.3) From AP: 設置爲0
        4.4) WDS: 設置爲1
    5) From DS: 代表該幀是不是DS向BSS發送的幀時  
        5.1) IBSS: 設置爲0
        5.2) To AP: 設置爲0
        5.3) From AP: 設置爲1
        5.4) WDS: 設置爲1
    6) More Fragment: 用於說明長幀被分段的狀況,是否還有其它的幀,若是有則該值設置爲1
    7) Retry(重傳域): 表示該分段是先前傳輸分段的重發幀。 
    8) Power Management: 表示傳輸幀之後,站所採用的電源管理模式
        8.1) 爲1: STA處於power_save模式
        8.2) 爲0: STA處於active模式
    9) More Data: 表示有不少幀緩存到站中。即至少還有一個數據幀要發送給STA是設置爲1。 
    10) Protected Frame: 表示根據WEP(Wired Equivalent Privacy)算法對幀主體進行加密。若是幀體部分包含被密鑰套處理過的數據,則設置爲1,不然設置爲0 
    11) Order(序號域): 在長幀分段傳送時,該域設置爲1表示接受者應該嚴格按照順序處理該幀,不然設置爲0
2. Duration/ID(持續時間/標識)
代表該幀和它的確認幀將會佔用信道多長時間,Duration 值用於網絡分配向量(NAV)計算 
3. Address Fields(地址域): 
這個域的具體格式和控制幀的子類型有關,不一樣的子類型會有一些微小的差異
    1) IBSS
        1.1) Destination Address
        1.2) Source Address
        1.3) BSSID 
        每一個BSS都會被賦予一個BSSID,它是一個長度爲48個bit的二進制識別碼,用來辨識不一樣的BSS
    2) From AP
        2.1) Destination Address 
        2.2) BSSID
        2.3) Source Address
    3) To AP
        3.1) BSSID
        3.2) Source Address
        3.3) Destination Address  
    4) WDS 
        4.1) BSSID
        4.2) Source Address
        4.3) Destination Address
4. Sequence Control(序列控制域): 用於過濾重複幀
    1) MSDU(MAC Server Data Unit), 12位序列號(Sequence Number)
    2) MMSDU(MAC Management Server Data Unit), 4位片斷號(Fragment Number)組成
[SA,只有WDS中的幀有這個字段]
5. Frame Body(Data): 發送或接收的信息。
6. FCS(CRC): 包括32位的循環冗餘校驗(CRC),用於檢錯,注意是檢錯不是糾錯 

  0x3: 控制幀協議格式

  (RTS幀,控制幀的一種)

  (CTS幀,控制幀的一種)

  (ACK幀,控制幀的一種)

  (PS-Poll幀)

1. 幀控制結構(Frame Control)
    1) Protocol Version: (協議版本)一般爲0
    2) Type: 幀類型,控制幀: 01 
    3) Subtype: 進一步判斷幀的子類型:   
        控制幀
        3.1) 請求發送(Request To Send,RTS)數據包
        3.2) 清除發送(Clear To Send,CTS)數據包
        數據幀
        3.3) ACK確認(RTS/CTS) 
        3.4) PS-Poll: 當一部移動工做站從省電模式中甦醒,便會發送一個 PS-Poll 幀給基站,以取得任何暫存幀 
    4) To DS: 代表該幀是BSS向DS發送的幀時,該值設置爲1
    5) From DS: 代表該幀是DS向BSS發送的幀時,該值設置爲1
    控制幀負責處理無線介質的訪問,所以只可以由無線工做站產生。傳輸系統並不會收送控制幀,所以這兩個Bit必然爲0 
    6) More Fragment: 用於說明長幀被分段的狀況,是否還有其它的幀,若是有則該值設置爲1。
    控制幀不可能被切割,這個Bit必然爲0 
    7) Retry(重傳域): 表示該分段是先前傳輸分段的重發幀。
    控制幀不像管理或數據幀那樣,必須在序列中等候重送,所以這個 Bit必然爲0 
    8) Power Management: 表示傳輸幀之後,站所採用的電源管理模式
        8.1) 爲1: STA處於power_save模式
        8.2) 爲0: STA處於active模式
    9) More Data: 表示有不少幀緩存到站中。即至少還有一個數據幀要發送給STA是設置爲1。
    More Data bit只用於管理數據幀,在控制幀中此Bit必然爲0
    10) Protected Frame: 表示根據WEP(Wired Equivalent Privacy)算法對幀主體進行加密。若是幀體部分包含被密鑰套處理過的數據,則設置爲1,不然設置爲0。
    控制幀不會通過加密。所以對控制幀而言,Protected Frame bit必然爲0。
    11) Order(序號域): 在長幀分段傳送時,該域設置爲1表示接受者應該嚴格按照順序處理該幀,不然設置爲0。
    控制幀是基本幀交換程序(atomic frame exchange operation)的組成要件,所以必須依序發送。因此這個Bit必然爲0
2. Duration/ID(持續時間/標識)
代表該幀和它的確認幀將會佔用信道多長時間,Duration 值用於網絡分配向量(NAV)計算。
注意: 在PS-Poll幀中不包含Duration/ID這個字段
3. Address Fields(地址域): 
這個域的具體格式和控制幀的子類型有關,不一樣的子類型會有一些微小的差異
    3.1) RTS(請求發送幀)
        3.1.1) Receiver Address(接收端地址)
        接收大型幀的工做站的地址
        3.1.2) Transmitter Address(發送端地址)
        RTS幀的發送端的地址
    3.2) CTS(容許發送)
        3.2.1) Receiver Address(接收端地址)
    3.3) ACK(應答)
        3.3.1) Receiver Address(接收端地址)
    3.4) PS-Poll(省電模式一輪詢) 
        3.4.1) AID(鏈接識別碼 association ID)    
        鏈接識別碼是接入點所指定的一個數值,用以區別各個鏈接。將此識別碼置入幀,可以讓接入點找出爲其(移動工做站)所暫存的幀
        3.4.2) BSSID
        此位包含發送端目前所在 BSS(AP)的BSSID ,此BSS 創建自目前所鏈接的AP
        3.4.3) Transmitter Address(發送端地址)
        此爲PS-Poll幀之發送端的 MAC地址
4. FCS(CRC): 包括32位的循環冗餘校驗(CRC),用於檢錯,注意是檢錯不是糾錯

  Wi-Fi認證過程

  有了802.11協議的基本格式以後,咱們可使用wireshark進行抓包實驗,驗證一下咱們的理論

ifconfig -a
ifconfig wlan1 up
airmon-ng start wlan1
啓動wireshark,選擇mon0網卡(開啓了Monotor模式的虛擬網卡

  0x1: 普通無加密鏈接過程

  1. AP發送Beacon廣播管理幀

    由於AP發送的這個Beacon管理幀數據包是廣播地址,因此咱們的PCMIA內置網卡、或者USB外界網卡會接收到這個數據包,而後在咱們的"無線鏈接列表"中顯示出來

  2. 客戶端向承載指定SSID的AP發送Probe Request(探測請求)幀

     當咱們點擊"鏈接"的時候,無線網卡就會發送一個Prob數據幀,用來向AP請求鏈接

  3. AP接入點對客戶端的SSID鏈接請求進行應答

     AP對客戶端的鏈接做出了迴應,並表示不接受任何形式的"幀有效負載加密(frame-payload-encryption)"

  4. 客戶端對目標AP請求進行身份認證(Authentication)

   5. AP對客戶端的身份認證(Authentication)請求做出迴應

  AP迴應,表示接收身份認證

  6. 客戶端向AP發送鏈接(Association)請求

    身份認證經過以後,全部的準備工做都作完了,客戶端這個時候能夠向WLAN AP發起正式的鏈接請求,請求接入WLAN

  7. AP對鏈接(Association)請求進行迴應

     AP對客戶端的鏈接請求(Association)予以了迴應(包括SSID、性能、加密設置等)。至此,Wi-Fi的鏈接身份認證交互就所有結束了,以後就能夠正常進行數據發送了

  8. 客戶端向AP請求斷開鏈接(Disassociation)

    當咱們點擊"斷開鏈接"的時候,網卡會向AP發送一個斷開鏈接的管理數據幀,請求進行斷開鏈接

     由此,咱們能夠發現,基於對數據幀格式的瞭解,黑客能夠發起一些針對協議的攻擊

1. Deanthentication攻擊
2. Disassociation攻擊

  黑客能夠利用這種方式加快對WEP/WPS-PSK保護的無線局域網的攻擊,迫使客戶端從新鏈接而且產生ARP流量(基於WEP的攻擊)、或捕獲從新進行WPA鏈接的四次握手,而後能夠對密碼進行離線字典或彩虹表破解攻擊

  0x2: 基於WEP加密的鏈接過程

  0x3: 基於WPA-PSK加密的鏈接過程

  這兩種鏈接交互過程原理上和無加密方式(開放系統方式)相同,感興趣的朋友可使用wireshark進行抓包實驗

   參考

  Wireshark 802.11 Display Filter Field Reference : http://www.willhackforsushi.com/papers/80211_Pocket_Reference_Guide.pdf

  快速讀懂無線安全 : http://www.freebuf.com/articles/wireless/112221.html#

  802.11協議幀格式、Wi-Fi鏈接交互過程、無線破解入門研究 : http://www.cnblogs.com/LittleHann/p/3700357.html

廈門點燃將來網絡科技有限公司, 是廈門最好的微信應用, 小程序, 微信網站, 公衆號開發公司

相關文章
相關標籤/搜索