• <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
            国产亚洲精品美女久久久| 99久久er这里只有精品18| 精品国产乱码久久久久久呢| 久久久女人与动物群交毛片| 久久亚洲综合色一区二区三区| 日韩一区二区三区视频久久| 久久综合精品国产二区无码| 九九久久精品无码专区| 欧美黑人激情性久久| 一级做a爰片久久毛片免费陪| 国产精品99久久免费观看| 国产aⅴ激情无码久久| 久久久久亚洲AV无码去区首| 国内精品久久久久久中文字幕| 国产亚洲欧美精品久久久| 亚洲精品乱码久久久久久按摩 | 国产精品成人精品久久久| 国产精品久久久久国产A级| 久久亚洲AV成人出白浆无码国产| 亚洲精品无码专区久久同性男| 国产ww久久久久久久久久| 97久久国产亚洲精品超碰热| 精品综合久久久久久888蜜芽| 久久这里只有精品首页| 偷窥少妇久久久久久久久| 亚洲va国产va天堂va久久| A狠狠久久蜜臀婷色中文网| 久久超乳爆乳中文字幕| 91精品国产91热久久久久福利| 久久夜色精品国产亚洲| 日本加勒比久久精品| 性高湖久久久久久久久| 精品午夜久久福利大片| 免费一级欧美大片久久网| 国产精品久久久久久久久久影院| 久久精品亚洲日本波多野结衣| 久久这里只精品国产99热| 四虎国产精品成人免费久久| 久久国产精品成人免费| 亚洲精品第一综合99久久 | 思思久久99热只有频精品66|