Android hook神器frida(二)

1.關於使用frida遇到的一些問題python

(1)若是出現如下錯誤:linux

能夠經過如下方式關閉SELinux,在adb shell中執行:shell

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

(2)若是出現「frida.ServerNotRunningError: unable to connect to remote frida-server」的錯誤,試試端口轉發:session

adb forward tcp:27042 tcp:27042

2.hook native函數tcp

首先編寫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代碼便可。post

也能夠經過%load加載腳本進行hook,如圖所示:spa

先運行:frida -U -f 須要hook的包名 --no-pausecode

而後經過輸入「%load 腳本文件路徑」加載腳本運行。server

 參考文章:

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

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

相關文章
相關標籤/搜索