执行hook相关报错
1.错误
unable to access process with pid 16210 due to system restrictions; try `sudo sysctl kernel.yama.ptrace_scope=0`, or run Frida as root
这是ptrace占坑的标志。
ptrace可以让一个进程监视和控制另一个进程的执行,并且修改被监视进程的内存、寄存器等,主要应用于调试器的断点调试、系统调用跟踪等。
在Android app保护中,ptrace被广泛用于反调试。一个进程只能被ptrace一次,如果先调用了ptrace方法,那就可以防止别人调试我们的程序。这就是传说中的先占坑。
一个进程只能被一个进程附加,为了防止frida的附加,程序中自己先基于ptrace附加自己,我们如果后期使用frida去附加app时,就会报错了。
frida内部会使用ptrace。
2.解决方案
案例脚本
Java.perform(function () { var p0 = Java.use("cmt.chinaway.com.lite.q.p0"); //替换类中的方法 p0.a.implementation = function(str, str2, str3, str4){ console.log("执行请求"); var res = this.a(str, str2, str3, str4); //调用原来的函数 console.log(res) return res; } });
执行:frida -U -f cmt.chinaway.com.lite -l hook_sign.js
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2019-07-19 包与常用模块