淺談Frida以及Hook的相關知識


1.搭建python開發環境

        這里用到python語言,因為不是專門開發python,所以我們安裝Anaconda即可,下載地址https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/?C=M&O=A;這里我們下載的版本是Anaconda3-2018.12-Windows-x86_64.exe

       安裝步驟一直next即可,但是要注意其中的一步,這里兩個都需要勾選,上面那個應該是表示添加環境變量的意思。

       

       安裝完成之后cmd輸入python命令,出現如下界面即安裝成功

       

 

 2.下載並安裝frida

    安裝地址鏈接:https://pan.baidu.com/s/1Ryro2WNYPfnI5pje22oX4Q 提取碼: v87v,安裝版本:frida-server-12.8.13-android-x86。

    cmd命令安裝frida----pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ frida==12.8.13

    cmd安裝frida-tools----pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ frida-tools==7.0.2

注意:

  • 因為可能電腦之前安裝過比python3.7還要低的版本,本次安裝anaconda相當於升級了python,但是工具pip和setuptools沒有被升級,所以導致安裝frida失敗找不到版本號。
  • 如果pip顯示找不到對應版本 應該先升級 pip:
    報錯:

    命令:
    python -m pip install --upgrade pip

          升級setuptools:
          命令:
          pip install --upgrade setuptools

  • 升級完就可以繼續安裝frida和frida-tools,過程較慢,耐心等待。

      檢查安裝情況,輸入pip list|find "frida",如下圖界面即安裝成功

      

 

 

 3.visual studio code編輯器

       了解:https://baike.baidu.com/item/visual%20studio%20code/17514281?fr=aladdin

       在第一步安裝Anaconda的時候中間有個步驟可以直接安裝;若是忘記也可以用這個安裝包,鏈接: https://pan.baidu.com/s/1sT6Mmd9PqHxzvVDX9zJdNQ 提取碼: rug2 。

       初步試用visual studio code ,https://www.jianshu.com/p/95c4c869bff1(供參考)

4.逍遙模擬器

   安裝包鏈接: https://pan.baidu.com/s/1PJQytbyw2-ndg062j_081w 提取碼: e4eg。打開逍遙多開器,界面如下

   

   這里默認出現第一個模擬器,當然我們也可以自己新建所要的手機模擬器版本。

5.具體操作

下面說的frida-server-12.8.13-android-x86安裝包鏈接: https://pan.baidu.com/s/1eAq5m9-A-BlOGSUuJ0VAJQ 提取碼: y4wi 

1、新建一個文件夾,用studio打開,在這個文件夾下新建一個后綴為.js的文件。
2、新建一個手機模擬器,版本7.1(bit64),調整樣式后打開這個模擬器,記住是第幾個模擬器。默認第一個模擬器的端口號為21503,后續為21513、21523...
3、打開豌豆莢,找到所需要破解的手機APP版本,下載安裝到剛才新建的手機模擬器中。
4、切換到studio剛才新建的.js文件,使用ctrl+~調出終端命令窗口,將frida-server-12.8.13-android-x86拷貝到.js文件的同級目錄中。
5、先使用adb devices 命令查看有無手機連接,然后使用adb connect 127.0.0.1:端口號(見第二步)連接到所開啟的手機模擬器。然后adb push frida-server-12.8.13-android-x86 /data/local/tmp,這就相當於將studio中的這個文件夾push到手機模擬器中
6、使用adb shell進入到手機模擬器中,先輸入su,之后cd /data/local/tmp進入到手機模擬器中的這個目錄下,然后使用ls查看是否push到這個文件夾下。在這  個目錄下輸入chmod 777 frida-server-12.8.13-android-x86,相當於給這個文件最高的權限。然后exit退出編輯
7、使用adb forward tcp:27042 tcp:27042實現轉發功能,為了讓手機跟電腦連接,這里frida默認端口號為27042。為保證轉發成功,可以多轉發幾次。
8、類似步驟6,adb shell 然后su,cd /data/local/tmp,接着./frida-server-12.8.13-android-x86 啟動這個服務。

HOOK
1、可以再開啟一個終端,輸入frida-ps -U或者adb shell pm list packages查看手機模擬器(需打開hook的APP)中所有的包名,找到我們需要破解的APP包名。
2、切到剛開的終端,輸入frida -U 包名 -l 文件名,(例如frida -U com.soufun.app -l Hook.js)

再接下來就是看源碼了,用到一個看源碼的軟件,鏈接: https://pan.baidu.com/s/1XVUjvkFl9nu7YbzUyhr9yg 提取碼: 5t6h。

 

思路:我們想要破解某一個APP的接口,上述條件是最基本的。在模擬器上操作時,我們還需要用fidder抓包,檢查所返回的數據是不是我們所要的。然后對這個抓到的包發送http請求解析參數。一個個嘗試直到找出影響結果的參數,一般這樣的參數都是token之類的,都是進行加密封裝過的,所以就需要我們看源碼,然后找到相應的類或者是方法,進一步解析是如何對這個參數進行加密操作的。這樣才是一個完整的解析過程。(此過程中模擬器以及相關APP不能關閉)

       當我們更換APP的版本時候,只需要重新轉發,然后啟動這個服務就可以了,push跟給最高權限無需重新輸入命令,因為我們並沒有更換手機,推送到手機中的那個文件還是在的,無需重復操作。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM