#include<stdio.h> int main() { int a[10]; int i,b=0; int code = 0xa65b939e; long j; a[0] = 0x601407; a[1] = 0x3; a[2] = 0x740110ac; a[3] = 0xf006300; a[4] = 0x51b3; for(i = 0; i < 5; i++){ b ^= a[i]; } b ^= 0x200; b ^= 0x1de4cbea; b *= 0x12C4B7E; printf("result: %x\n",b); printf("code : %x\n",code); //printf("result/code= %x\n",temp/0x12c4b7e); return 0; }
这是第三个数据包(第二次发送的数据包)的校验验证程序。
经过分析,新版协议变动如图:
更新方案:
1.源代码中的 0x1312FC7 替换成0x1de4cbea
2.将源代码中的0x7E 替换成 0x200
3.删除相应的 0x5300、0x45的复制语句