• <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 - 我并不覺的自豪,我所嘗試的事情都失敗了······習(xí)慣原本生活的人不容易改變,就算現(xiàn)狀很糟,他們也很難改變,在過程中,他們還是放棄了······他們一放棄,大家就都是輸家······讓愛傳出去,很困難,也無法預(yù)料,人們需要更細(xì)心的觀察別人,要隨時(shí)注意才能保護(hù)別人,因?yàn)樗麄兾幢刂雷约阂裁础ぁぁぁぁ?/span>

            android root權(quán)限獲取的教程有很多,為了讓大家更進(jìn)一步的了解root的奧秘所在,靈客風(fēng)特為您奉獻(xiàn)本文,希望對您有所幫助。

            Android的應(yīng)用程序入口肯定是java程序。應(yīng)用程序的啟動者是由系統(tǒng)臨時(shí)根據(jù)Androidmanifest.xml中定義的權(quán)限而創(chuàng)建的臨時(shí)用戶。而不像linux那樣是使用登陸者的身份啟動,從而使得進(jìn)程具有登陸者的所有權(quán)限。這也是Android的安全機(jī)制之一。

            新的權(quán)限機(jī)制也帶來新的問題,Android給應(yīng)用程序的權(quán)限是按功能來分,java雖然可以訪問文件系統(tǒng)。但由于應(yīng)用程序本身是臨時(shí)用戶啟動,這個(gè)臨時(shí)用戶權(quán)限十分有限。因此誕生了<越獄/root機(jī)器>這樣的產(chǎn)物。

            其實(shí)root機(jī)器不是真正能讓你的應(yīng)用程序具有root權(quán)限。它原理就跟linux下的像sudo這樣的命令。在系統(tǒng)的bin目錄下放個(gè)su程序并屬主是root并有suid權(quán)限。則通過su執(zhí)行的命令都具有Android root權(quán)限。

            Su的源代碼網(wǎng)上也有,有興趣的同學(xué)去google下。

            當(dāng)然使用臨時(shí)用戶權(quán)限想把su拷貝的/system/bin目錄并改屬性并不是一件容易的事情。這里用到2個(gè)工具跟2個(gè)命令。工具就是busybox。不熟悉的同學(xué)可以去網(wǎng)上google下。這個(gè)太有名了我就不多說了。

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

            當(dāng)然busybox只能不能提升權(quán)限,真正提升權(quán)限的是ratc這個(gè)程序,這個(gè)程序中一鍵root包里面可以找到,作用是rooting在adb的shell。

            網(wǎng)上介紹Ratc的文章不多,它是rage against the cage 的縮寫。是真正的提升權(quán)限的破解程序。雖然我沒看過源代碼,但估計(jì)是利用adb源代碼部分內(nèi)容來實(shí)現(xiàn)的,原理估計(jì)跟模擬器使用adb shell登陸可以獲得root shell差不多。(因?yàn)樗\(yùn)行需要adb連接才會成功)。

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

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

            當(dāng)然你還不能改下面的文件,因?yàn)閟ystem下文件的所有者都不是你。

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

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

            將su跟busybox弄過去cp /data/data/xxx/su /system/xbin。然后賦權(quán)限chmod 4755 /system/xbin/su。

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

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

            這樣只是臨時(shí)的,只能用su跟busybox能執(zhí)行一些原來系統(tǒng)沒有權(quán)限執(zhí)行的命令而已。當(dāng)系統(tǒng)重啟后/system/xbin又變?yōu)樵瓉淼奈募?真正要改系統(tǒng)的話需要自己寫內(nèi)核代碼(相當(dāng)于windows的驅(qū)動程序)。內(nèi)核文件擁有所有權(quán)限。使用busybox命令insmod /data/data/xxx/xxx.ko裝載內(nèi)核文件,你想干嘛就可以干嘛了。

            當(dāng)然我們不是搞破解的沒必要去改別人的機(jī)器,我們只是想讓自己應(yīng)用程序具有root權(quán)限而已。所以臨時(shí)的su就可以了。我們用c++寫一個(gè)可執(zhí)行文 件。使用socket可以跟java的程序通訊。然后將需要使用root權(quán)限才能執(zhí)行的代碼放在c++程序里,然后java程序中創(chuàng)建新的su進(jìn)程,將 c++程序帶全路徑作為參數(shù)1。啟動后就可以通過socket調(diào)用c++函數(shù)去執(zhí)行你想干的事了。

            最后程序執(zhí)行完了別忘了善后busybox umount /system/xbin。

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


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

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

                 如果你進(jìn)行過程序開發(fā),在root過的手機(jī)上面獲得root權(quán)限的代碼如下:

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

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

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

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

                 再強(qiáng)調(diào)一下不光root手機(jī)上su需要設(shè)置SUID,所有的Linux系統(tǒng)上的su程序都需要設(shè)置SUID位。請參考一下UC服務(wù)器的su的權(quán)限情況:

                 我們發(fā)現(xiàn)su也設(shè)置了SUID位,這樣普通用戶也可以運(yùn)行su程序,su程序會驗(yàn)證root密碼,如果正確su程序可以把用戶權(quán)限提高的root(因?yàn)槠湓O(shè)置SUID位,運(yùn)行期是root權(quán)限,這樣其有權(quán)限提升自己的權(quán)限)。

                 這樣我們就可以看出其實(shí)Android系統(tǒng)的破解的根本原理就是替換掉系統(tǒng)中的su程序,因?yàn)橄到y(tǒng)中的默認(rèn)su程序需要驗(yàn)證實(shí)際用戶權(quán)限(只有root和 shell用戶才有權(quán)運(yùn)行系統(tǒng)默認(rèn)的su程序,其他用戶運(yùn)行都會返回錯(cuò)誤)。而破解后的su將不檢查實(shí)際用戶權(quán)限,這樣普通的用戶也將可以運(yùn)行su程序, 也可以通過su程序?qū)⒆约旱臋?quán)限提升。

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

                 如上是Simon的個(gè)人對root破解的一些認(rèn)識,如果有錯(cuò)誤的地方,歡迎朋友們指正.

            posted on 2013-02-20 16:07 小果子 閱讀(7672) 評論(0)  編輯 收藏 引用 所屬分類: 學(xué)習(xí)筆記Android & Ios
            久久国产精品无码一区二区三区| 久久久久久国产精品美女| 日韩欧美亚洲综合久久影院Ds| 999久久久免费精品国产| 久久久午夜精品福利内容| 久久久噜噜噜久久| 久久国产精品偷99| 久久国产精品视频| 日本精品久久久久影院日本| 久久亚洲高清综合| 色偷偷91久久综合噜噜噜噜| 色偷偷88欧美精品久久久| 国产精品亚洲综合久久| 久久人人爽人人爽人人片AV不| 麻豆精品久久久久久久99蜜桃| 狠狠色丁香婷婷久久综合五月| 无码任你躁久久久久久老妇App| 伊人久久精品无码二区麻豆| 无码专区久久综合久中文字幕| 久久精品国产亚洲AV大全| 久久久久国产精品| 日韩久久无码免费毛片软件| 中文字幕人妻色偷偷久久| 狠狠久久亚洲欧美专区| 久久久噜噜噜久久| 一本色道久久88精品综合| 久久国产高清字幕中文| 久久天天躁狠狠躁夜夜2020老熟妇| 亚洲国产成人精品91久久久| 久久夜色精品国产噜噜麻豆 | 亚洲精品无码久久久久去q| 久久国产精品一国产精品金尊| 狠狠色综合网站久久久久久久| 久久人妻AV中文字幕| 国产成人精品久久综合 | 久久精品国产一区| 久久精品国产男包| 色综合久久天天综合| 亚洲精品无码成人片久久| 久久精品女人天堂AV麻| 久久香综合精品久久伊人|