【APP逆向37】hook失败之ptrace占坑

  • 现象

    • 使用attach方式hook,frida -UF -l hook.js
  • 原因

unable to access process with pid 17124 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时,就会报错了。

  • 解决方法

    • 1.速度快点让frida先附加,使用span模式
Java.perform(function () {
    var p0 = Java.use("cmt.chinaway.com.lite.q.p0");
    p0.a.implementation = function (str, str2, str3,str4) {
        console.log("---------------------")
        console.log(str, str2, str3,str4);
        var res = this.a(str, str2, str3,str4);
        console.log(res);
        return res;
    };
});

// frida -U -f cmt.chinaway.com.lite -l  1.hook_sign.js

  • 2.修改ASOP源码,让它自己附加自己失败,编译并刷入自己手机。
    • 相对于第一种,复杂太多,*都不选,小编也没弄明白
posted @ 2025-03-04 21:30  Tony_xiao  阅读(153)  评论(0)    收藏  举报