分类 电子垃圾 下的文章

解锁完成之后对其系统更新包产生了兴趣
仔细看了下发现结构简单,所以写了个基于python的解包器
有空再看Cramfs里面是什么吧~哈哈哈哈

import struct
import sys

def extractCramfs(fwData, offset):
    sizeStruct = struct.unpack('<I', fwData[offset+4:offset+8])[0]
    return fwData[offset:offset+sizeStruct]

def extractKernel(fwData, offset):
    headerSize = 64
    imageSize = struct.unpack('>I', fwData[offset+12:offset+16])[0]
    return fwData[offset:offset+headerSize+imageSize]

def extractLinuxVersion(uImageHeader):
    verStartSize = 32
    versionInfo = uImageHeader[verStartSize:64].decode('utf-8', 'ignore')
    return versionInfo

if __name__ == "__main__":
    if len(sys.argv) != 3 or sys.argv[1] != '--firm':
        print("Usage: python uroad_extractor.py --firm <path/to/firmware>")
        sys.exit(1)

    firmwarePath = sys.argv[2]
    with open(firmwarePath, 'rb') as firmwareFile:
        fwData = firmwareFile.read()

        cramfsData = extractCramfs(fwData, 32)
        with open('rootfs.cramfs', 'wb') as cramfsFile:
            print("Cramfs Size:", len(cramfsData))
            print("Cramfs Offset:", 32)
            print("Cramfs End:", 32 + len(cramfsData))
            cramfsFile.write(cramfsData)

        kernelStartAddr = 32 + len(cramfsData)
        uImageData = extractKernel(fwData, kernelStartAddr)
        with open('uImage.bin', 'wb') as uImageFile:
            print("Kernel Size:", len(uImageData))
            print("Kernel Offset:", kernelStartAddr)
            print("Kernel End:", kernelStartAddr + len(uImageData))
            print("Kernel CRC:", hex(struct.unpack('>I', uImageData[16:20])[0]))
            uImageFile.write(uImageData)

        linuxVersion = extractLinuxVersion(uImageData[:64])
        print("Linux Version:", linuxVersion)
        
        print("Extract Complete!")

前言

最近在逛某宝的“老王电子数码DIY"库存品店,发现了一个6块6毛钱的随身WIFI,觉得挺便宜的就购入了,到手之后做了一些很简单的分析,发现其可以解锁并且正常使用,以下为分析和解锁的流程。

初步

以下为刚刚到手的样子,很明显是某出境随身WIFI租赁公司租赁韩国SKT运营商的产品。
收到时候没有电池,不过这个设备支持完全USB供电,仅需5V2A即可。
URoadUnl_Preview
翻到背面,可以看到型号为LFM300R和SN,IMEI等信息
URoadUnl_Infos
通过型号,成功通过网页时光机找到了这个机器的官方指南
URoadUnl_OfficialDoc
在这里请留意你的设备IMEI的最后四位数和IMEI上方的SN,之后解锁流程中需要使用

初探

直接插入我们自己的SIM卡,由于店家在商品介绍里面就有写是网络锁,所以肯定是不能直接使用的。
URoadUnl_SimErrLight
设备上的指示灯也显示是告警状态
然后我们通过http://192.168.1.1来登录到用户面板

用户面板用户名为user,密码为左侧贴纸上的Wi-Fi PSK密码

进入用户面板之后可以在右上方点击ENG切换到英文界面
URoadUnl_SimErrWeb
在这里我们可以看到已经读卡,但是仅限于读到了ICCID,网络状态为Inactive无法使用

管理员面板

在官方指南里面其实有提到如何进入管理员面板,但是并未提到里面的详细设定,仅仅表明了可以手动安装系统更新,漏洞就出现在这里
我们只需要一点点后壳上的信息即可进入管理员面板

http://192.168.1.1:4XXXX (XXXX为你设备的IMEI最后四位数)
管理员面板用户名为admin,密码为IMEI上方的SN序列号

URoadUnl_Login
在上方栏中找到Basic -> Account & System Setting -> Manual Update
URoadUnl_AdminPanelUpdate
选择更新包后即可开始更新
URoadUnl_Updating
更新完成后会提示以下界面,等待设备重新启动即可更新到2017年8月编译的最新版本
URoadUnl_UpdateOk

解锁

在管理员面板中稍微做了下发掘,就找到了网络锁解锁选项,我觉得可能韩国人根本没有想好好锁这个机器吧
URoadUnl_SimSettings
修改以下两个选项
LTE -> LTE Management -> Ignore USIM 改为Enable
LTE -> LTE Management -> Connection Setting 改为Automatic
选项需要一个一个进行修改,改完一个之后需要按一次Apply然后等待系统重启后再修改下一个选项
URoadUnl_Restart
执行完成这两个修改之后这个设备的网络锁即告解除

设定APN

继续进入管理员面板
URoadUnl_AuthSettings
找到LTE -> Authentication Setting -> APN Profile
即可新增自己的APN并且应用了,应用之后重启再次进入管理员面板,即可看到已经连上了数据网络
URoadUnl_LTEInfo

LTE调试

这个设备也可以看到很详细的LTE基站/频点等信息
在LTE -> LTE Debug Screen点选ON即可看到
URoadUnl_LTEDebug.png

5Ghz Wi-Fi

这个设备也支持5Ghz频段,但是只可双频单发,可以让Wi-Fi协商速度到300Mbps
可在Wireless -> Basic Setting -> Frequency中改为5Ghz,也可以修改是否开启省电模式等设置
URoadUnl_5GWifi

配置

SoC: GCT GDM7243M 单核1Ghz ARMv7
RAM: 256MB
WLAN: Marvell SD8897 SDIO
LTE支持: FDD-LTE B3/B5(LTE Cat.4) 隐藏频段: FDD-LTE B4/B13
AP系统: Linux 3.10.38 uClibc
BP系统: T-KERNEL (ITRON)
支持作为USB RNDIS网卡

下载

官方文档(韩文):OV6NZ5_URoad-LFM300_Upgrade_Manual.pdf
LFM300 V13011版本固件:OV6NZ5_URoad-LFM300_SKT_WEB_v13011.enc
LFM300R V12811版本固件:OV6NZ5_URoad-LFM300R_SKT_WEB_v12811.enc
手机APP(无法兼容新的Android版本):URoad_LFM300_1.3.0.apk

大概在2019年年末,从当时的上级处拿到了一批很早期的电纸书。其中就包括好几台巴诺(Barnes & Noble)书店所推出的Nook一代,仔细整理了一番发现还不止有WiFi版本,甚至还有一台WiFi/3G版。所以开始对其折腾,通过篡改基本底层固件的方式打开了ADB,才发现其本体是基于Android 1.5魔改的系统,当初是想将其修复成为正常电子书使用,所以尝试对一些系统APP进行了汉化,但是后来因为许许多多的乱七八糟事情混合在一起,这个事情在完成了不到40%的情况下就被搁置至今了,设备也分别赠送给了好几个朋友。所以这篇文章的目的仅仅是为了公布当初已经做完的部分,还有一些当时的素材。

部分完成的效果

NOOKCHN_WifiConnect
NOOKCHN_Browser
NOOKCHN_Settings
NOOKCHN_USBStorage
下载素材和软件包