本帖最后由 wr410 于 2016-3-10 19:34 编辑 8 a8 l+ |7 U9 g g; r! Y/ G
/ {, X% u; v. y( T. Q" V* b; [: C感谢楼主提示。
5 W" [$ I3 w$ h* t7 Q* z( a; v
$ z; L6 M# U5 G, T% K之前我做过如下的分析:
% g% j1 h. O9 x `5 M9 h第一,$1开头的密文类似于php里的某种散列方法,但实际上不可能,因为这是需要解密的,所以散列排除;, r1 [3 N. N5 F2 u# n
第二,提取多个样本可见,相同明文的加密结果都是不同的,优先考虑带有填充的加密模式;
' V0 k+ S' `9 A/ g' n& y第三,加密结果基本上是定长的,结合单片机来说,应该是AES的CBC加密模式;
' S' c, \- q6 S5 f" O第四,综合多个样本可见,具有固定格式,$1开头$结尾,取中间为密文;, n1 U! K' ? h. \) {
第五,因结尾出现多个!可以考虑为类似BASE64的编码模式用来补位的字符;
, L: `2 y+ N8 _( V5 [: @$ v第六,取密文值域,发现值域分布远超过64个,应该是类似的进制变形算法,密钥应该就是etc里的那个公用的;
5 r8 P) L) b" p& b/ _第七,解固件,分析,发现加密算法分布在hw_swm和hw_ssp的lib里面;- i' W* F% X0 \7 Z; @# a
; m8 Q1 D- e+ w x. r大致上,我就做到这里了,因为工作和时间缘故也没有继续深究,如果楼主方便的话,帮忙算一下呗,懒得折腾了,谢谢!' g$ u6 P5 ?1 _
$1o\3g#l+0"8b4$-Z06|6>9*!!$
: @; i& L* Q* c" w |