可以看到有一个for循环和switch,进行了5次循环.case1很明显是对flag的最后处理,将f1和f2合并得到flag,点进去可以查看到 **f1 db ‘GXY{do_not_’**,f2初始值为空,接着往下看,case2和case3都没有什么有用的消息。case4是对f2的定义,这里是小端存储,所以f2要倒过来。case5则是对f2的处理。
case的顺序应该是case4,case5,case1.
按照逻辑直接写出脚本
1 2 3 4 5 6 7 8 9 10 11 12 13 14
f1='GXY{do_not_' s0='<0x7F>fo`guci' s=s0[::-1] print(s) key="" flag="" for i inrange(8): if i%2==1: key+=chr(ord(s[i])-2) else: key+=chr(ord(s[i])-1) i=s[i] flag=f1+key print(flag)