智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述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"), { 11onEnter: function(args) { 12#Memory.readUtf8String(args[1]) 13send("[+]nativemethod param is: ", Memory.readByteArray(args[0], 256)); 14}, 15onLeave:function(retval){ 16 17} 18 }); 19 """ 20 def on_message(message ,data): 21print(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
【Android hook神器frida】https://juejin.im/post/5b1cc2b85188257d8c7d726c
推荐阅读
- App端待现场核查的申请设计项列表界面上的上的经营者信息按钮调经营者设计项的编辑界面,并且能够查看选中的待现场核查的申请对应的经营者信息
- ?: (urls.W005) URL namespace '你的app_name' isn't unique. You may not be able to reverse a
- 谈谈跨平台的app开发 坚定的选择了flutter
- KnowRbao_uni-app
- Vue 2.0开发企业级移动端音乐WebAPP
- Android通用框架设计与完整电商APP开发
- Android热修复与插件化实践之路
- 带后台的IM即时通讯App 全程MVP手把手打造
- Android的事件分发(dispatchTouchEvent),拦截(onInterceptTouchEvent)与处理(onTouchEvent)