分类 日机拾贝 下的文章

Make Keitai Great Again!

在雅虎拍卖上捡老日机的垃圾,不可避免的会捡到一些有Felica锁定的机器,虽然只影响NFC一个功能不可用,但是还是会觉得很膈应,而且因为其Felica的NV是单独存储的,所以恢复出厂设置并不影响Felica锁定。
最近就收到了一台有Felica锁定的富士通F-01F,在逆向其Felica锁定管理器的时候,发现了一个神奇的供店头使用的解锁后门。故写一下这篇分析梗概,以供使用。
FjFelicaUnl_LockStatus
锁定状态,NFC完全不可用
从设备内提取了管理Felica锁定的APK
FjFelicaUnl_APK.png
整个APK拖入JADX,一眼就看到了一个Felica_Reset_Lock函数
FjFelicaUnl_FoundFunction
感谢JADX的强大反编译能力,一下就看到了一个可读性很高的解锁码校验函数
FjFelicaUnl_UnlockCodeCheck
大概读了一下就发现这只是个简单的数字替换算法(标准的日本Security through obscurity思想代码)
立即可用的JS移植版本网页版实现:App/FjFelicaUnl
现在有解锁码的生成方法之后,需要找到在哪里输入,以及有什么先决条件。
接着随着Felica_Reset_Lock函数的调用情况,追到了其MainActivity,果然发现其必须在开机后120秒内在指定输入框内输入有前缀和后缀的解锁码才行。
FjFelicaUnl_PreCheck
所以在生成解锁码后,我们需要重启
FjFelicaUnl_Reboot
然后立即在指定输入框输入解锁码
FjFelicaUnl_InputPwd
立即出现“解除しました。”!!
FjFelicaUnl_Unlocked
再打开NFC/おサイフケータイ設定,果然变成了全新状态!
FjFelicaUnl_BrandNew

设备信息

品牌:KYOCERA
型号:KYV31
设备名:URBANO V01
Android版本:4.4.4
源码版本:106.0.3110
对应版本:106.0.3110(不保证向前兼容性)
测试通过版本:106.0.3110
编译链:gcc version 4.9.4 (Linaro GCC 4.9-2017.01)

移除功能

SELINUX_KC内核安全模块
KCPDSM内核安全模块
AKSCDroot检测

还原功能

原版SELinux

截图

Kernel_KYV31

注意

京瓷设备在给电时,会写保护SYSTEM等重要分区
在此请使用以下内核模块来解除写保护
insmod之后,于终端输入

echo -n "mmcblk0" > /sys/kernel/mmc_protect/clear

无任何返回,即告解除成功
如需检查是否解锁成功,可于终端输入

cat /sys/kernel/mmc_protect/status

如果均为0值即代表完整解锁
如遇设备卡死,请三键法强制重启后再试

下载

内核:kyv31_optkernel_v1.img
写保护管理内核模块:kyv31_mmc_protect_v1.ko

设备信息

品牌:KYOCERA
型号:NP501KC
设备名:DIGNO ケータイ
Android版本:5.1.1
源码版本:111.0.4810
对应版本:112.0.4817(不保证向前兼容性)
测试通过版本:112.0.4817
编译链:gcc version 4.9.4 (Linaro GCC 4.9-2017.01)

移除功能

SELINUX_KC内核安全模块
KCPDSM内核安全模块
AKSCDroot检测

还原功能

原版SELinux

截图

Kernel_501KC

注意

京瓷设备在给电时,仍旧会锁定SYSTEM等重要分区。但在安卓5.1之中,内核模块方法控制eMMC不起作用。由于方法专有,请私聊我以获得更多技术详情

下载

内核下载(请解压后使用)

设备信息

品牌:KYOCERA
型号:KYV33
设备名:INFOBAR A03
Android版本:4.4.4
源码版本:104.0.3120
对应版本:104.0.3120(不保证向前兼容性)
测试通过版本:104.0.3120
编译链:gcc version 4.9.4 (Linaro GCC 4.9-2017.01)

移除功能

SELINUX_KC内核安全模块
KCPDSM内核安全模块
AKSCDroot检测

还原功能

原版SELinux

截图

Kernel_KYV33

注意

京瓷设备在给电时,会写保护SYSTEM等重要分区
在此请使用以下内核模块来解除写保护
insmod之后,于终端输入

echo -n "mmcblk0" > /sys/kernel/mmc_protect/clear

无任何返回,即告解除成功
如遇设备卡死,请三键法强制重启后再试

下载

内核下载
内核模块下载

设备信息

品牌:SHARP
型号:SH-01G(代号:DL60)
设备名:AQUOS ZETA
Android版本:5.0.2
源码版本:02.00.04
对应版本:02.00.04(兼容02.00.02/03)
测试通过版本:02.00.04
编译链:gcc version 4.9.4 (Linaro GCC 4.9-2017.01)

移除功能

MIYABI内核安全模块
Kallsyms保护模块
eMMC读写保护

还原功能

原版SELinux

截图

Kernel_SH-01G

下载

内核下载