當前位置:首頁 » 編程語言 » android抓包sql
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

android抓包sql

發布時間: 2023-03-18 06:48:32

❶ android socket請求數據怎麼抓包

從網路上面搜索到的資料看,要抓取手機中app的網路包有下面幾種方式:
(1).將tcpmp移植到Android平台,然後在命令行下啟動tcpmp進行抓包。Tcpmp程序實際上可以看作是wireshark的命令行版本,將該程序移植到Android平台直接抓包,這是一種最直接的抓包方式,然後將抓獲的數據包文件,從手機傳到windows系統上用wireshark打開進行分析,這種方式貌似不能用於攔猛碰蘋果手機。
(2).使用fiddler,在windows系統上打開fiddler軟體,該軟體簡談會將我們的電腦變成一個代理,然後在手機上設置wifi網路,將代理指定為開啟fiddler的那台電腦,並且埠設置為fiddler偵聽的8888埠,這時候使用手機訪問的數據,就會通過該代理,在fiddler中就可以看到http的數據包。這種方法我試了半天怎麼都看不到數據包,不知道哪裡出問題了,根據原理,這種方式支持可以通過代理訪問網路的手機。所以從原理上說是支持Android和蘋果手機的。
(3).通過各種方式在pc電腦上建立wifi熱點,然後使用wireshark在pc電腦上監視該wifi熱點,通過手機連接該熱點訪問網路。這樣wireshark會獲取所有流經該熱點的數據包這種方式適用於所有能夠無線訪問的手機,也就是說所有的Android和蘋果手機。
那麼如何在pc電腦上建立wifi熱點呢,有這么幾種辦法:
(1).Win7電腦經過設置,可以將無線網卡設置為wifi熱點,這種方法我以前用過,可以成功,但是步驟繁瑣,而且不一定能夠成功,其他的windows系統估計就沒戲了。
(2).使用軟體自動建立wifi熱點,不需要自己手工配置,這樣的軟體有Connectify Hotspot,獵豹免費wifi,360免費wifi軟體,這幾個軟體我都使用過,比較好用,這種方式同樣也只能針對有無線網卡的筆記本電腦,原理也是將筆記本電腦上的無線網卡建立熱點了,只不過是軟體自動的,不需要人工設置,比方法1要方便。
注意:經過實驗發現,手機連接這種方式建立的熱點,所發送的數據,用wireshark去抓包,需要捕獲電腦上本身聯網的那個「網路連接」,例如我的筆記本上面有一個「本地連接」,該連接是使用有線網路的。我用獵豹免費wifi軟體建立一個熱點之後,我的電腦上多出一個「無線網路連接3」,可以看到該「無線網路連接3」是獵豹生成的,但是我抓包的時候,wireshark需要捕獲「本地連接」上的包,也就是我的手機訪問的數據實際上還是使用的「本地連接」,通信IP也是「本地連接」上的IP地址知返,而在手機的wifi連接設置中看到的ip地址,在我抓的包中也搜不到,也就是說手機通過該熱點訪問網路,實際上還是使用的「本地連接」的IP地址,至於是什麼原理,我目前也不太清楚。但是下面要說的隨身wifi硬體則與此不同,隨身wifi是建立了網卡。
(3).使用隨身wifi硬體。這種也是很方便的方法,而且比較穩定,對筆記本電腦和台式機都可以使用。我之前買了一個360的隨身wifi(不是打廣告,本人對360公司不感冒,但是他的隨身wifi做的確實還可以,同事中有買小米wifi的,不太穩定)。只要在360的官網上下載驅動,直接插上隨身wifi就可以使用,我推薦使用這種方法。
如果你用的是筆記本電腦可以使用方法2,如果是台式機器可以使用方法3。

❷ 如何用Fiddler對Android應用進行抓包

iddler是一款非常流行並且實用的http抓包工具,它的原理是在本機開啟了一個http的代理伺服器,然後它會轉發所有的http請求和響應,因此,它比一般的firebug或者是chrome自帶的抓包工具要好用的多。不僅如此,它還可以支持請咐舉求重放等一些高級功能。顯然它是可以支持對手機應用進行http抓包的。本文就來介紹下如何用fiddler對手機應用來抓包。

工具/原料
Fiddler
Android設備
方法/步驟
啟動Fiddler,打開菜單欄中的 Tools > Fiddler Options,打開「Fiddler Options」對話框。

