'App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲'

"

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


如果你細心一點,一定會發現當前實現類的包名是 Okhttp3,我們可以從 Github 下載 Okhttp3 的源碼,然後進行對比,就能很清晰的知道里面的實現邏輯了。

ps: okhttp 是 Android 使用很多一個網絡請求庫。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


如果你細心一點,一定會發現當前實現類的包名是 Okhttp3,我們可以從 Github 下載 Okhttp3 的源碼,然後進行對比,就能很清晰的知道里面的實現邏輯了。

ps: okhttp 是 Android 使用很多一個網絡請求庫。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過對比沒有混淆過的代碼,可以很容易的編寫出生成請求頭中 Token 的邏輯。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


如果你細心一點,一定會發現當前實現類的包名是 Okhttp3,我們可以從 Github 下載 Okhttp3 的源碼,然後進行對比,就能很清晰的知道里面的實現邏輯了。

ps: okhttp 是 Android 使用很多一個網絡請求庫。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過對比沒有混淆過的代碼,可以很容易的編寫出生成請求頭中 Token 的邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

至此,這一步就完成兩個 Token 的生成。

第 3 步就可以利用 Python 「 模擬發起一個請求 」, 來獲取手機驗證碼了。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


如果你細心一點,一定會發現當前實現類的包名是 Okhttp3,我們可以從 Github 下載 Okhttp3 的源碼,然後進行對比,就能很清晰的知道里面的實現邏輯了。

ps: okhttp 是 Android 使用很多一個網絡請求庫。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過對比沒有混淆過的代碼,可以很容易的編寫出生成請求頭中 Token 的邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

至此,這一步就完成兩個 Token 的生成。

第 3 步就可以利用 Python 「 模擬發起一個請求 」, 來獲取手機驗證碼了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

同理,後面的登錄請求也是先通過抓包,使用上面生成的 Token 邏輯去修改請求頭中 Token,然後模擬請求,就可以正常登錄了。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


如果你細心一點,一定會發現當前實現類的包名是 Okhttp3,我們可以從 Github 下載 Okhttp3 的源碼,然後進行對比,就能很清晰的知道里面的實現邏輯了。

ps: okhttp 是 Android 使用很多一個網絡請求庫。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過對比沒有混淆過的代碼,可以很容易的編寫出生成請求頭中 Token 的邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

至此,這一步就完成兩個 Token 的生成。

第 3 步就可以利用 Python 「 模擬發起一個請求 」, 來獲取手機驗證碼了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

同理,後面的登錄請求也是先通過抓包,使用上面生成的 Token 邏輯去修改請求頭中 Token,然後模擬請求,就可以正常登錄了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

4

結 果 結 論

通過模擬獲取驗證碼的請求,等待手機收到驗證碼之後,輸入驗證碼,然後再模擬登錄的請求,就可以獲取登錄成功後的令牌。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


如果你細心一點,一定會發現當前實現類的包名是 Okhttp3,我們可以從 Github 下載 Okhttp3 的源碼,然後進行對比,就能很清晰的知道里面的實現邏輯了。

ps: okhttp 是 Android 使用很多一個網絡請求庫。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過對比沒有混淆過的代碼,可以很容易的編寫出生成請求頭中 Token 的邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

至此,這一步就完成兩個 Token 的生成。

第 3 步就可以利用 Python 「 模擬發起一個請求 」, 來獲取手機驗證碼了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

同理,後面的登錄請求也是先通過抓包,使用上面生成的 Token 邏輯去修改請求頭中 Token,然後模擬請求,就可以正常登錄了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

4

結 果 結 論

通過模擬獲取驗證碼的請求,等待手機收到驗證碼之後,輸入驗證碼,然後再模擬登錄的請求,就可以獲取登錄成功後的令牌。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於驗證碼是由服務器產生的,這裡沒法獲取生成邏輯,但是針對安卓手機可以監聽通知欄消息元素,拿到短信驗證碼進行自動填入,就不需要人工輸入了。

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


如果你細心一點,一定會發現當前實現類的包名是 Okhttp3,我們可以從 Github 下載 Okhttp3 的源碼,然後進行對比,就能很清晰的知道里面的實現邏輯了。

ps: okhttp 是 Android 使用很多一個網絡請求庫。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過對比沒有混淆過的代碼,可以很容易的編寫出生成請求頭中 Token 的邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

至此,這一步就完成兩個 Token 的生成。

第 3 步就可以利用 Python 「 模擬發起一個請求 」, 來獲取手機驗證碼了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

