• Frida(一): 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:UsersasusDesktop>python2 demo.py
    hook start...
    [*] 666
    
  • 相关阅读:
    Intellij IDEA +genymotion安装配置
    openssl编译参数选项
    shell脚本中sqlite3命令查询数据库失败返回空,并将错误信息打印到标准错误输出
    linux 系统中 /etc/passwd 和 /etc/shadow文件详解
    linux crypt()函数使用总结
    linux popen()函数使用
    AES加解密所遇问题
    linux 修改密码命令
    linux新增动态库后可执行程序找不到的问题
    inet_addr()和inet_ntoa()使用注意
  • 原文地址:https://www.cnblogs.com/askta0/p/12786300.html
Copyright © 2020-2023  润新知