• <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ì)心的觀察別人,要隨時注意才能保護別人,因為他們未必知道自己要什么·····

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

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

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

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

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

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

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

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

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

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

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

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

            但你可以偷梁換柱把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可寫。

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

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

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


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

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

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

            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權(quán)限破解分析》中講到Android系統(tǒng)默認(rèn)的su程序只能root和shell可以用運行su,這個是安全的。如果把這個限制拿掉,就是root破解了!

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

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

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

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

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

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

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

            posted on 2013-02-20 16:07 小果子 閱讀(7660) 評論(0)  編輯 收藏 引用 所屬分類: 學(xué)習(xí)筆記Android & Ios
            久久亚洲私人国产精品vA| 日韩美女18网站久久精品| 伊人久久精品影院| 国产精品久久久亚洲| 亚洲午夜精品久久久久久浪潮| 少妇人妻88久久中文字幕| 一级a性色生活片久久无| 人人狠狠综合久久亚洲| 久久精品亚洲乱码伦伦中文| 成人综合伊人五月婷久久| 亚洲AV无码久久寂寞少妇| 久久久久亚洲AV无码观看 | 久久久久久亚洲精品不卡| 人妻丰满AV无码久久不卡| 久久婷婷人人澡人人爽人人爱| 久久久久久久综合狠狠综合| 久久亚洲精品国产亚洲老地址| 亚洲精品午夜国产va久久| 久久人人爽人人爽人人爽| 久久无码人妻一区二区三区午夜| 免费久久人人爽人人爽av| 国产欧美久久久精品影院| 久久久久久精品免费看SSS | 日产精品久久久久久久| 久久777国产线看观看精品| 国产午夜福利精品久久| 亚洲精品国精品久久99热一| 国产成人久久精品二区三区| 四虎影视久久久免费| 无码人妻少妇久久中文字幕蜜桃 | 91久久九九无码成人网站| 久久精品国产国产精品四凭| 麻豆成人久久精品二区三区免费 | 久久本道久久综合伊人| 成人综合久久精品色婷婷| a级成人毛片久久| 亚洲女久久久噜噜噜熟女| 国产精品99久久久久久董美香| 日韩精品无码久久久久久| 香蕉99久久国产综合精品宅男自 | 亚洲精品美女久久777777|