日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

面试官问我会不会APP抓包,我..

發布時間:2024/9/15 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 面试官问我会不会APP抓包,我.. 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊“小詹學Python”,選擇“置頂”公眾號

重磅干貨,第一時間送達

本文轉載自咸魚學Python,禁二次轉載

標題這個題目應該是我面試答的最好的一題了,所以咸魚就來講講APP抓包環境搭建。

App抓包應該是每個爬蟲工程師都避不開的話題,在之前我也寫過關于自動參與「抽獎助手」
抽獎的文章,當時使用的抓包工具是Charles,有需要的朋友可以翻下之前的文章。

App抓包原理

  • 客戶端向服務器發起HTTPS請求

  • 抓包工具攔截客戶端的請求,偽裝成客戶端向服務器進行請求

  • 服務器向客戶端(實際上是抓包工具)返回服務器的CA證書

  • 抓包工具攔截服務器的響應,獲取服務器證書公鑰,然后自己制作一張證書,
    將服務器證書替換后發送給客戶端。(這一步,抓包工具拿到了服務器證書的公鑰)

  • 客戶端接收到服務器(實際上是抓包工具)的證書后,生成一個對稱密鑰,
    用抓包工具的公鑰加密,發送給“服務器”(抓包工具)

  • 抓包工具攔截客戶端的響應,用自己的私鑰解密對稱密鑰,然后用服務器證書公鑰加密,
    發送給服務器。(這一步,抓包工具拿到了對稱密鑰)

  • 服務器用自己的私鑰解密對稱密鑰,向客戶端(抓包工具)發送響應

  • 抓包工具攔截服務器的響應,替換成自己的證書后發送給客戶端

  • 爬蟲的本質就是「騙」過服務器,各種反反爬手段就是增強信任的過程,不停的讓服務器相信你是自己人
    如果你被反爬了,就是你騙術不精,被發現了。

    App數據好抓嗎?

    App數據有易有難,目前我還是停留在簡單的部分,這里簡單說下我理解的(如果說錯求放過):

    簡單:

    app的數據比web端數據更容易抓取,基本都是http、https協議,返回的數據格式也相對規整,
    大多是json格式

    困難:

    1.需要反編譯的知識,需要分析加密算法

    2.需要脫殼+反編譯

    3.需要破解各式各類的簽名,證書。。

    所以一個爬蟲工程師慢慢就需要掌握以下技能:

    java編程基礎

    android編程基礎

    app逆向

    app脫殼

    破解加密

    從入門到全棧

    常用抓包工具

    fiddler

    mitmproxy

    Charles

    fiddler安裝和使用

    下載:

    https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe

    安裝:一路Next

    主要界面介紹:

    會話列表界面:

    監控面板在點擊會話列表界面的某個請求后會出現下面兩個界面:

    請求面板:

    響應面板:

    本地CA證書安裝
    • 點擊 Tools - Options - HTTPS - 勾選勾選 Capture HTTPS CONNECTs,勾選 Decrypt HTTPS trafic,會彈出安裝證書的提示。一路點是或確定安裝即可。

    • 重啟fiddler,點擊右側Actions,能看一個下拉菜單,點擊 Export Root Certificate to Desktop,此時證書會生成到桌面上,名為 FiddlerRoot.cer,點OK保存

    • 點擊安裝

    連接手機抓包需要的配置

    先設置PC端fiddler:

    之后手機需要訪問 本地主機IP + 設置的端口,安裝證書,證書安裝成功后即可抓包。

    以上就是關于Fiddler的安裝和簡單使用,進階使用還有很多騷操作,

    mitmproxy安裝和使用

    mitmproxy在linux版本下和windows版本下略有不同。

    linux下借助pip,可以一鍵安裝:pip?install?mitmproxy

    windows 下需要安裝Microsoft Visual C++ V14.0以上,之后再使用pip install mitmproxy安裝

    mitmproxy有三大組件:

    mitmproxy - linux下的抓包組件

    mitmdump - python交互

    mitmweb - windows下的可視化界面工具

    在windows下僅支持后兩種組件的使用。

    證書配置

    在安裝目錄下可以看到以下這些文件:

    其中:

    mitmproxy-ca.pem

    PEM格式的證書私鑰

    mitmproxy-ca-cert.pem

    PEM格式證書,適用于大多數非Windows平臺

    mitmproxy-ca-cert.p12

    PKCS12格式的證書,適用于Windows平臺

    mitmproxy-ca-cert.cer

    與mitmproxy-ca-cert.pem相同,只是改變了后綴,適用于部分Android平臺

    mitmproxy-dhparam.pem

    PEM格式的秘鑰文件,用于增強SSL安全性

    window安裝證書

    雙擊mitmproxy-ca.p12,一路確定直至結束。期間會彈出警告點擊“確認”即可。

    Mac安裝證書

    Mac下雙擊mitmproxy-ca-cert.pem即可彈出鑰匙串管理頁面,然后找到mitmproxy證書,打開其設置選項,選擇“始終信任”即可

    Android/iPhone安裝證書

    方法一: 將mitmproxy-ca-cert.pem發送到手機上點擊安裝就可以了,蘋果手機點擊安裝描述文件即可。

    方法二:?在linux下啟動?mitmproxy,命令為mitmproxy -p 8889,同時將手機代理設置為linux的IP地址與端口后訪問mitm.it安裝證書。

    簡單使用

    mitmproxy過濾功能的使用舉例:

    輸入z,清除屏幕上全部的包輸入f,進入編輯模式,可在最下面編輯條件,ESC或Enter退出編輯!(~c?200) #顯示所有返回不是200的請求!(~c?200) & ~d baidu.com #顯示域名包含baidu.com,返回不是200的請求~m post & ~u baidu #顯示請求的鏈接里面包含baidu的post請求~d?baidu.com?(http://baidu.com)?過濾所有域名包含baidu.com?(http://baidu.com)的包

    mitmproxy斷點功能的使用舉例:

    輸入i,進入編輯模式,可在最下面編輯條件,ESC或Enter退出編輯斷點的條件和過濾是一樣的,符合條件的鏈接會被攔截~d baidu.com & ~m get域名包含baidu.com的get 請求會被攔截按Enter進入詳情頁,在詳情頁輸入e進入模式,可以修改各項數據完成后,回到請求顯示列表,輸入a,將請求放行.1.請求重放2.選中需要重放的請求,輸入r可以重放請求,也可以先編輯后再重放3.輸入Q可退出程序

    mitmproxy經常配合appium使用:

    首先我們需要寫一個抓包的腳本,類似下面這個:

    import?jsondef response(flow): if 'aweme/v1/user/follower/list/' in?flow.request.url: for user in json.loads(flow.response.text)['followers']: info = {} nfo['share_id'] = user['uid'] info['_id'] = user['short_id'] save_task(info)

    注意:這里的方法名必須使用response

    編寫完抓包的腳本后,使用 mitmdump -p [port] -s [腳本文件] 啟動,配合appium自動化腳本即可實現app自動化抓取。

    Charles的使用

    之前寫過了相關的實戰,可以直接看下面的文章:

    10行代碼實現自動參與抽獎助手抽獎(上)

    10行代碼實現自動參與抽獎助手抽獎(下)

    以上是我面試后的部分總結,希望對你有所幫助~


    推薦閱讀:

    除了Kaggle,還有哪些高質量的數據科學競賽平臺?


    總結

    以上是生活随笔為你收集整理的面试官问我会不会APP抓包,我..的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。