2011-03-29 8 views
0

내 기본 프로세스가 Android 디바이스에서 root로 실행됩니다. 다른 프로세스의 UID를 수정하여 루트 권한을 부여 할 수 있습니까?
이유는 비 루트 프로세스에서 액세스 할 수없는 일부 "기능"에 대한 액세스 권한을 부여하기 위해서입니다.다른 프로세스의 UID를 수정할 수 있습니까?

+0

P.S.을 이미 실행중인 프로세스에 대해 UID를 수정하고 새 프로세스를 시작하지 않는 것이 중요합니다. – trashkalmar

답변

1

아니요. 다른 앱에 루트 액세스가 필요한 경우 자체 권한을 얻어야합니다.

2

루트 폰이있는 경우 /system/xbin/su을 사용하여 명시 적으로 프로세스를 실행할 수 있습니다. 이미 실행중인 프로그램의 uid는 변경할 수 없습니다. (이론적으로 커널 메모리를 훔쳐서 다양한 저장된 uid를 바꿀 수는 있지만 수정하는 것을 잠글 수 없기 때문에 변경하거나 이동하면 커널 패닉이 발생할 수 있기 때문에 이것은 매우 나쁜 생각입니다.)

+0

고마워요, 이걸 더 깊이 파헤 쳐 드리겠습니다 ... – trashkalmar

0

당신은 루트로 exec bin(A) 실행을 필요로하고 수행

  1. 는 프로세스의 상태를 얻을 UID
  2. 을 변경하고
  3. 호출하여 setuid 시스템을 저장할 프로세스에 연결 리모컨 호출
  4. 저장된 상태를 d로 사용 그 과정을 거치지.

위의 모든 내용은 ptrace로 수행 할 수 있습니다.
더 많은 정보는 여기에서 찾을 수 있습니다 :
http://www.linuxjournal.com/node/6210/print
http://www.phrack.org/issues.html?issue=59&id=12&mode=txt

+0

프로세스에 연결하여 syscall setuid (0)로 강제 실행하는 코드를 삽입하면 왜 성공해야합니까? 대상 프로세스가 루트 권한을 이전에 삭제했습니다. 아니면 너의 생각을 모르겠어? – trashkalmar

+0

맞습니다. 성공하지 못할 것입니다. 나는이 사실을 생략한다. 쓸데없는 대답을 유감으로 여깁니다 ... – Ascatgz

관련 문제