TShopping

 找回密碼
 註冊
搜索
TShopping 精選文章 Android 手機開發 查看內容

android 獲得root權限解密

2013-11-25 00:23| 發佈者: woff| 查看: 1782| 評論: 1|原作者: woff

摘要: Android的應用程序入口肯定是java程序。應用程序的啟動者是由系統臨時根據Androidmanifest.xml中定義的權限而創建的臨時用戶。而不像linux那樣是使用登陸者的身份啟動,從而使得進程具有登陸者的所有權限。這也是and ...
 
Android的應用程序入口肯定是java程序。應用程序的啟動者是由系統臨時根據Androidmanifest.xml中定義的權限而創建的臨時用戶。而不像linux那樣是使用登陸者的身份啟動,從而使得進程具有登陸者的所有權限。這也是android的安全機制之一。

    新的權限機制也帶來新的問題,android給應用程序的權限是按功能來分,java雖然可以訪問文件系統。但由於應用程序本身是臨時用戶啟動,這個臨時用戶權限十分有限。因此誕生了<越獄/root機器>這樣的產物。

其實root機器不是真正能讓你的應用程序具有root權限。它原理就跟linux下的像sudo這樣的命令。在系統的bin目錄下放個su程序並屬主是root並有suid權限。則通過su執行的命令都具有root權限。

Su的源代碼網上也有,有興趣的同學去google下。

當然使用臨時用戶權限想把su拷貝的/system/bin目錄並改屬性並不是一件容易的事情。這裡用到2個工具跟2個命令。工具就是busybox。不熟悉的同學可以去網上google下。這個太有名了我就不多說了。

把busybox拷貝到你有權限訪問的目錄然後給他賦予4755權限,你就可以用它做很多事了。

當然busybox只能不能提升權限,真正提升權限的是ratc這個程序,這個程序中一鍵root包裡面可以找到,作用是rooting在adb的shell。

網上介紹Ratc的文章不多,它是rage against the cage 的縮寫。是真正的提升權限的破解程序。雖然我沒看過源代碼,但估計是利用adb源代碼部分內容來實現的,原理估計跟模擬器使用adb shell登陸可以獲得root shell差不多。(因為它運行需要adb連接才會成功)。

使用busybox前先運行ratc,這樣運行busybox的UID將是0,也就是root。

首先把system目錄改成可讀性的:busybox mount -o remount,rw /system,

當然你還不能改下面的文件,因為system下文件的所有者都不是你。

但你可以偷梁換柱把system下的目錄給換掉。

使用命令Busybox mount -t tmpfs none /system/xbin,呵呵這下xbin目錄你隨便寫了。

將su跟busybox弄過去cp /data/data/xxx/su /system/xbin。然後賦權限chmod 4755 /system/xbin/su。

然後使目錄生效busybox --install -s /system/xbin,

別忘善後busybox mount -o remount,ro /system去掉system可寫。

這樣只是臨時的,只能用su跟busybox能執行一些原來系統沒有權限執行的命令而已。當系統重啟後/system/xbin又變為原來的文件。真正要改系統的話需要自己寫內核代碼(相當於windows的驅動程序)。內核文件擁有所有權限。使用busybox命令insmod /data/data/xxx/xxx.ko裝載內核文件,你想幹嘛就可以幹嘛了。

當然我們不是搞破解的沒必要去改別人的機器,我們只是想讓自己應用程序具有root權限而已。所以臨時的su就可以了。我們用c++寫一個可執行文件。使用socket可以跟java的程序通訊。然後將需要使用root權限才能執行的代碼放在c++程序裡,然後java程序中創建新的su進程,將c++程序帶全路徑作為參數1。啟動後就可以通過socket調用c++函數去執行你想幹的事了。

最後程序執行完了別忘了善後busybox umount /system/xbin。

最後說說要注意的事情,如果機器已經root過的話就不需要做這些事情了,但root過的機器都有裝有個權限管理的程序。會彈出對話框。但這個程序管理能力有限,如果不想讓他彈出的話。也許可以通過改su文件名來解決。有興趣的同學不妨試試。
發表評論

最新評論

引用 呵呵 2013-11-25 21:17
我喜歡!感謝大大的分享

查看全部評論(1)



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-4-20 14:10 , Processed in 0.075236 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回頂部