最近对家里的电信盒子感兴趣了,研究了一下,设置里登录密码是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,拿到最高权限了。