害怕模塊會格機?擔心模塊里面藏有后門?這節課將徹底讓你不再害怕格機,教會你模塊安全性的所有知識,讓格機無所遁形!本文來自資深玩家:貓頭鷹醬醬,相關文章幫助了更多用戶避免被軟件模塊格機,ROM基地整理分享給大家
目錄
1.模塊刷入和生效的原理
2.格機在模塊中生效的原理
3.格機代碼常見樣式
3.找到格機代碼與后門的演示
4.預防格機與防格機模塊
模塊的原理
想要知道模塊為什么會格機,格機代碼會被藏在哪里,就必須先簡單了解一下模塊工作的原理
首先,我們打開一個常見的模塊,它通常包含以下文件夾或者文件(沒有的可以忽略)
META-INF
system
system.prop
customize.sh
module.prop
service.sh
post-fs-data.sh
模塊文件
其中以.sh為后綴的有三個:service.sh、post-fs-data.sh、customize.sh
他們分別會在以下的環節被自動執行
模塊刷入時執行:customize.sh
手機啟動的早期階段執行:post-fs-data.sh
手機啟動完成后執行:service.sh
除這三個外,/META-INF/com/google/android/目錄還有個叫update-binary的文件,它雖然不以.sh后綴結尾,但是同樣會在模塊刷人時被執行
所以簡單來說,模塊工作的主體就是這四個文件
其余的文件除非模塊自己設定,否則均不會[被執行],所以這里暫時忽略
格機在模塊中如何生效?
前面講了模塊中只有這四個文件會被自動執行,所以格機代碼只要位于這四個文件中,就會在對應階段被執行,從而實現格機
如何查找格機代碼
格機代碼大多數藏匿于這四個文件中,一般來說只用排查這四個文件即可。但是如果模塊中存在其他的.sh文件,那作者大概率是設置了會在某個階段執行的,所以最好是把其他.sh文件也排查一遍
格機代碼常見樣式
1.dd if命令,意思是將指定的數據寫入指定的區域,如果后面跟的是zero,那么大概率是格機,執行后會用0填充整個硬盤
dd格機
下面簡單演示一下如何用mt管理器找到dd if命令
2.rm -rf命令,意思是刪除文件且不需要確認,需要注意的是這個命令不一定是格機,需要看刪除的是什么文件,僅刪除$MODPATH或者$TMPDIR并不是格機,而是正常刪除模塊緩存,如果刪除的是關鍵文件或者是全盤文件,那就是格機無疑了。
如果你還是沒有學會,可以直接在虛擬機里先裝模塊測試,確認沒有問題再刷入,虛擬機里就算被格機,也完全不會影響到真機。
除這兩種命令外,基本沒有其他能夠直接格機的命令,一般來說,沒有這兩種命令的模塊并不會直接格機,但并不代表完全安全,接下來教學如何找到模塊里的"后門"
如何找到后門代碼
有的模塊格機手段更加高深,不會在你安裝時進行格機,而是偷偷在你手機里埋下后門,隨時可以控制格機,這樣即使是虛擬機測試,也發現不了任何問題。
但是我們依然有方法找到模塊中的后門代碼,后門需要遠程控制,也就是需要網絡請求,而安卓中請求網絡的命令有兩個:wget、curl。只需要在模塊中查找這兩個命令,就能找到后門。
這里以之前讓k60大規模被格機的后門代碼為例
k60格機
這段代碼中包含兩個curl,用于不斷從格機者的服務器獲取腳本并執行,一開始這個腳本是空的,所以并不會格機,當腳本被替換為格機命令時,才會執行格機絕大多數模塊是不需要使用wget和curl命令的,當發現模塊中有這兩個命令,就要格外小心了
防格機模塊有用嗎?
有用,但是無法防御所有的格機
防格機大多是通過攔截格機命令來實現的,比如HChai 大佬的百分百防格機,還有通過把關鍵分區改變掛載點來實現的,這些模塊確實能起到很大的作用,能夠攔截絕大部分格機命令,但是任何東西都總有失靈的時候,你不能用手機的命去賭它一定有用。最好的防格機模塊就是一個聰明的大腦和一雙雪亮的眼睛,擦亮雙眼,才能杜絕格機