最近翻了一下吾爱的网盘,发现了可以用来检测二进制文件中加密算法的工具Hash & Crypto Detector v1.4
打开之后拖个DLL给它看一下,可以扫描出加密算法类型并且还能告诉你它的位置(Virtual Address)
原理其实很简单,你如果仔细看过Hash或者其他加密算法的话你会发现它总会有一些特定的常量,其中最特别的那些可以用来作为识别的特征数据(图为OpenSSL的MD5源码)
用刚才那个例子,开IDA看下刚才那个位置的汇编,右手边是百度百科给出的SHA1的伪代码,发现这些常量其实是一一对应的,由此可以判断这个算法很大概率是SHA1
(刚才报的的MD4常量也是在这张图里,估计是有MD4和SHA1共用的常量,出现了误报)
个人感觉用这个工具的好处是可以减轻算法逆向的难度(其实是因为菜+懒,如果对常见加密有了解的话,手动逆也绝对能发现这个办法),不足之处也很明显,除了刚才误报的问题之外,这个工具只针对PE文件,不支持ELF...