同理,後面的登錄請求也是先通過抓包,使用上面生成的 Token 邏輯去修改請求頭中 Token,然後模擬請求,就可以正常登錄了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

4

結 果 結 論

通過模擬獲取驗證碼的請求,等待手機收到驗證碼之後,輸入驗證碼,然後再模擬登錄的請求,就可以獲取登錄成功後的令牌。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於驗證碼是由服務器產生的,這裡沒法獲取生成邏輯,但是針對安卓手機可以監聽通知欄消息元素,拿到短信驗證碼進行自動填入,就不需要人工輸入了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


拿到登錄令牌之後,理論上 App 上頁面的各類網絡請求都可以利用 Python 去模擬,後面提供的源碼包含了一個完整搶票的流程。

我已經將全部源碼 上傳到後臺上,關注公眾號後回覆「 ap p 」即可獲得。

如果你覺得文章還不錯,請大家點贊分享下。你的肯定是我最大的鼓勵和支持。

/ 今日贈送書籍 /

Python3智能數據分析快速入門

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


如果你細心一點,一定會發現當前實現類的包名是 Okhttp3,我們可以從 Github 下載 Okhttp3 的源碼,然後進行對比,就能很清晰的知道里面的實現邏輯了。

ps: okhttp 是 Android 使用很多一個網絡請求庫。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過對比沒有混淆過的代碼,可以很容易的編寫出生成請求頭中 Token 的邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

至此,這一步就完成兩個 Token 的生成。

第 3 步就可以利用 Python 「 模擬發起一個請求 」, 來獲取手機驗證碼了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

同理,後面的登錄請求也是先通過抓包,使用上面生成的 Token 邏輯去修改請求頭中 Token,然後模擬請求,就可以正常登錄了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

4

結 果 結 論

通過模擬獲取驗證碼的請求,等待手機收到驗證碼之後,輸入驗證碼,然後再模擬登錄的請求,就可以獲取登錄成功後的令牌。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於驗證碼是由服務器產生的,這裡沒法獲取生成邏輯,但是針對安卓手機可以監聽通知欄消息元素,拿到短信驗證碼進行自動填入,就不需要人工輸入了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


拿到登錄令牌之後,理論上 App 上頁面的各類網絡請求都可以利用 Python 去模擬,後面提供的源碼包含了一個完整搶票的流程。

我已經將全部源碼 上傳到後臺上,關注公眾號後回覆「 ap p 」即可獲得。

如果你覺得文章還不錯,請大家點贊分享下。你的肯定是我最大的鼓勵和支持。

/ 今日贈送書籍 /

Python3智能數據分析快速入門

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本書介紹

作者擁有10餘年Python大數據挖掘與分析經驗,對AI技術驅動的智能數據分析有深入研究,為零Python基礎和零AI技術基礎的讀者量身打造,系統講解Python3智能數據分析必備知識,配有大量示例代碼、數據和教學資源。

關注,轉發,私信小編“01”即可免費領取還可領取更多Python學習資料!

"

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


閱讀文本大概需要 10 分鐘。

1

目 標 場 景

在移動互聯網時代,很大一部分企業拋棄了傳統的網站, 選擇將數據、服務整合到 App 端,因此 App 端無論是爬蟲還是反反爬都顯得尤為重要。

常見的 App 端的爬蟲方式是利用 Appium 和 Airtest 驅動手機打開應用,操作頁面,然後通過元素 ID 獲取元素的內容,又或者藉助 mitmproxy 捕獲到請求的數據,最後將數據保存下來。

如果要完成複雜的操作,加快爬蟲的效率, 就必 須破解 App 端的 登錄, 獲取一些關鍵的數據,直接模擬接口請求,達到快速高效地爬取數據的目的。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本篇文章的目的是帶大家 「 破解 App 端的登錄 」這一操作。

ps: 本文僅限技術交流,請勿用於其他用途。

2

準 備 工 作

在開始編寫腳本之前,需要做好如下準備工作

  • 待破解的 APK 應用,可去官網或者各大 應用市場去下載,然後安裝應用到手機中
  • 反編譯工具,MAC OSX 推薦 Android Crack Tool 工具集,Win OS 可以使用 dex2jar 來反編譯 APK 應用包
  • 源碼瀏覽工具: jadx-gui
  • 抓包工具: Charles 或者 Fiddler

3

編 寫 腳 本

第 1 步,確保手機配置好代理之後,就可以利用 Charles 對 「 獲取 驗證碼 」 和 「 登錄 」 進行抓包操作,得到請求地址、請求參數和請求頭等數據。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