在Fiddler Options」對話框切換到「Connections」選項卡,然後勾選「Allow romote computers to connect」後面的復選框,然後點擊「OK」按鈕。

在本機命令行輸入:ipconfig,找到本機的ip地址。

打開android設備的「設置」->「WLAN」,找到你要連接的網路,在上面長按,然後選擇「修改網路」,彈出網路設置對話框,然後勾選「顯示高級選項」。

在「代理」後面的輸入框選擇「手動」,在「代理培簡昌伺服器主機名」後面的輸入框輸入電腦的ip地址,在「代理伺服器埠」後面的輸入框輸入8888,然後點擊「保存」按鈕。

然後啟動android設配扒備中的瀏覽器,訪問網路的首頁,在fiddler中可以看到完成的請求和響應數據。

❸ 如何在 Android 手機上實現抓包

Android系統手機端抓包方法有如下:一、抓包準備
1. Android手機需要先獲得root許可權。一種是否獲得root許可權的檢驗方法:安裝並打開終端模擬器(可通過安卓市場等渠道獲得)。在終端模擬器界面輸入su並回車,若報錯則說明未root,若命令提示符從$變#則為rooted。
2. 如果Android手機尚未root,可通過superoneclick或其它方法進行root處理(需要先安裝Microsoft .NET Framework)。
3. 需要先獲得 Android SDK,Android的開發環境。
4. 需要獲得tcpmp軟體。

二、抓包步驟
1. 將Android手機與電腦USB相連,打開windows命令提示符窗口。
2. 將tcpmp程序至android手機(該命令前面那個目錄文件為本地地址,後面那個目錄為目的手機端地址)。C:\android-sdk-windows\platform-tools>adb push c:/tcpmp /data/local/tcpmp
3. 修改tcpmp的許可權。C:\android-sdk-windows\platform-tools>adb shell #chmod 777 /data/local/tcpmp
4. 進入root許可權 C:\android-sdk-windows\platform-tools>adb shell,執行$ su ,在運行su指令後,手機終端桌面會出現相應提示信息以確認您對root操作的認可。
5. 運行tcpmp,輸入以下命令啟動抓包。/data/local/tcpmp -p -vv -s 0 -w /sdcard/capture.pcap。
6. 在手機端執行相應需要進行抓包分析的操作,執行完成後在命令提示符窗口執行Ctrl+C中斷抓包進程。
7. 將抓包結果復制至本地(前面那個目錄為手機端地址,後面那個目錄為本地地址),C:\android-sdk-windows\platform-tools>adb pull /sdcard/capture.pcap c:/
8. 使用Wireshark等工具查看抓包文件capture.pcap。

❹ Android 配置Fiddler抓包

將瀏覽器的代理設置成Fiddler能夠實現Fiddler抓取瀏覽器的請求。同理,Android手機配置Fiddler作為代理伺服器,從而讓Fiddler能夠截獲Android的流量來實現抓包。

可以通過ipconfig命令等查看,最簡單的就是將滑鼠移到Fiddler窗口右上角的online字樣上面,會自動提示當前電腦IP地址。

比如,我當前PC IP地址為172.20.224.63

打開Fiddler上Tools-->Options,選擇Connections選項卡,可以查看到代理埠地址。默認為8888。你可以自行配置成其他埠號。

還有,請勾選「Allow remote computers to connect」(這是允許Android手機通過代理進行網路訪問)。

手機連接和PC位於同一區域網的wifi,連接成功後,進入到高級選項中。(不同手機有不同的進入方法,早期手機是長按已經連接上的wifi,現在有些手機直接提供了進入配置的箭頭按鈕。)
將代理伺服器主機名修改為第一步獲取的IP地址,埠號為第一步獲取的埠號。然後保存。

以上配置OK,打開手機進行網路訪問吧,看看Fiddler上有沒有HTTP請求包。

實際測試,如果發現沒有數據包,你需要檢查Fiddler是鄭雀否打開,是否允許遠程電腦訪問,以及埠號和IP地址是否配置正確,然後重啟試試看(重啟Fidder、手機重連Wifi,重新配置等)。

以上配置的僅僅是抓取HTTP請求,對於HTTPS請求,你還是看不到。下面介紹下,HTTPS抓包配置。

