手機root的原理是什麼?那些root軟件是怎麼給手機root的?

航天15


1. su是一個elf可執行文件,superUser是用來和su配合的root授權管理軟件

2. 要執行su(其他程序獲取root權限默認執行su)必須將su放在系統環境變量裡,bin和xbin目錄,其他地方你需要加全路徑

3. bin和xbin目錄在system分區,默認只讀,所以要寫入su必須重新掛在該分區為可寫

如何root:

1. 通過漏洞將自己進程提權到root權限,具體做法要去了解漏洞利用原理

2. 進程獲取root權限後重新掛載system分區可讀寫

3. 然後將su拷貝到bin目錄或者xbin目錄,由於su的所有者提權進程已經是root進程,所以su也具有root屬性。然後設置su文件755屬性,即所有者可讀可寫可執行,所在組和其他用戶可讀可執行,同時為了讓一般用戶在執行某些程序的時候,能夠暫時具有該程序擁有者的權限,所以需要設置s標誌位,即其他評論提到的chmod 4755 su,superuser拷貝system目錄並安裝,放在system目錄下作為系統應用,防用戶刪除

4. 這樣其他程序調用su以後,先要經過superuser同意,用戶點同意後,由於su擁有者為root所以其進程也擁有root權限,相應的它執行的命令也都是有root權限, 詳細的做法可去github搜su源碼閱讀,最後執行的一句`execv(ctx->to.shell, ctx->to.argv + argc);`通過驗證後將su進程直接替換成需要執行的命令


分享到:


相關文章: