攻防世界 open-source
下载附件,发现就是.c源代码,直接打开。
查看代码,发现,
if (first != 0xcafe),如果frist不等于0Xcafe,就结束程序。
所以first=0Xcafé。
if (second % 5 == 3 || second % 17 != 8),如果second对5取余数等于3或者对17取余不等于8,则结束程序。
所以second=对5取余不等于3和对17取余等于8的数。
所以最小second=25。
if (strcmp(“h4cky0u”, argv[3])),这两个字符串比较,相等返回0,不相等,前面大返回正数,后面的大返回负数。
所以这里argv[3]=h4cky0u。
然后unsigned int hash = first * 31337 +(second % 17) * 11 + strlen(argv[3]) - 1615810207;
print(hex(hash))
得到flag 0xc0ffee
hash))
得到flag 0xc0ffee