HTTPS也是需要通過Fiddler代理來抓取的,所以呢,前面的配置代理的過程不變。下面介紹其他涉及到證書安裝方面的。

打開Tools->Options,選擇HTTPS選項卡,按照下圖進行勾選。

PC上安裝好了根證書之後,還需要在手機上安裝根證書,才能保證Fiddller能夠正確解析出HTTPS包。(原理是,手機通過Fiddler做了代理後,HTTPS請求進行握手時候獲取的證書就是Fiddler自己生成的證書,這個證書在手機上默認不受信任,這樣會導致手機端認為服務端非法從而斷開HTTPS握手,導致請求失敗。所以,我們需要讓手機信任Fiddler的根證書。)

手機在配置好HTTP代理後,打開瀏覽器,輸入: http://ipv4.fiddler:8888/ 。實際上 ipv4.fiddler 會引導到Fiddler所在PC的IP地址上。所以,你輸入http://<pc ip>:<port>也是可以的。(題外話, ipv4.fiddler 這個渣判域名不是外網通用域名,你知道為啥會正確解析不?猜想是Fiddler自己提供了本地DNS解析服務)

OK,以上是所有的配置。

配置成如叢改功後,觀察Fiddler,手機進行一些操作,看看HTTPS的請求能解析不。如果你遇到下面的異常:

很大可能是由於手機上沒有安裝Fiddler的根證書。當然,還有例外,如果手機Android系統為7.0以上,即便安裝了Fiddler的根證書,也會出現這個異常。原因請參考 https://www.jianshu.com/p/0711ca1121e9

❺ 如何在 Android 手機上實現抓包

您好,希望以下歷唯碼回答能幫助山運您
電腦下載fiddler,開代理,手機連肢哪電腦代理上網,電腦端就可以抓包了。

如您還有疑問可繼續追問。

❻ 如何在 Android 手機上實現抓包

安裝脊此叢 Packet Capture
這個 App 直接在手機上做抓包應該是比較簡單的:
不需要 root(用 VPNService 這扒卜個介面實現的本地代理)

有 MITM Proxy,可以查看 https 流量(有這條還要櫻櫻什麼三輪車>_<)
適用於不走系統代理的 App

❼ 如何在 Android 手機上實現抓包

先給手機刷root許可權,執行命令:adbrootadbremountok後:把tcpmp放到c盤根目模州純錄下:C:\2.執行命令:adbpushc:/tcpmp/data/local/tcpmp(這個命旦咐令是把tcpmp拷到手機中去)3.adbshellchmod6755/data/跡老local/tcpmp是給tcp分配許可權4.adbshell/data/local/tcpmp-p-vv-s0-w/sdcard/capture.pcap輸入這個命令就等於啟動了抓包工具5.要停止抓包就Ctrl+C6.sdcard的capture.pcap復制出來到電腦上用wireshark打開即可以後每次抓包只要重復第4、5、6步就ok了

❽ 如何在 Android 手機上實現抓包

Fiddler無疑是最好的抓包神改棗軟體,在windowsphone,安卓,IOS上完美抓包,無需安裝軟體和root,只需要一個殲孫代理IP就能抓包(安裝證書後能抓取https數據),還能游拆斷點和修改Request和Respons數據,對於一個程序員來說,Fiddler是在PC和手機端最好用的抓包軟體,也是功能最強大的抓包軟體。
telerik公司的產品,值得信賴
===========================
而且Fiddler提供了Fiddler SDK供程序員二次開發,目前我在WindowsPhone上,用Fiddler SDK配合加上一些黑科技,就實現了破解付費應用下載和刷榜功能,So,Fiddler值得你擁有

❾ android怎麼拿sql查詢到的第一條的數據

cursor.moveToFirst();就是去取第一條數據

不過你應該判圓巧斷一下
if(cursor.moveToFirst()){
long millis = cursor.getLong(cursor.getColumnIndex("millis"));

}
因為sql如果沒有數據cursor.moveToFirst() 就會返回false

然後你再去調用 cursor.getLong 就會報殲埋錯氏腔螞

❿ 如何在 Android 手機上實現抓包

千鋒扣丁學堂Android開發為您解答:
tcpmp是最快捷方便的抓包方式,還可以加深對網路協議的理解。android下可以通過如下方式抓包:

1 Android上啟動tcpmp

