A-A+

Android hook神器frida 错误解决方法

2020年12月14日 19:53 汪洋大海 暂无评论 共982字 (阅读1,554 views次)

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

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

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

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

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

文章来源:https://www.cnblogs.com/goodhacker/p/10016028.html

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×

给我留言