本文章轉(zhuǎn)載于搜狗測試
搜狗輸入法8.6版本有這樣一個需求:原有的反作弊SDK報活日志發(fā)送規(guī)則為7天發(fā)送一次膝昆,使得信息收集滯后熄捍,反作弊效果受到影響典格,現(xiàn)更改為每天一次列敲。看似很簡單的一個需求帖汞,對于初來乍到的我來說戴而,卻有這樣一個疑問:如何保證移動網(wǎng)絡(luò)下更改后的報活日志發(fā)送規(guī)則生效呢?現(xiàn)將學(xué)習(xí)到的Android移動網(wǎng)絡(luò)下抓取數(shù)據(jù)包的方法分享給大家翩蘸。
1)下載tcpdump工具
tcpdump(dump the traffic on a network)是Linux中強大的網(wǎng)絡(luò)數(shù)據(jù)采集分析工具之一所意,可以將網(wǎng)絡(luò)中傳送的數(shù)據(jù)包頭完全截獲下來提供分析。它支持針對網(wǎng)絡(luò)層催首、協(xié)議扶踊、主機、網(wǎng)絡(luò)或端口的過濾郎任,并提供and秧耗、or、not等邏輯語句來幫助你去掉無用的信息舶治。Android系統(tǒng)是基于Linux分井,可以使用tcpdump來抓取數(shù)據(jù)包。由于普通用戶不能正常執(zhí)行tcpdump歼疮,具備root權(quán)限的用戶才可以直接執(zhí)行它來獲取網(wǎng)絡(luò)上的信息杂抽,所以使用它的前提條件是:手機需要具備root權(quán)限。
2)將下載好的tcpdump拷貝到手機
adb push D:/tcpdump /data/local(將下載到D盤的tcpdump工具拷貝到/data/local目錄下)
3)修改文件權(quán)限
①通過命令修改文件權(quán)限
adb shell chmod 777 /data/local (777代表目標(biāo)文件或目錄是任何人都可以讀韩脏、寫、執(zhí)行)
②通過RE文件管理器修改文件權(quán)限
4)使用tcpdump抓包
/data/local/tcpdump -p -vv -s 0 -w /sdcard/mycapture.pcap(網(wǎng)絡(luò)操作的log存入到/sdcard/mycapture.pcap下)
tcpdump使用方法:
tcpdump [ -adeflnqtv] [ -c 數(shù)量 ] [ -F 文件名 ][ -i 網(wǎng)絡(luò)接口 ] [ -r文件名] [-s snaplen ] [ -T 類型 ] [ -w 文件名 ] [表達(dá)式 ]
tcpdump選項介紹:
-a 將網(wǎng)絡(luò)地址和廣播地址轉(zhuǎn)變成名字铸磅;
-d 將匹配信息包的代碼以人們能夠理解的匯編格式給出赡矢;
-dd ? 將匹配信息包的代碼以c語言程序段的格式給出;
-ddd 將匹配信息包的代碼以十進(jìn)制的形式給出阅仔;
-e ?在輸出行打印出數(shù)據(jù)鏈路層的頭部信息吹散;
-f ? 將外部的Internet地址以數(shù)字的形式打印出來;
-l ? ?使標(biāo)準(zhǔn)輸出變?yōu)榫彌_行形式八酒;
-n ???不把網(wǎng)絡(luò)地址轉(zhuǎn)換成名字空民;
-q ? ? ? ? ? ?快速輸出,只輸出較少的協(xié)議信息羞迷;
-t 在輸出的每一行不打印時間戳界轩;
-v ????輸出一個稍微詳細(xì)的信息;
-vv ?輸出詳細(xì)的報文信息衔瓮;
-c ????在收到指定包的數(shù)目后浊猾,tcpdump就會停止;
-F ? 從指定的文件中讀取表達(dá)式,忽略其它的表達(dá)式热鞍;
-i 指定監(jiān)聽的網(wǎng)絡(luò)接口葫慎;
-r 從指定的文件中讀取包衔彻;
-s ? ? ? ? ? ? 從每個分組中讀取最開始的snaplen個字節(jié);
-T ? ? ? ?將監(jiān)聽到的包直接解釋為指定類型的報文偷办;
-w ????直接將包寫入文件中艰额,并不分析和打印出來;
5)執(zhí)行網(wǎng)絡(luò)操作
以反作弊sdk報活日志發(fā)送為例:全新安裝搜狗輸入法→等待1min椒涯,發(fā)送報活日志→更改手機時間悴晰,后調(diào)一天,發(fā)送報活日志逐工。該網(wǎng)絡(luò)操作完畢后铡溪,關(guān)閉DOS窗口即可停止。
6)將mycapture.pcap拷貝到電腦中泪喊,用Wireshark打開
Wireshark是一個網(wǎng)絡(luò)封包分析軟件棕硫。網(wǎng)絡(luò)封包分析軟件的功能是擷取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料袒啼。用wireshark可以篩選出指定host的請求哈扮。