1. 程式人生 > >Android hook神器frida(二)

Android hook神器frida(二)

export 通過 func find UNC oid inter function dex

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

如果出現以下錯誤:

技術分享圖片

可以通過以下方式關閉SELinux,在adb shell中執行:

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

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 腳本文件路徑”加載腳本運行。

Android hook神器frida(二)