2017-09-20 54 views
1

我想在Android中使用PTRACE注入库,但是当我尝试将ptrace附加到特定的pid以进行监视时出现错误/; “无法连接到PID” ...... 这里是我想知道为什么ptrace的()将返回值小于零,导致错误的代码ptrace(PTRACE_ATTACH,pid,0,0)错误:无法连接到pid

// Attach 
    if (0 > ptrace(PTRACE_ATTACH, pid, 0, 0)) { 
     printf("cannot attach to %d, error!\n", pid); 
     exit(1); 
    } 
    waitpid(pid, NULL, 0); 

.... 什么应该由ptrace的返回( )函数正常执行(无错误)

+0

除非你连接到你的孩子,你很可能需要在这一点上的根 –

+0

我使用rooted bluestack进行测试,并且还通过chmod 777授予了lib的权限。我设置了ptrace_scope = 0但没有成功.....因此,我问,如果这个错误是为了除了根以外的东西? – Naveen

+0

'chmod 777'与它无关。你需要根植你自己来连接到不是你的孩子的进程(确切的规则更复杂,在某些情况下,你可以附加到其他进程共享你的UID,但在Android中 - 通常情况下,你需要根) –

回答

0

在Android中,要附加到不是您的孩子的进程,并且没有与您的UID相同的进程,您必须是root用户或具有适当的功能。