熱線電話:13121318867

登錄
首頁大數據時代逆向爬蟲時,Python如何正確調用JAR加密邏輯?
逆向爬蟲時,Python如何正確調用JAR加密邏輯?
2021-01-04
收藏


公眾號:AirPython

作者:星安果

1. 前言

在 App 端爬蟲過程中,遇到未知的參數,往往需要我們去逆向破解 App,針對參數的生成邏輯,使用 Python 去實現

部分 App 參數的生成邏輯可能已經寫入到多個 JAR 文件中,這時候,我們只需要用 Python 執行 JAR 即可

本篇文章將聊聊 Python 如何調用 JAR 中的方法

2. 合并 JAR

以 Android App 為例,假設加密參數生成邏輯在多個 JAR 中,我們首先需要將所有的 JAR 文件合并為一個 JAR 文件

PS:對于 AAR 文件,可以先通過解壓軟件解壓,然后再合并 JAR

合并 JAR 分為 2 步:

  • 解壓 JAR
  • 合并所有源碼
  • 2-1 解壓 JAR

    安裝 JDK 之后,通過 jar -xvf 命令去解壓單個 JAR,這樣會按包名在同級目錄下生成 JAVA 編譯后的 class 文件逆向爬蟲時,Python 如何正確調用 JAR 加密邏輯?

    2-2 合并所有源碼

    使用 jar -cvfM 命令,將本地所有的 class 文件生成一個新的 JAR

    逆向爬蟲時,Python 如何正確調用 JAR 加密邏輯?

    3. Python 調用 JAR

    首先,我們安裝依賴包:jpype

    逆向爬蟲時,Python 如何正確調用 JAR 加密邏輯?

    假設 JAR 中加密邏輯實現代碼如下:逆向爬蟲時,Python 如何正確調用 JAR 加密邏輯?

    使用 Python 調用 JAR 中的方法分為 3 步:

  • 啟動 JVM
  • 實例化 JAVA 對象,調用對應方法
  • 關閉 JVM
  • 3-1 啟動 JVM

    逆向爬蟲時,Python 如何正確調用 JAR 加密邏輯?

    3-2 實例化 JAVA 對象,調用方法

    根據被調方法所在的包名,使用 jpyte 中的 JClass() 方法實例化類 JAVA 對象,最后調用 JAVA 對象的方法即可

    需要注意的是,由于 JAVA 中是實例方法,需要先進行對象實例化,然后調用方法;如果是靜態方法,可以直接調用方法逆向爬蟲時,Python 如何正確調用 JAR 加密邏輯?

    3-3 關閉 JVM

    可以選擇主動關閉 JVM,或者待 Python 程序運行后自動關閉,釋放資源

    逆向爬蟲時,Python 如何正確調用 JAR 加密邏輯?

    4. 最后

    Python 直接調用 JAR 中方法,可以幫我我們復用輪子,減輕爬蟲的工作量!

    如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續輸出更多優質文章的最強動力!



    數據分析咨詢請掃描二維碼

    若不方便掃碼,搜微信號:CDAshujufenxi

    數據分析師資訊
    更多

    OK
    客服在線
    立即咨詢
    日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
    客服在線
    立即咨詢