算法还原实战9
练习algorithmbase_80.apk
先是用frida脚本跑几个数据看看加密特征
1 | function call_encode80(input){ |
然后加密几个测试数据看到了。当输入长度为16以下时。输出长度为128.输入长度为>=16并且<32时。输出长度为160。由此可以判断这应该是一个组合的非标准算法。前面组合的部分目测为某个hash算法
1 | [AOSP on msm8996::com.kanxue.algorithmbase]-> call_encode80("0000") |
由于这个起始长度特征很眼熟。128的长度sha256的长度一致的。所以直接测试一下。
看到结果和上面的不一致。可能这不是sha256算法。或者是一个修改了的sha256。我们接下来验证一下。先搜索一下。看看sha256标准算法有哪些常量
1 | static const uint32_t k[64] = { |
然后搜索一下常量特征
然后我们看看那个类似MD5_Init的常量是否发生了改变。搜索一下特征0x6a09e667
没有啥变化。和上面的h0-h7的常量对比。是一致的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 king的博客!
评论
ValineDisqus