zoukankan      html  css  js  c++  java
  • Android hook神器frida(二)

    1.关于使用frida遇到的一些问题

    (1)如果出现以下错误:

    可以通过以下方式关闭SELinux,在adb shell中执行:

    echo 0 > /sys/fs/selinux/enforce
    或者
    setenforce 0

    (2)如果出现“frida.ServerNotRunningError: unable to connect to remote frida-server”的错误,试试端口转发:

    adb forward tcp:27042 tcp:27042

    2.hook native函数

    首先编写python hook代码,示例如下:

     1 import frida
     2 import sys
     3 
     4 device = frida.get_remote_device()
     5 #pid = device.spawn(["com.xxx.yyy"])
     6 session = device.attach("com.xxx.yyy")
     7 #device.resume(pid)
     8 
     9 scr = """
    10 Interceptor.attach(Module.findExportByName("libxyz.so" , "Java_com_xxx_aaa_jni_abc_nativemethod"), {
    11     onEnter: function(args) {
    12         #Memory.readUtf8String(args[1])
    13         send("[+]nativemethod param is: ", Memory.readByteArray(args[0], 256));
    14     },
    15     onLeave:function(retval){
    16     
    17     }
    18 });
    19 """
    20 def on_message(message ,data):
    21     print(message['payload'])
    22 
    23 script = session.create_script(scr)
    24 script.on("message" , on_message)
    25 script.load()
    26 sys.stdin.read()

    在Android shell中启动frida-server,然后在pc端执行该python代码即可。

    也可以通过%load加载脚本进行hook,如图所示:

    先运行:frida -U -f 需要hook的包名 --no-pause

    然后通过输入“%load 脚本文件路径”加载脚本运行。

     参考文章:

    https://www.jianshu.com/p/b833fba1bffe

    https://juejin.im/post/5b1cc2b85188257d8c7d726c

  • 相关阅读:
    分组背包(课题选择)
    和为n的俩个数的最大lcm
    合唱队形(悬线法)
    郊区春游(状压dp)
    三角形最大周长
    取余妹子数
    树形dp旅游
    L1-033 出生年
    L1-043 阅览室
    L1-044. 稳赢
  • 原文地址:https://www.cnblogs.com/goodhacker/p/10016028.html
Copyright © 2011-2022 走看看