ZTE STB Tools分析

Sun 26 September 2021
By lewix

最近对家里的电信盒子感兴趣了,研究了一下,设置里登录密码是6321,进去看了下,型号是B860AV1.1-T,软件版本V81511329.1011 2019-05-22。

这个版本已经没有简单的方法可以开adb,必须通过二维码扫码,拿到的是RSA公钥,没有破解的可能。网上的其他方法要焊TTL或版本还原,动静太大了,舍弃。

经过一番搜索,ZTE_STB_Tools应该能用,但需要注册,就尝试了下,运气不错成功连接并开adb了。把分析结果分享一下,以方便他人。使用的版本是ZTE_STB_Tools_V2.0.0_T04

打开zte_stb_tools,进去生成了一个以sq开头的机器特征码,去除sq后,剩下的是Hex格式的Bytes,格式如下:

byte0: 0x14 未知

byte1: 0x78 密文长度

byte2-3: 0x0001 未知

byte4-19: 3DES key 16bytes,其中byte4-7,8-11应该为伪随机数值,但因为没有设置seed,使得每次运行为固定值,第一次点击按钮的值为0x29000000和0x23480000。

密文加密方式为3DES,ECB模式,PKCS7填充,key为16bytes加0扩充至24bytes。

bytes20-end: 密文。长度为0x78

解密后,记为decrypted_text:

byte0-47: 软件的版本字符串

byte48-63: 16bytes的硬件特征码

byte64-71: 8bytes 注册表中获取的特征码,可能为全0

软件的注册码格式如下:

加密前:

byte0-23: decrypted_text byte48-71

byte24: 0x0e

byte25-27: 年月日,有效期开始日期

byte28-30: 年月日,有效期结束日期,在此日期范围之外运行程序会让重新注册。

byte32: 接下来的字符串长度

byte33: 0x00

byte34-end: 字符串,硬编码的字符串,是此软件与电信盒子交互时的密码,可以在rom的某个.so里找到。

KEY: 16bytes

byte0-7: 8bytes 随机值

byte8-15: decrypted_text byte64-71

加密仍然是3DES,ECB模式,PKCS7填充,key为16bytes加0扩充至24bytes。得到密文。

注册码格式,为Hex格式的二进制数据:

byte0: 密文长度

byte1-2: 0x0001

byte3-18: key

byte19-end: 密文

注册后该软件就可以用了,可以打开adb或者开ssh,拿到最高权限了。