1.什么是沙盒?
沙盘英文名sandbox,也叫沙箱,顾名思义可以看做是一种容器,里面所做的一切都可以推倒重来,军事上常用沙盘来进行一些战争区域的地形模拟,这个你见过吧?不用了可以把沙子推平重来。
我们所说的沙盘是一种安全软件,可以将一个程序放入沙盘运行,这样它所创建修改删除的所有文件和注册表都会被虚拟化重定向,也就是说所有操作都是虚拟的,真实的文件和注册表不会被改动,这样可以确保病毒无法对系统关键部位进行改动破坏系统。另外现在沙盘一般都有部分或完整的类似HIPS的程序控制功能,程序的一些高危活动会被禁止,如安装驱动,底层磁盘操作等。目前沙盘主要有两大类,一是采用虚拟技术的传统沙盘,另一个就是采用策略限制的沙盘(策略限制沙盘更类似于HIPS,不创建虚拟环境,可对高危行为限制,并且可回滚。)
2.什么是沙盒机制?
iOS系统相对于Android系统,或者相对于Windows系统来说比较安全的原因很多,其中有一点就是苹果推出的沙盒机制,每个应用都有自己对应的沙盒,每个应用程序之间不能相互访问非本程序的沙盒,所以,Apple相对于其他的系统来说比较安全,再是从内存上来说相对于Windows来说也比较安全,Apple的应用程序在内存消耗过高时,收到内存警告不及时处理的话应用软件会自动退出,而不像Windows系统一样,中了病毒或者木马会一直消耗内存,直到内存没有了,OK,Down机。沙盒机制,让iOS系统变得更安全。
3.查看Android手机沙盒的两种方式
两种方式都需要app的android:debuggable="true"
(1)通过AndroidStudio的Device File Explore(文件管理器)
Device File Explore 一般在AndroidStudio的右下角可以打开, 也可以通过view->Tool Windows->Device File Explore打开
(2) 通过adb shell 查看
现在adb shell 通常会 遇到 Permission denied的权限问题(之前都是用这种方式查看,并没有遇到过问题😪),后来发现这种处理方法:
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换成自己的完整包名,关键是run-as命令,最后使用cat命令把数据库拷贝到sd卡下面。
如果签名了并且指定设置了android:debuggable="false"将无法使用该命令。