2011-03-29 90 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

相关问题