• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            xiaoguozi's Blog
            Pay it forword - 我并不覺的自豪,我所嘗試的事情都失敗了······習慣原本生活的人不容易改變,就算現狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預料,人們需要更細心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····

            android root權限獲取的教程有很多,為了讓大家更進一步的了解root的奧秘所在,靈客風特為您奉獻本文,希望對您有所幫助。

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

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

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

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


            現在Android系統的root破解基本上成為大家的必備技能!網上也有很多中一鍵破解的 軟件,使root破解越來越容易。但是你思考過root破解的原理嗎?root破解的本質是什么呢?難道是利用了Linux kernal的漏洞嗎?本文將簡單對root的破解原理進行分析。

                 網上有一篇文章已經對root破解的基本原理進行了簡單介紹,大家可以先參考一下《android root權限破解分析》,本文只能說對root原理進行了方向性的描述,但是在一些具體的方面沒有描述清楚。本文將會對其進行一些必要的擴展和補充。

                 如果你進行過程序開發,在root過的手機上面獲得root權限的代碼如下:

            1. Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(process.getOutputStream());  
            2. ......  
            3. os.writeBytes("exit\n");  
            4. os.flush();  

                 從上面代碼我們可以看到首先要運行su程序,其實root的秘密都在su程序中,《android root權限破解分析》中講到Android系統默認的su程序只能root和shell可以用運行su,這個是安全的。如果把這個限制拿掉,就是root破解了!

                 下面我們仔細分析一下程序是怎樣獲得root權限的,如果對Linux的su命令熟悉的朋友可能知道su程序都設置SUID位,我們查看一下我的手機(已經root破解)上的su權限設置,

                  我們發現su的所有者和所有組都是root,是其實是busybox的軟鏈接,我們查看busybox的屬性發現,其設置了SUID和SGID,并且所有者和所有組都是root。SUID和SGID的作用是什么呢?如果你不太清楚,請參考《Linux進程的實際用戶ID和有效用戶ID》,這樣運行busybox的普通用戶,busybox運行過程中獲得的是root的有效用戶。su程序則是把自己啟動一個新的程序,并把自己權限提升至root(我們前面提到su其實就是busybox,運行期它的權限是root,當然也有權限來提升自己的權限)。

                 再強調一下不光root手機上su需要設置SUID,所有的Linux系統上的su程序都需要設置SUID位。請參考一下UC服務器的su的權限情況:

                 我們發現su也設置了SUID位,這樣普通用戶也可以運行su程序,su程序會驗證root密碼,如果正確su程序可以把用戶權限提高的root(因為其設置SUID位,運行期是root權限,這樣其有權限提升自己的權限)。

                 這樣我們就可以看出其實Android系統的破解的根本原理就是替換掉系統中的su程序,因為系統中的默認su程序需要驗證實際用戶權限(只有root和 shell用戶才有權運行系統默認的su程序,其他用戶運行都會返回錯誤)。而破解后的su將不檢查實際用戶權限,這樣普通的用戶也將可以運行su程序, 也可以通過su程序將自己的權限提升。

                 到這里大家對root破解不感到神秘了吧。root破解沒有利用什么Linux內核漏洞(Linux內核不可能有這么大的漏洞存在),可以理解成root 破解就是在你系統中植入“木馬su”,說它是“木馬”一點兒都不為過,假如惡意程序在系統中運行也可以通過su來提升自己的權限的這樣的結果將會是災難性 的。所以一般情況下root過手機都會有一個SuperUser應用程序來讓用戶管理允許誰獲得root權限,也算是給系統加了一層保險吧!

                 如上是Simon的個人對root破解的一些認識,如果有錯誤的地方,歡迎朋友們指正.

            posted on 2013-02-20 16:07 小果子 閱讀(7672) 評論(0)  編輯 收藏 引用 所屬分類: 學習筆記Android & Ios
            精品国产一区二区三区久久| 久久电影网2021| 久久中文字幕无码专区| 日韩欧美亚洲综合久久影院Ds| 欧美亚洲国产精品久久久久| 日韩精品久久久久久免费| 精品久久久久久久久中文字幕| 久久国产成人| 久久精品国产网红主播| 久久国产香蕉一区精品| 日本欧美久久久久免费播放网| 久久久WWW免费人成精品| 无码国产69精品久久久久网站| 国内精品久久久久久久久| 欧美大香线蕉线伊人久久| 思思久久99热免费精品6| 久久精品www人人爽人人| 午夜福利91久久福利| 91精品国产色综久久| 久久国产精品99久久久久久老狼| 亚洲欧洲中文日韩久久AV乱码| 国产成人无码精品久久久久免费| 久久综合久久自在自线精品自 | 日韩精品久久久久久久电影蜜臀| 久久综合久久久| 久久ZYZ资源站无码中文动漫| 亚洲精品无码久久毛片| 精品无码久久久久久久久久| 狠狠色丁香久久婷婷综合五月| 中文字幕久久精品无码| 伊人久久大香线蕉亚洲五月天| 精品国产乱码久久久久软件| 久久久久久A亚洲欧洲AV冫| 国内精品久久久久国产盗摄| 国产精品美女久久久久av爽| 国产99久久九九精品无码| 51久久夜色精品国产| 精品久久久久久久久久中文字幕 | 精品国产乱码久久久久久郑州公司| 思思久久99热只有频精品66| 午夜精品久久影院蜜桃|