ELF64位,无壳,直接拖进ida64看
进去看函数
主要部分如图,但是case1 2 3 4 5的情况还不甚清晰,所以去看一下main函数
输入的为v4 paych_me函数为对v4做的变换
点进去
只有当传入的值为偶数时才会运行get_flag函数
再点进get_flag函数,就是开始定位到的函数了(按照这个过程来看前面的流程也没啥用,所以关键还是在这段上)
具体字符是啥大家可以自己去找,f1和处理后的f2拼接就得到flag了
注意:f2为小端序存储,这里我也是一知半解不知道什么情况时为大小端序,等我弄明白再回来详细讲一下(我一般解题时解出的flag不对就把字符串逆序再解一次)
exp:
import string
s='GXY{do_not_'
s1='icug`of\x7F'
s2=list(s1)
for i in range(len(s2)):
if(i%2==1):
s+=chr(ord(s2[i])-2)
else:
s+=chr(ord(s2[i])-1)
print(s)
GXY{do_not_hate_me} 把前面替换为flag即可