1
概要
- 什么是MTK芯片取证
- 芯片取证的优势和劣势
- 芯片协议流程简介
- 如何对安卓手机屏幕解锁
一.什么是MTK芯片取证
利用MTk芯片自带的读写flash协议,实现对手机原始flahs数据的读取。通过手机系统前0-17KB的数据也就是GPT,来获取手机的分区信息,进而有针对性的提取手机分区,一般我们会提取userdata 分区(用户数据分区)来获取需要的信息。前提是FED前的安卓手机。
二 . 芯片取证
优势
1. 通过读取userdata分区,可以获取完整的数据,对数据进行解析就能获取想要的信息。分区为ext4格式,解析比较简单,使用7z等工具可以参看。
2. 支持全面,基本上手机都需要支持刷机。
劣势
FDE的到来使得USERDATA的数据在没开机的状态是加密的,也就是获取的数据是加密的。一些手机可以通过嵌入漏洞程序来在开机的时候进行通信获取数据。但是难度有点大。不通用,使得取证方式只能对fde前版本效果明显。
三 . 协议和流程简介
1 手机刷机其实和电脑安装系统是类似的原理,但是手机复杂点是传输过程需要用到usb,但是对于MTK 来说,都是被封装好的,我们只想要使用他提供的dll接口就能完成大部分的事情。
注意:根据手机使用的MTK版本需要使用对应的dll ,一般包含FlashToolLib.dll FlashToolLib.v1.dll FlashtoollibEx.dll 除此之外还需要手机的flash读写工具 ,这些文件包含一些手机的信息但是不完全对,最好还是能通过GPT分区来读取。一个挑战是收集这些dll 。但是可以找一个支持的工具,通过脚本把这些文件都提取出来。
提取流程
解锁的时候是不需要把全盘的分区全部数据提取出来,这样做的速度很慢;所以我们都是动态获取app的物理地址,这样能大幅加速 。
四 . 如何进行屏幕解锁
屏幕解锁是一个应用app,锁的密码放在sqlite的数据库,不同厂商名称可能不一样。
所以我们需要先了解这些app和数据库的名称,app一般是存放在system分区。请注意system分区并没有被加密 但是有可能被签名保护。一般原生的是这样:
"priv-app/Keyguard",
"system/locksettings.db",
"system/locksettings.db-shm",
"system/locksettings.db-wal",
"system/password.key",
"system/gesture.key",
华为可能在
"system/gatekeeper.pattern.key",
"system/gatekeeper.password.key",
"system/gatekeeper.password.key"
但是小米的在
"priv-app/MiuiKeyguard/MiuiKeyguard.apk",
"priv-app/MiuiKeyguard/oat/arm64/MiuiKeyguard.odex”
我们解锁就是把存放密码的数据库删除,或者破坏屏幕解锁相关的app,这样app无法正常运行,从而达到解锁的目的,但是这样有可能会破坏屏幕锁。我们可以把锁相关文件保存下来,提取数据后再进行恢复,这样的操作稍微麻烦一点,但是降低了破获屏幕锁的风险。
这里要重点介绍的是vivo,vivo是一个比较特殊的存在。
vivo mtk手机的解锁有特殊的操作,可以通过para分区写入数据就可以完成完美解锁,这个也是vivo的保资料解锁,而且这个解锁方式对高版本的vivo一样有效。
“盘古石”团队是奇安信科技集团股份有限公司旗下专注于电子数据取证技术研发的团队,由来自国内最早从事电子数据取证的成员组成。盘古石团队以“安全为先,洞鉴未来”为使命,以“漏洞思维”解决电子数据取证难题,以“数据驱动安全”为技术思想,以安全赋能取证,研发新一代电子数据取证产品,产品涵盖计算机取证、移动终端取证、网络空间取证、IoT取证、取证数据分析平台等电子数据取证全领域产品和解决方案,为包括公安执法、党政机关、司法机关以及行政执法部门等提供全面专业的支持与服务。