Android設備可以把tcpmp的可執行文件上傳到android設備上,然後通過mac遠程登錄android設備運行tcpmp,前提是這台android設備必須已經root過。步驟如下:

下載android版本的tcpmp為android系統編譯的tcpmp版本。

通過adb將tcpmp上傳到android設備

通過adb push將tcpmp文件上傳到特定的目錄,這里我們選擇/sdcard/data目錄。

在android設備上運行tcpmp

通過adb shell登陸設備,並執行tcpmp,最後一步執行./tcpmp即可。

2. 分析tcpmp輸出

經過上面的步驟成功運行tcpmp之頃此後,接下來就可以分析輸出的網路包內容了,iOS設備和Android設備的輸出是一致的。我們先來解析下幾個基本的格式蠢乎友:

圖中紅色方框內的部分是一個ip包的詳細記錄,類似的紀錄還有好幾條。這里我們著重分析第一條的各部分欄位含義。

14:37:41.615018 很簡單,是該包接收到的時間。

17.143.164.37.5223 是發送方的ip地址及埠號(5223是埠號)。

10.29.44.140.58036 是我android的ip地址及埠號。

Flags [P.]
是tcp包header部分的第14個位元組的P位。這個位元組所包含的幾個flag很重要,後面我會單獨詳細講解。這里P位表示接受方需要馬上將包push到應用層。

seq 1:54
tcp包的seq號,1是起始值,54結束值。tcp之所以被認為是流,是因為tcp包所攜帶的每一個位元組都有標號(seq號)。1:54表明總共有54個位元組被接受,其中一個位元組是三次握手階段所使用,所以一共發送的長度是53位元組。

ack 101 tcp包的ack號,ack 101表明seq號為100的位元組已被確認收到,下一個期望接收的seq號從101開始。

win 255 win表示的是tcp包發送方,作為接受方還可以接受的位元組數。這里win
255表明ip為17.143.164.37的主機還可以接受255個位元組。

options [nop,nop,…] options[…]表示的是該tcp包的options區域,nop是no
opertion的縮寫,沒什麼實際用途,主要是用做padding,因為options區域按協議規定必須是4位元組的倍數。

options[… TS val 2381386761] ts
val這個值是tcp包的時間戳,不過這個時間戳和設備的系統時間沒啥關系,剛開始是隨機值,後面隨著系統時鍾自增長。這個時間戳主要用處是seq序列號越界從0重新開始後,可以確認包的順序。

options[… ecr 427050796] ts ecr這個值主要用來計算RTT。比如A發送一個tcp包給B,A會在包里帶上TS
val,B收到之後在ack包里再把這個值原樣返回,A收到B的ack包之後再根據本地時鍾就可以計算出RTT了。這個值只在ack包里有效,非ack包ecr的值就為0.

length 53 這個length是應用層傳帶槐過來的數據大小,不包括tcp的header。這個值和我們上面分析的seq 1:54是一致的。

以上就是一個基本的tcp包結構,大家可以按照上面的分析再把其他幾個包理解下。我們在做應用的時候面對的更多是http協議,但對一個http請求是怎麼通過tcp/ip分解成一個個的packet,然後怎麼在網路上穩定可靠的傳輸,要有個基本的印象。下面我們再看下tcpmp更多的功能,這些功能都是基於對tcp/ip協議的理解,遇到不理解的建議多google下相關的技術概念。

3. tcpmp知識拓展

再繼續深入tcpmp之前,先貼上一張tcp header格式圖,常看常新。

