1.什么是沙盒?
沙盤英文名sandbox,也叫沙箱,顧名思義可以看做是一種容器,里面所做的一切都可以推倒重來,軍事上常用沙盤來進(jìn)行一些戰(zhàn)爭區(qū)域的地形模擬,這個(gè)你見過吧?不用了可以把沙子推平重來。
我們所說的沙盤是一種安全軟件,可以將一個(gè)程序放入沙盤運(yùn)行,這樣它所創(chuàng)建修改刪除的所有文件和注冊表都會(huì)被虛擬化重定向,也就是說所有操作都是虛擬的,真實(shí)的文件和注冊表不會(huì)被改動(dòng),這樣可以確保病毒無法對(duì)系統(tǒng)關(guān)鍵部位進(jìn)行改動(dòng)破壞系統(tǒng)。另外現(xiàn)在沙盤一般都有部分或完整的類似HIPS的程序控制功能,程序的一些高?;顒?dòng)會(huì)被禁止,如安裝驅(qū)動(dòng),底層磁盤操作等。目前沙盤主要有兩大類,一是采用虛擬技術(shù)的傳統(tǒng)沙盤,另一個(gè)就是采用策略限制的沙盤(策略限制沙盤更類似于HIPS,不創(chuàng)建虛擬環(huán)境,可對(duì)高危行為限制,并且可回滾。)
2.什么是沙盒機(jī)制?
iOS系統(tǒng)相對(duì)于Android系統(tǒng),或者相對(duì)于Windows系統(tǒng)來說比較安全的原因很多,其中有一點(diǎn)就是蘋果推出的沙盒機(jī)制,每個(gè)應(yīng)用都有自己對(duì)應(yīng)的沙盒,每個(gè)應(yīng)用程序之間不能相互訪問非本程序的沙盒,所以,Apple相對(duì)于其他的系統(tǒng)來說比較安全,再是從內(nèi)存上來說相對(duì)于Windows來說也比較安全,Apple的應(yīng)用程序在內(nèi)存消耗過高時(shí),收到內(nèi)存警告不及時(shí)處理的話應(yīng)用軟件會(huì)自動(dòng)退出,而不像Windows系統(tǒng)一樣,中了病毒或者木馬會(huì)一直消耗內(nèi)存,直到內(nèi)存沒有了,OK,Down機(jī)。沙盒機(jī)制,讓iOS系統(tǒng)變得更安全。
3.查看Android手機(jī)沙盒的兩種方式
兩種方式都需要app的
android:debuggable="true"
(1)通過AndroidStudio的Device File Explore(文件管理器)
Device File Explore 一般在AndroidStudio的右下角可以打開, 也可以通過view->Tool Windows->Device File Explore打開
(2) 通過adb shell 查看
現(xiàn)在adb shell 通常會(huì) 遇到 Permission denied的權(quán)限問題(之前都是用這種方式查看,并沒有遇到過問題??),后來發(fā)現(xiàn)這種處理方法:
over@over-ThinkPad-x280:~$ adb shell
$ run-as com.package
$ cd /data/data/com.mypackage
$ ls
databases
lib
$ cd databases
$ ls
preferences.db
$ cat preferences.db > /mnt/sdcard/preferences1.db
說明:
注意com.package換成自己的完整包名,關(guān)鍵是run-as命令,最后使用cat命令把數(shù)據(jù)庫拷貝到sd卡下面。
如果簽名了并且指定設(shè)置了android:debuggable="false"將無法使用該命令。
注意不要把adb shell和 run-as作為一條命令一起執(zhí)行,例如:adb shell run-as com.pack