在雅虎拍卖上捡老日机的垃圾,不可避免的会捡到一些有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

本文及其附件均采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

添加新评论