Frida Hook的基本代碼示例


0x01 Frida Hook的基本代碼示例

import frida, sys

jscode = """
	console.log("hook start...");
	send("666");
"""

def message(message, data):
    if message["type"] == 'send':
        print("[*] {0}".format(message['payload']))
    else:
        print(message)

process = frida.get_remote_device().attach('com.dlxx.mam.jtgcgk')
script= process.create_script(jscode)
script.on("message", message)
script.load()
sys.stdin.read()

以上代碼是Frida hook基於python接口和js接口的基本代碼框架:

  • 導入frida,sys模塊

  • jscode:定義一個變量,用來表示要調用的js代碼,可在這里面使用frida定義的js接口,如send()方法

  • def message(message,data):自定義的python函數,作用是將參數輸出到控制台。函數中的兩個參數是python回調接口需要的。

  • frida.get_remote_device().attach('需要hook的app包名'):獲取設備並調用attach方法通過包名指定要附加的app進程。

  • script = process.create_script(jscode):根據jscode里的js代碼,創建有一個對象

  • script.on("message", message)、script.load():將jscode里的js代碼和自定義的message函數聯系在一起,最后通過load來執行js腳本

綜上,上述代碼的執行過程就是:通過frida.get_remote_device().attach('com.dlxx.mam.jtgcgk')附加上要hook的目標app -->創建一個表示自定義js代碼(里面使用的frida接口函數等)的一個對象 --> 將js代碼和自定義的python函數聯系起來 --> 加載執行js腳本 --> 由於在之前已將自定義message函數與js聯系,因此就可以在控制台看到js執行的輸出結果。

C:\Users\asus\Desktop>python2 demo.py
hook start...
[*] 666


免責聲明!

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



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