美國留學(xué)選擇什么專業(yè)好?留學(xué)美國熱門專業(yè)推薦
2019-06-26
更新時間:2024-05-03 16:10作者:小編
1、FANI的英文全稱:Foal Adoption Network, Inc. | 中文意思:───小馬駒通過網(wǎng)絡(luò)公司
2、FANI的英文全稱:Formation Administrative des Non-Inscrits (French: Administrative Training of Non-Registered) | 中文意思:───Formation行政des非Inscrits(法語:管理培訓(xùn)非注冊)
3、FANI的英文全稱:Fire Authority of Northern Ireland (UK) | 中文意思:───北愛爾蘭消防局(英國)
4、FANI的英文全稱:Flexible Automatic Number Identification | 中文意思:───靈活的自動號碼識別
5、FANI的英文全稱:Flexible Automatic Number Identification | 中文意思:───柔性自動號碼識別
當(dāng)前Android系統(tǒng)越來越流行,無論是對于安卓應(yīng)用的開發(fā)人員,還是對于網(wǎng)絡(luò)安全的研究人員,都有可能需要掌握捕獲Android應(yīng)用通信數(shù)據(jù)包的方法。根據(jù)技術(shù)手段不同,常用的抓包方法分兩類,一類是通過Android智能移動終端所接入的上層網(wǎng)絡(luò)設(shè)備或線路獲取數(shù)據(jù)流,另一類則是直接在Android移動終端上**數(shù)據(jù)流。本文主要探討第二類方法,下面分別就前期準(zhǔn)備、一般步驟、常見問題、擴(kuò)展說明四方面詳談。(由于本人使用的是Android手機(jī),所以后文在描述的時候都說的是Android手機(jī),但其實本文所說的內(nèi)容是Android移動終端基本都可以通用的)
所謂學(xué)以致用,建議大家看了本文之后還是能實際選擇一個安卓應(yīng)用分析一下。我本人利用本文所說的抓包技術(shù)實際分析了百度貼吧安卓客戶端的網(wǎng)絡(luò)通信行為,分析結(jié)果參見我的上一篇博文《百度貼吧客戶端(Android)網(wǎng)絡(luò)通信行為分析》,也可直接下載PDF版的完整分析報告,地址是:http://download.csdn.net/detail/ping_fani07/6028411。
一、前期準(zhǔn)備1.1 為Android手機(jī)的Root權(quán)限解鎖Root是Android手機(jī)系統(tǒng)中的超級管理員賬戶,Root權(quán)限(即底層權(quán)限)和我們在Windows系統(tǒng)下的Administrator權(quán)限類似。默認(rèn)狀態(tài)下,為了防止系統(tǒng)文件被更改,Android系統(tǒng)并沒有把Root賬戶開放給我們普通用戶,我們必須先為Root權(quán)限解鎖才能獲取Root權(quán)限。網(wǎng)上一般把Android手機(jī)的Root權(quán)限是否解鎖,簡稱為Android手機(jī)是否root過。
這些年網(wǎng)上涌現(xiàn)了大量手機(jī)root工具,使用你自己的手機(jī)型號搜,應(yīng)該能找到合適你的工具。作為一個華為黨,俺最后使用了刷機(jī)精靈,兩次之后成功解鎖Root權(quán)限。解鎖成功后,刷機(jī)精靈會在手機(jī)上安裝一個授權(quán)管理工具,以幫助咱們管理哪些應(yīng)用和程序可以獲取Root授權(quán)。最新版的授權(quán)管理工具還自帶了一個工具箱,可以自由卸載手機(jī)上的預(yù)裝軟件和系統(tǒng)軟件,很省心,很方便!刷機(jī)精靈使用教程參照:《手機(jī)root權(quán)限獲取方法:[4]刷機(jī)精靈》。
1.2 下載相關(guān)工具要用到的工具主要有兩個,tcpdump(Android版) 和 adb 。打包下載地址為:http://download.csdn.net/detail/ping_fani07/6218853。
tcpdump是Linux系統(tǒng)中普遍使用的一款開源網(wǎng)絡(luò)協(xié)議分析工具,使用方法詳參:《Tcpdump的詳細(xì)用法》。
adb是谷歌提供的安卓遠(yuǎn)程調(diào)試工具,應(yīng)該使用方法詳參:《ADB命令介紹》。如果你前面使用了刷機(jī)精靈為手機(jī)的Root權(quán)限解鎖,那么可以在刷機(jī)精靈的實用工具里找到Adb命令行,直接調(diào)用此工具,而無需專門下載;又或者你以前搭建過安卓開發(fā)環(huán)境,那么應(yīng)該也可以在***platform-tools目錄下找到該工具。
二、一般步驟為了讓大家看起來方便,我先把所有步驟拉通放在一張圖上,給大家一個直觀的印象,如圖2-0。(考慮到通用性,在上傳tcpdump前修改了手機(jī)上目的目錄權(quán)限,部分手機(jī)不用。)
圖2-0 在某手機(jī)上第一次抓包的完整過程
下面是分步解說,其中有些步驟是僅在第一次使用的時候才需要,用僅需第一次標(biāo)注(也就是圖2-0中用白色方框圈起來的部分)。
(1)將adb.exe放在合適的目錄下,并將該目錄的完整路徑添加到Windows的PATH 環(huán)境變量中。僅需第一次已經(jīng)搭建過安卓開發(fā)環(huán)境則不需要此步(2)打開windows命令提示符窗口,輸入命令: adb version ,如果正常顯示adb的版本,則說明上一步環(huán)境變量設(shè)置沒有問題,且adb.exe本身完整,如圖2-1;反之,則可能是adb.exe本身文件損壞,環(huán)境變量設(shè)置有誤,或者環(huán)境變量設(shè)置后尚未生效,請自行檢查。僅需第一次圖2-1 檢查adb工具是否正??捎?/strong>
(3)勾選Android手機(jī)的"USB調(diào)試",將Android手機(jī)與電腦USB相連,在命令提示符窗口輸入命令: adb devices ,若正常顯示所連接手機(jī)的設(shè)備號,則說明連接成功,如圖2-2。(注:有些手機(jī)的設(shè)備號可能讀取有問題,顯示的是一個問號,這也是可以的,并不會影響后面的操作)圖2-2 查看PC與安卓手機(jī)是否連接成功
(4)將tcpdump (for Android)上傳至Android手機(jī)上,在命令提示符窗口中輸入命令:adb push <LocalPath of tcpdump>/data/local/tcpdump,如圖2-3。僅需第一次圖2-3 上傳tcpdump
(5)給tcpdump增加可執(zhí)行權(quán)限,如圖2-4。僅需第一次在命令提示符窗口中使用命令 adb shell 遠(yuǎn)程打開Android手機(jī)上的終端Shell;在當(dāng)前Shell中使用su命令獲取管理員權(quán)限;在當(dāng)前Shell中使用 chmod 命令修改 tcpdump的權(quán)限。圖2-4 修改 tcpdump 的權(quán)限
(6)使用tcpdump抓包,并將結(jié)果寫入一個pcap文件保存,如圖2-5。在命令提示符窗口中使用命令 adb shell 遠(yuǎn)程打開Android手機(jī)上的終端Shell;在當(dāng)前Shell中使用 su 命令獲取管理員權(quán)限;在當(dāng)前Shell中輸入命令: /data/local/tcpdump -p -s 0 -w /sdcard/001.pcap;在Android手機(jī)上進(jìn)行相關(guān)操作,產(chǎn)生通信數(shù)據(jù)包,通信行為完成后在命令提示符窗口中使用 Ctrl + C 組合鍵退出當(dāng)前Shell,以停止抓包。圖2-5 抓包過程
上述過程中,tcpdump命令的參數(shù)含義如下: # "-p": disable promiscuous mode (不使用混雜模式) # "-s 0": capture the entire packet(-s參數(shù)用以指定數(shù)據(jù)包捕獲長度,此處指定為0,意為抓取完整的數(shù)據(jù)包) # "-w *.pcap": write packets to a file (將結(jié)果寫入一個pcap文件,而不在終端上直接顯示)
(7)將抓包結(jié)果下載到本地PC上。在命令提示符窗口中使用命令:adb pull /sdcard/001.pcap <LocalPath of PcapFile>,如圖2-6。圖2-6 下載抓包結(jié)果到本地
(8)使用Wireshark等協(xié)議分析工具查看抓包結(jié)果。三、常見問題的解決3.1 部分手機(jī)使用adb的push命令上傳tcpdump失敗提示信息:"failed to copy 'd:/tcpdump' to '/data/local/tcpdump': Permission denied";
出錯原因:該Android手機(jī)上的目的目錄沒有寫權(quán)限;
解決方法:給Android手機(jī)上的目的目錄/data/local增加寫權(quán)限,步驟如圖4-1;
圖4-1 給/data/local目錄增加寫權(quán)限
3.2 部分手機(jī)使用chmod命令改變文件或目錄的權(quán)限時失敗提示信息:"Read-only file system";
出錯原因:從字面上理解,就是說文件系統(tǒng)是只讀的,不允許改權(quán)限;好像是在同學(xué)的小米手機(jī)上遇到的這個問題
解決方法:重新掛載根目錄,并在掛載的時候指定為可讀寫。步驟如下,
在命令提示符窗口中使用命令 adb shell 遠(yuǎn)程打開Android手機(jī)上的終端Shell;在當(dāng)前Shell中使用 su 命令獲取管理員權(quán)限;在當(dāng)前Shell中輸入命令: mount -o remount,rw / 。之后再使用chmod命令應(yīng)該就沒問題了。四、擴(kuò)展與說明4.1 上傳tcpdump到Android手機(jī)的時候,是否一定要選擇/data/local目錄應(yīng)該不是唯一的選擇,但是我試過上傳到一些其他的目錄/sdcard等,會遇到更多的權(quán)限限制問題。所以出于方便的考量,建議還是都盡量固定傳往/data/local目錄。
4.2 使用終端模擬器代替adb工具的shell命令終端模擬器是一款A(yù)ndroid平臺上的Linux Shell工具,相當(dāng)于Windows中的CMD命令提示符,有了它,我們可以在Android上進(jìn)行Linux系統(tǒng)的命令操作。
通過前面的描述,我們可以看出,adb工具在這主要起到兩個作用,一是基于push、pull命令的文件上傳下載(本地PC與Android手機(jī)之間的文件交換);二是基于shell命令對Android內(nèi)置Linux命令行Shell的遠(yuǎn)程訪問(通過Android內(nèi)置Shell來執(zhí)行su、chmod、tcpdump等命令或程序)。其中第二個功能可以使用終端模擬器代替。例如圖3-1
圖3-1 使用終端模擬器執(zhí)行系統(tǒng)命令
4.3 使用USB文件傳輸功能代替adb工具的pull命令我們前面在運行tcpdump時,使用-w參數(shù)指定了抓包結(jié)果的文件保存路徑在/sdcard目錄下。/sdcard目錄對應(yīng)安卓手機(jī)的內(nèi)部存儲空間,也就是我們手機(jī)**上USB線,選擇“打開USB存儲設(shè)備”后,用Windows的資源管理器打開所看到的根目錄,如圖3-2。因此我們可以用USB連接手機(jī)后,像訪問U盤一般直接獲取我們前面抓包生成的001.pcap文件。
圖3-2 /sdcard目錄對應(yīng)PC上可見的手機(jī)內(nèi)部存儲空間的根目錄
4.4 chmod命令中3位(或4位)八進(jìn)制數(shù)字所代表含義的說明那些八進(jìn)制數(shù)字對應(yīng)著我們要為目標(biāo)文件/目錄設(shè)定的權(quán)限。先說3位的情況,假使我們將三位八進(jìn)制數(shù)分別看做a,b,c的話,那么a,b,c分別表示User(該檔案的屬主)、Group(與該檔案的屬主屬于同一個組的用戶)、及Other(其他用戶)的權(quán)限。
八進(jìn)制的a/b/c可以轉(zhuǎn)成3位二進(jìn)制數(shù),這三位數(shù)的取值從高到低分別對應(yīng)是否具有讀、寫、執(zhí)行權(quán)限。對應(yīng)位置1,則有相應(yīng)權(quán)限;反之若置0,則無相應(yīng)權(quán)限。例如:
777 [111,111,111],所有用戶均有讀、寫、執(zhí)行權(quán)限;700 [111,000,000],只有檔案的所有者擁有讀、寫、執(zhí)行權(quán)限,其他用戶無權(quán)限;644 [110,100,100],只有檔案的所有者擁有讀、寫權(quán)限,其他用戶只有讀權(quán)限。回看前文,我們在修改 /data/local 權(quán)限時設(shè)置為777,算是最簡單方便,但也是最不安全的該法??梢愿鶕?jù)此處的介紹,你可以自行計算權(quán)限值該設(shè)為多少才是最科學(xué)的。
至于4位八進(jìn)制數(shù),則是在3位八進(jìn)制數(shù)的最左邊加上1位八進(jìn)制數(shù)來設(shè)置特殊屬性,該特殊位默認(rèn)取0。詳參:《linux系統(tǒng)中 chmod nnnn file 命令中的n 怎么是四位啊不是三位嗎?》
4.5 chmod命令中用數(shù)字表示的權(quán)限值是否可用文本字符串代替在Linux下工作過的童鞋應(yīng)該知道,chmod命令中的權(quán)限值除了可以用上文所述3位/4位八進(jìn)制數(shù)表示以外,也可以用形如: [ugoa...][[+-=][rwxX]...] 形式的字符串表示,如下:以下例子取自博文《chmod 命令詳解》,謝謝該文博主lyg105504(林榆耿)
例1.以下兩條命令作用相同,都是給FileName的屬主分配讀、寫、執(zhí)行的權(quán)限,給FileName的屬主所在組分配讀、執(zhí)行權(quán)限,給其他用戶僅分配執(zhí)行權(quán)限# chmod 751 FileName
# chmod u=rwx,g=rx,o=x FileName
例2.以下三條命令作用相同,都是為所有用戶僅分配讀權(quán)限# chmod 444 FileName
# chmod =r FileName
# chmod a-wx,a+r FileName
那么在Android系統(tǒng)中是否可用文本字符串形式的代替八進(jìn)制數(shù)形式的權(quán)限值呢?以我實驗的結(jié)果來看,是不可以的,系統(tǒng)給的錯誤提示是:"Bad mode"??赡苁窍到y(tǒng)本身不支持吧。
一個人名,一首歌名,也是一個故事。
歌曲就是講了一個叫Stan(虛構(gòu)的)的歌迷,給歌手Slim寫了很多信(歌曲中提到兩封,倒數(shù)第二段是錄音),都沒有回應(yīng),所以很生氣,失去了理智,走向極端,將女友綁在車?yán)?,想去自盡。
Stan把遺言說完后,才想起來,萬一自己死了,怎么寄出遺言,剎車,但還是墜湖了。最后一段是Slim給Stan的回信,并且發(fā)現(xiàn)Stan已經(jīng)死去。