周末闲来无事逛论坛下了个UDA的固件,然后就花了2天时间分析了一下他的协议,
大概cmd整理如下:
1:出厂应答检测,这个没什么悬念
2:获取内部table表,具体有什么用不知道
3:获取VendorID
4:读指令
5:写指令
6:代理商读
7:代理商写
通信加密伪码算法:
BYTE bKey
for (int i=1;i<8;i++){
buf[i] ^=buf[i-1]
buf[i] -=bkey
}
解密算法就是上面加密算法的逆过程
他的通信还有一个VendorKey,
通过USB协议的GetDescriptor的GetSerialString获取,没有加密是明文的,后续通信的时候会用到。
完整的通信流程如下:
1.发送握手验证过程
2.发送VendorKey验证过程
3.发送cmd指令操作
找了驱动框架把算法模拟了一下
,
开发工具认证成功,全部OK
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2022-8-8 18:22
被少妇之友编辑
,原因: