本帖最后由 wr410 于 2016-3-10 19:34 编辑 `' F2 ]: W+ r; Z9 ^; M/ h, v
4 w" j f; y4 M5 |) z5 Y1 T4 X: u
感谢楼主提示。2 i- M7 {' E0 M; V8 r' S" J
* b; e( v6 A( e ]) z+ y之前我做过如下的分析:
3 ]5 Q/ C) N2 X& s$ \( e' x第一,$1开头的密文类似于php里的某种散列方法,但实际上不可能,因为这是需要解密的,所以散列排除;* k. m! v1 p- I: B1 r: k7 M
第二,提取多个样本可见,相同明文的加密结果都是不同的,优先考虑带有填充的加密模式;: O" I. t8 [5 P2 _3 v# |0 j, ~
第三,加密结果基本上是定长的,结合单片机来说,应该是AES的CBC加密模式;0 Q, C' ^' S: ?1 ^: i: [
第四,综合多个样本可见,具有固定格式,$1开头$结尾,取中间为密文;, M5 z1 x/ V; l3 N! d$ ~, W8 Y
第五,因结尾出现多个!可以考虑为类似BASE64的编码模式用来补位的字符;6 ^" `1 \/ M2 e7 w1 m
第六,取密文值域,发现值域分布远超过64个,应该是类似的进制变形算法,密钥应该就是etc里的那个公用的;/ h6 B* S7 m* o4 e
第七,解固件,分析,发现加密算法分布在hw_swm和hw_ssp的lib里面;" ?' ]- K" |: n) E
4 M' l) }4 N" b( t. ?- H大致上,我就做到这里了,因为工作和时间缘故也没有继续深究,如果楼主方便的话,帮忙算一下呗,懒得折腾了,谢谢!
+ v4 R. V W. i2 [# o$1o\3g#l+0"8b4$-Z06|6>9*!!$
- ?7 O/ C, i: e) N# ~5 J# F |