2011-03-29 95 views
0

我的本機進程在Android設備的根目錄下運行。是否可以修改另一個進程的UID以便爲其提供根?
原因是要訪問某些Android「功能」,對於非根進程無法訪問。我可以修改另一個進程的UID嗎?

+0

附:修改正在運行的進程的UID非常重要,而不是啓動一個新進程。 – trashkalmar 2011-03-29 18:26:39

回答

1

否。如果其他應用程序需要root權限,則需要自行獲得權限。

2

如果你有一個根深蒂固的手機,你可以使用(通常)/system/xbin/su顯式運行進程。不過,您不能更改已經運行的程序的uid。 (理論上你可以在內核內存中挖掘並更改所有存儲的uid,但這是一個非常糟糕的主意,因爲你不能鎖定你正在修改的內容,並且如果它們改變或移動,就會導致內核恐慌。)

+0

謝謝你,將深入挖掘... – trashkalmar 2011-03-29 18:35:41

0

你需要做一個exec bin(A) root運行的而且做:

  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

如果我附加到進程並注入一些代碼強制它到系統調用setuid(0),爲什麼它應該成功?目標進程早些時候已經刪除了根權限。或者我沒有明白你的想法? – trashkalmar 2012-09-23 20:51:41

+0

你說得對,那不會成功。我省略了這個事實。對不起,沒有用的答案... – Ascatgz 2012-09-24 01:38:37

相關問題