近日在解密一个软件算法的时候碰到一个问题,软件授权内容经过五次DES解密(五个不同的密钥),得到的值与机器码比较,相等则正确,不等则错误,解密的时候调用的是同一个函数,前面四次解密都与标准DES解密可以对得上号,但最后一次解密结果却与标准DES大相径庭,不知道问题出在哪里?
以下是软件算法流程:
第一部份:机器码生成
硬盘号:" 5PK07TMH"
变异MD5加密后:"13aec04bbc4b6bdbc0976d217ddd7df6"
变异MD5:16位输出的前8位+32位输出的前8位+32位输出的前8位+16位输出的后8位(13aec04b+bc4b6bdb+c0976d21+7ddd7df6)
二次变异MD5后:"2b3faed264e49bcb20d22c2d58d059cf"
转为大写后取16位,从第7位开始取值,作为机器码:D264E49BCB20D22C
第二部份:授权文件解密
从授权文件中取出的值: 9F1562F7BACA8A212889E15F746B60D2181A1BAD5D846D036B4EDB2A78951F1A858C52B5E88791E3C3C0BB58686268867B98711A3F52FED20100EA4DF8D883CCB221F5003BCE07DC273836317472060BC6F65A1B96C356EC8ADCF9055CB82444A0839A58777660A7945DE107B19C1DC89313259966047C52BAFC503C696CFF281AF7B597573F5FE47F00045CE59127AE27AEED506945A6BB36B3067271FB51A2220DD8DC87AEC6E9427CE56C5E2F3C22121C50E52E099E174395D7F641AEBC08C61BC61F5B5F8547E078DD887061A1479453984501549C8EC5EA5440A40B3B4A80B710D724A3C9A22FDFCC63AEC05FBA939D5B0298A2269937D6E0D51EC35ED8
用密钥1(win32)解密后:(标准DES可解出同样的值)
E973C5C2723F6BC2BD70AFD29030080845F6519F7332271D330CC394A517EBC90B3E70ACAE96E2B294F90E2A8D18725D44DC8CFE92C6EDCD2E505E236DA113EE756E529CA2E48B282C244CB392CC0872A6D04994D7B3FB547A5339FAB16E29C0A6C7FBC3C1A5DBC3A253511C86C6841F063BD29A6F481F915E5F6E38BCCB6667
用密钥2(CallAdmin)解密后:(标准DES可解出同样的值)
BE6A2031374C294AB1B02E85AC538F2AC15E306D7BB44F2A18AF8CC98ABE5FE6A6762A9ABAFF3C66E6EA2CB06688569707D5AEB2F58CAE83791DBC4682087DA5
用密钥3(yss58)解密后:(标准DES可解出同样的值)
9080B6DAC10948D84A22EAB8314AC3C8DBD6526E9C6AE23411CD3959F52E9D97
用密钥4(Regedit)解密后:(标准DES可解出同样的值)
B51A4BC08AFED5A1C7563FD469638F77
用密钥5(DOS)解密后:(软件解得出来,标准DES解不出来,调用的是同样的函数,怎么就不一样了呢???)
2011D810910AD64F
第三部份:较验
5次DES解密后的值与机器码比较,相等则成功,不等则失败!
问题: 同样的函数,怎么解密就不一样了??问题出在哪里?密钥填充吗?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课