[https://github.com/music4kid/music4kid.github.io/blob/master/images/tcpheader.png?raw=true](https://github.com/music4kid/music4kid.github.io/blob/master/images/tcpheader.png?raw=true)"
width="1056">

3.1 TCP Flags(tcp header第十四個位元組)

我們再仔細看下上面提到的flags概念,flags位於tcp
header的第十四個位元組,包含8個比特位,也就是上圖的CWR到FIN。這8個比特位都有特定的功能用途,分別是:CWR,ECE,URG,ACK,PSH,RST,SYN,FIN。

CWR ,ECE 兩個flag是用來配合做congestion
control的,一般情況下和應用層關系不大。發送方的包ECE(ECN-Echo)為0的時候表示出現了congestion,接收方回的包里CWR(Congestion
Window Reced)為1表明收到congestion信息並做了處理。我們重點看其他六個flag。

URG
URG代表Urgent,表明包的優先順序高,需要優先傳送對方並處理。像我們平時使用terminal的時候經常ctrl+c來結束某個任務,這種命令產生的網路數據包就需要urgent。

ACK
也就是我們所熟悉的ack包,用來告訴對方上一個數據包已經成功收到。不過一般不會為了ack單獨發送一個包,都是在下一個要發送的packet里設置ack位,這屬於tcp的優化機制,參見delayed
ack。

PSH Push我們上面解釋過,接收方接收到P位的flag包需要馬上將包交給應用層處理,一般我們在http
request的最後一個包里都能看到P位被設置。

RST Reset位,表明packet的發送方馬上就要斷開當前連接了。在http請求結束的時候一般可以看到一個數據包設置了RST位。

SYN
SYN位在發送建立連接請求的時候會設置,我們所熟悉的tcp三次握手就是syn和ack位的配合:syn->syn+ack->ack。

FIN
Finish位設置了就表示發送方沒有更多的數據要發送了,之後就要單向關閉連接了,接收方一般會回一個ack包。接收方再同理發送一個FIN就可以雙向關閉連接了。

這8個flag首字母分別是:C E U A P R S F。初看難以記憶,我腦洞了下,把它們組合成 supr
cafe,當然少了super少了個e,我可以將就下。我們在使用tcpmp的時候會經常看到這幾個flag,[S],[P],[R],[F],[.]。其他幾個都好理解,[.]特殊點,是個佔位符,沒有其他flag被設置的時候就顯示這個佔位符,一般表示ack。

3.2 tcpmp 更多使用參數

這部分我們來看下tcpmp常用的一些命令參數。文章最開始部分的tcpmp命令是這樣的:sudo tcpmp -i rvi0 -AAl。
-i rvi0 -AAl都是屬於參數部分。常見的有這些:

-i, 要監聽的網卡名稱,-i rvi0監聽虛擬網卡。不設置的時候默認監聽所有網卡流量。

-A, 用ASCII碼展示所截取的流量,一般用於網頁或者app里http請求。-AA可以獲取更多的信息。

-X,用ASCII碼和hex來展示包的內容,和上面的-A比較像。-XX可以展示更多的信息(比如link layer的header)。

-n,不解析hostname,tcpmp會優先暫時主機的名字。-nn則不展示主機名和埠名(比如443埠會被展示成https)。

-s,截取的包位元組長度,默認情況下tcpmp會展示96位元組的長度,要獲取完整的長度可以用-s0或者-s1600。

-c,只截取指定數目的包,然後退出。

-v,展示更多的有用信息,還可以用-vv -vvv增加信息的展示量。

src,指明ip包的發送方地址。

dst,指明ip包的接收方地址。

port,指明tcp包發送方或者接收方的埠號。

and,or,not,操作法,字面意思。

上面幾個是我個人比較常用的,更多的參數可以參考這個詳細文檔。有興趣的可以分析下面幾個例子練習下:

tcpmp 『tcp[13] & 16!=0』

tcpmp src port 80 and tcp

tcpmp -vv src and not dst port 23

tcpmp -nnvvS src 192.0.1.100 and dst port 443

4. 用tcpmp分析http完整請求

說了這么多,我們再來實戰下,看一個完整的http請求流程。sudo tcpmp -i rvi0 -AAl src 60.28.215.123 or
dst 60.28.215.123

列出了6個前面的packet,10.29.44.240是我android的ip地址,60.28.215.123是知乎server的ip地址,紅色方框內是android發出的packet,白色方框內是server發出的packet。packet1是android三次握手的第一個syn包,packet2是server
ack+syn的包,packet3是android ack的包。這3個packet之後tcp的三次握手就完成了。

packet4是android發出的http
request。長度只有240個位元組,所以一個packet就發過去了,當然還設置了flags的P位,request需要馬上被應用層處理。包裡面出現了spdy,點贊。

packet5是server ack剛收到的包,長度位0,所以這僅僅是一個ack包。

packet6是server返回http的response了,1388個位元組。packet5和packet6都ack了seq為241的包,當然是為了增加ack的成功率。

中間還有好幾個packet就不仔細分析了,最後再看下請求完成的最後幾個包:

最後兩個packet比較簡單,android發送個FIN+ACK的包就斷開連接了,server直接發送了一個RST包後也斷開連接了。