-
-
[求助]加密算法分析.
-
发表于: 2014-7-16 22:59 3618
-
数据来源是两个单片机之间 通过 串口进行的数据传送.
原始数据 如下
81 81 06 00 00 00 12 E4 B2 3F 21 58 C0 41 56 9F 3F D4 70 FF 77 91 A3 64 B2 09 9F
81 81 06 00 00 00 12 0C DA 67 49 80 E8 69 7E C7 67 FC A7 27 9F D1 CB 8C DA 0A 96
81 81 06 00 00 00 12 5C 2A B7 99 D0 38 B9 DF 13 40 5C F7 77 EF 21 1B DC 2A 08 DC
81 81 06 00 00 00 12 4A 18 A5 87 BE 26 A7 BC 05 A5 3A E5 65 DD 0F 09 CA 18 07 F2
81 81 06 00 00 00 12 63 31 BE A0 D7 3F C0 E6 19 7A 50 FE 7E F6 28 22 E3 31 09 79
81 81 06 00 00 00 12 21 EF 7C 5E 95 FD 7E A4 D7 38 0E BC 3C B4 E6 E0 A1 EF 0A D5
81 81 06 00 00 00 12 46 14 A1 83 BA 22 A3 B8 01 A1 36 E1 61 D9 0B 05 C6 14 07 AA
通过我自己的分析 确定了 前6位是指令头 第七位的 0x12(18) 应该是 数据长度 . 第八位应该是随机数. 用第八位 分别减去后面 18位得到的结果 是比较有规律的值. 所以这一步应该是对的.
用第八位 分别减去后面 18位的结果如下. ( 略去了前八位. )
32 A5 C3 8C 24 A3 8E 45 A5 10 74 E5 6D 53 41 80 32 DB 45
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 02 76
32 A5 C3 8C 24 A3 7D 49 1C 00 65 E5 6D 3B 41 80 32 54 80
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 43 58
32 A5 C3 8C 24 A3 7D 4A E9 13 65 E5 6D 3B 41 80 32 5A EA
32 A5 C3 8C 24 A3 7D 4A E9 13 65 E5 6D 3B 41 80 32 17 4C
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 3F 9C
由于 不知道 原始数据,所以只能从其中一个单片机发送已知数据给另一个 目前 已知数据如下
32 A5 C3 8C 24 A3 8E 45 A5 10 74 E5 6D 53 41 80 32 DB 45
00000000 00000000
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 02 76
00000000 13000038
32 A5 C3 8C 24 A3 7D 49 1C 00 65 E5 6D 3B 41 80 32 54 80
13048930 13000038
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 43 58
00000000 13000038
32 A5 C3 8C 24 A3 7D 4A E9 13 65 E5 6D 3B 41 80 32 5A EA
13054403 13000038
32 A5 C3 8C 24 A3 7D 4A E9 13 65 E5 6D 3B 41 80 32 17 4C
13054403 13000038
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 3F 9C
00000000 13000038
每行下方的两组数据 分别对应 7至10 和11至14字节. 另外 观查发现 第一字节和第十七字节的值是重复的. 估计程序使用了一个16字节的 密钥做的循环加密,但用已知数据做 逆向运行 发现很难套进去. 不知道 用的是什么算法. 知道看雪的牛人多. 希望哪位大牛能给指点一下. 谢谢. ..
原始数据 如下
81 81 06 00 00 00 12 E4 B2 3F 21 58 C0 41 56 9F 3F D4 70 FF 77 91 A3 64 B2 09 9F
81 81 06 00 00 00 12 0C DA 67 49 80 E8 69 7E C7 67 FC A7 27 9F D1 CB 8C DA 0A 96
81 81 06 00 00 00 12 5C 2A B7 99 D0 38 B9 DF 13 40 5C F7 77 EF 21 1B DC 2A 08 DC
81 81 06 00 00 00 12 4A 18 A5 87 BE 26 A7 BC 05 A5 3A E5 65 DD 0F 09 CA 18 07 F2
81 81 06 00 00 00 12 63 31 BE A0 D7 3F C0 E6 19 7A 50 FE 7E F6 28 22 E3 31 09 79
81 81 06 00 00 00 12 21 EF 7C 5E 95 FD 7E A4 D7 38 0E BC 3C B4 E6 E0 A1 EF 0A D5
81 81 06 00 00 00 12 46 14 A1 83 BA 22 A3 B8 01 A1 36 E1 61 D9 0B 05 C6 14 07 AA
通过我自己的分析 确定了 前6位是指令头 第七位的 0x12(18) 应该是 数据长度 . 第八位应该是随机数. 用第八位 分别减去后面 18位得到的结果 是比较有规律的值. 所以这一步应该是对的.
用第八位 分别减去后面 18位的结果如下. ( 略去了前八位. )
32 A5 C3 8C 24 A3 8E 45 A5 10 74 E5 6D 53 41 80 32 DB 45
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 02 76
32 A5 C3 8C 24 A3 7D 49 1C 00 65 E5 6D 3B 41 80 32 54 80
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 43 58
32 A5 C3 8C 24 A3 7D 4A E9 13 65 E5 6D 3B 41 80 32 5A EA
32 A5 C3 8C 24 A3 7D 4A E9 13 65 E5 6D 3B 41 80 32 17 4C
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 3F 9C
由于 不知道 原始数据,所以只能从其中一个单片机发送已知数据给另一个 目前 已知数据如下
32 A5 C3 8C 24 A3 8E 45 A5 10 74 E5 6D 53 41 80 32 DB 45
00000000 00000000
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 02 76
00000000 13000038
32 A5 C3 8C 24 A3 7D 49 1C 00 65 E5 6D 3B 41 80 32 54 80
13048930 13000038
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 43 58
00000000 13000038
32 A5 C3 8C 24 A3 7D 4A E9 13 65 E5 6D 3B 41 80 32 5A EA
13054403 13000038
32 A5 C3 8C 24 A3 7D 4A E9 13 65 E5 6D 3B 41 80 32 17 4C
13054403 13000038
32 A5 C3 8C 24 A3 8E 45 A5 10 65 E5 6D 3B 41 80 32 3F 9C
00000000 13000038
每行下方的两组数据 分别对应 7至10 和11至14字节. 另外 观查发现 第一字节和第十七字节的值是重复的. 估计程序使用了一个16字节的 密钥做的循环加密,但用已知数据做 逆向运行 发现很难套进去. 不知道 用的是什么算法. 知道看雪的牛人多. 希望哪位大牛能给指点一下. 谢谢. ..
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
赞赏
他的文章
- 请教 IDA pro 输出的伪C代码中的 __CFADD__是什么指令. 19542
- [求助]加密算法分析. 4556
- [求助]加密算法分析. 3619
- [求助]一个8字节16进制字符串转日期时间函数,后半段不懂,求帮助。 8106
看原图
赞赏
雪币:
留言: