i春秋网鼎杯网络安全大赛advanced题目writeup
今天打了护网杯
发现啥也不会 悲伤 就想起来了未完成的网鼎杯 来补坑(通过观摩大佬writeup)
file命令查看是一个64位的ELF文件 运行后无交互动作 只输出
welcome, here is your identification, please keep it in your pocket: 4b404c4b5648725b445845734c735949405c414d5949725c45495a51
到这里 平常的思路是打开IDA 进行分析(当时我就是这么做的。。。)
而大佬们则是一眼看出这是异或flag{********}之后得到的
于是上python 挑出前几位f l a g {与最后一位 } 分别与对应位置的十六进制进行异或
然后就可以发现有规律 每次得到的结果只会是44或者45
根据异或的性质 我们将奇数位与45异或 偶数位与44异或 就可以得到flag
代码如下:
import libnum
enc = libnum.n2s(0x4b404c4b5648725b445845734c735949405c414d5949725c45495a51)
#将十六进制转成字符串
flag = ''
for i in range(len(enc)):
if i % 2 == 0:
flag += chr(ord(enc[i]) ^ 45)
else:
flag += chr(ord(enc[i]) ^ 44)
print flag
这应当算是非预期思路了 等哪天弄懂了常规思路怎么做 再来补坑 告辞