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
posted @ 2020-04-27 13:58  AskTa0  阅读(2107)  评论(0编辑  收藏  举报