第 2 步,對請求參數、請求頭中 「 沒有規律的數據 」 尋找生成的規律,並用 Python 代碼來生成這些數據。

首先,我們查看獲取驗證碼這一請求的參數,發現除了手機號碼外,參數 t 可以很容易想到是請求的時間戳,唯獨參數 token 在沒有其他網絡請求的情況下生成了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

所以,我們大膽猜測: 這個 token 是 App 端通過一定的邏輯生成的; 同理,請求頭中 token 也是由 App 端生成

在我們多次發起獲取驗證碼的操作之後,我們得出一個規律:參數中的 token 保持不變,與請求時間沒有關係;請求頭的 token 會隨著時間的變化的也會發生變化。

我們利用 Android Crack Tool 對 APK 應用進行反編譯,得到源碼 Jar 包。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


然後就可以使用 jadx-gui 工具打開源碼 Jar 包,通過請求地址中的 「 關鍵詞:login 」搜索源碼, 就能找到請求發送的位置。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於應用源碼打包的時候混淆了代碼,因此,我們需要根據上面的搜索結果去定位參數初始化位置及實現邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


逐步往上追溯應用源碼,可以找到按鈕點擊事件的監聽函數。

具體實現邏輯是把用戶輸入的手機函數傳給混淆後的函數 :b()

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


點擊查看函數 b() 的實現邏輯,會發現方法中對手機號碼進行了截取,獲取當前日期時間,進行字符串的 「 第一次拼接 」操作 。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


對第一部分的拼接我們用 Python 代碼進行實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

第一次拼接完成之後,我們發現又調用了一個 函數 a(),參數為上面拼接生成的兩個變量。

函數 a() 的內部使用 「 DES + Base64 」 加密算法來進行第二步的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


加密的操作用 Python 可以很輕鬆的實現。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

需要注意的是,b()函數的最後一行,對第二步生成的字符串進行了特殊字符的替換操作,生成 Token 之前需要對數據進行同樣的處理。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過以上三步操作,就可以生成網絡請求中的參數 Token。

同樣的方式,針對請求中的 Token,我們通過查詢 token 關鍵字查詢源碼。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過觀察,我們發現類 e 中的 b()函數的功能就是往請求中添加請求頭,繼續查看函數 b() 的實現類,發現這個類也全部被混淆了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


如果你細心一點,一定會發現當前實現類的包名是 Okhttp3,我們可以從 Github 下載 Okhttp3 的源碼,然後進行對比,就能很清晰的知道里面的實現邏輯了。

ps: okhttp 是 Android 使用很多一個網絡請求庫。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


通過對比沒有混淆過的代碼,可以很容易的編寫出生成請求頭中 Token 的邏輯。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

至此,這一步就完成兩個 Token 的生成。

第 3 步就可以利用 Python 「 模擬發起一個請求 」, 來獲取手機驗證碼了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

同理,後面的登錄請求也是先通過抓包,使用上面生成的 Token 邏輯去修改請求頭中 Token,然後模擬請求,就可以正常登錄了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

4

結 果 結 論

通過模擬獲取驗證碼的請求,等待手機收到驗證碼之後,輸入驗證碼,然後再模擬登錄的請求,就可以獲取登錄成功後的令牌。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


由於驗證碼是由服務器產生的,這裡沒法獲取生成邏輯,但是針對安卓手機可以監聽通知欄消息元素,拿到短信驗證碼進行自動填入,就不需要人工輸入了。

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


拿到登錄令牌之後,理論上 App 上頁面的各類網絡請求都可以利用 Python 去模擬,後面提供的源碼包含了一個完整搶票的流程。

我已經將全部源碼 上傳到後臺上,關注公眾號後回覆「 ap p 」即可獲得。

如果你覺得文章還不錯,請大家點贊分享下。你的肯定是我最大的鼓勵和支持。

/ 今日贈送書籍 /

Python3智能數據分析快速入門

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲


本書介紹

作者擁有10餘年Python大數據挖掘與分析經驗,對AI技術驅動的智能數據分析有深入研究,為零Python基礎和零AI技術基礎的讀者量身打造,系統講解Python3智能數據分析必備知識,配有大量示例代碼、數據和教學資源。

關注,轉發,私信小編“01”即可免費領取還可領取更多Python學習資料!

App爬蟲篇 - 破解移動端登錄,助力 Python 爬蟲

"

相關推薦

推薦中...