请教这个app是如何进行串口数据校验位处理的
我之前拦截了一个软件,用串口向机器发送数据,机器有返回。比如:
发送5A A5 AA 00 22 00 00 CC 0D 0A
返回5A A5 AA 00 22 02 00 00 04 D2 0D 0A
发送5A A5 AA 00 12 00 00 BC 0D 0A
返回5A A5 AA 00 12 06 00 00 00 D0 07 D0 07 70 0D 0A
我能分析出,红色部分是固定的,先不管。 绿色部分是剩下的黑色部分的和校验。
现在软件升级了,现在如下
发送:5A A5 AA 00 22 00 00 7F CE 0D 0A
返回:5A A5 AA 00 22 03 00 00 00 01 7F 92 0D 0A
发送:5A A5 AA 00 12 00 00 3A F2 0D 0A
返回:5A A5 AA 00 12 06 00 00 00 D0 07 C5 07 1D 52 0D 0A
分析新发送指令和旧发送指令得出,现在简单的和检验升级了,而且升级为两个十六进制。请问我该怎么得出这两个可能是校验位的十六进制是怎么算出来的。
我可以提供更多的一些指令:
5A A5 AA 00 21 00 00 00 16 0D 0A
5A A5 AA 00 21 0E 00 00 00 56 31 2E 33 32 31 30 34 32 37 43 00 7D 0E 0D 0A
5A A5 BB 00 12 04 00 D0 07 C5 07 65 BE 0D 0A
5A A5 BB 00 12 02 00 00 00 23 D6 0D 0A
5A A5 AA 00 19 00 00 43 88 0D 0A
5A A5 AA 00 19 04 00 00 00 FA 00 61 D2 0D 0A
5A A5 AA 00 21 00 00 00 16 0D 0A
5A A5 AA 00 21 0E 00 00 00 56 31 2E 33 32 31 30 34 32 37 43 00 7D 0E 0D 0A
这玩意不是靠猜的,要分析app代码,看他如何处理数据。 常用的校验算法都试一试吧,比如什么CRC循环校验之类的, 这种加密过的封包只用肉眼是无法解开的,你得知道秘钥才能去试各种算法,比如什么xor 单位异或之类的,我最近刚接触这块,从啥是封包,到抓包拦截修改,才知道这其实是没那么容易搞定的,得慢慢学逆向先了
页:
[1]