왜 r00t_가 아닌 root로 실행해야합니까?ptrace PTRACE_ATTACH 실패 - 사용자 소유 프로세스의 Linux 사용 권한
// main()
scan.scanProcessOffset(10838, 0x7f8c14000000); // proper pid and offset
void MemoryMapper::scanProcessOffset(unsigned int procId, unsigned long long offset)
{
long attach = ptrace(PTRACE_ATTACH, procId, NULL, NULL);
cout << attach << endl << errno << endl;
long memory = ptrace(PTRACE_PEEKDATA, procId, offset);
if (memory == -1 && errno == 3)
{
cout << errno << endl;
errno = 0;
}
cout << memory;
}
당신은 내가 루트로 실행 r00t_
[email protected]:/proc/10838$ ls -l
lrwxrwxrwx 1 r00t r00t_ 0 2012-04-15 08:21 exe -> /usr/bin/gedit
-rw------- 1 r00t r00t_ 0 2012-04-15 09:04 mem
출력 하지가 소유에 접선 해요 과정에서 볼 수 있듯이 root로
[email protected]:~/memedit$ ./a.out
-1
1
3
-1
출력 :
를[email protected]:~/memedit$ sudo ./a.out
0
0
140239607693344
내가 첨부하려는 프로세스의 소유자 인 이유는 무엇입니까?
우분투를 사용하고 있습니까? –
예 우분투를 사용하고 있습니다. 11.10 –