知识点
1.C语言源代码分析
步骤
下载附件,用编辑器打开。
最终打印的hash16进制数是flag(%x是以16进制数打印)
hash由first,second,argv[3]的长度经过一系列计算得来。
first:在第二个if函数中,为0xcafe
second:在第三个if函数中,既要%5为3也要%17不为8,所以second为25
strlen(argv[3]):在第四个if函数中,为"h4cky0u",所以长度为7
综上,代码为:
#include <stdio.h>
int main()
{
int hash = 0xcafe * 31337 + (25 % 17) * 11 + 7 - 1615810207;
printf("%x\n",hash);
return 0;
}