【buuctf Reverse】[GXYCTF2019]luck_guy wp

[GXYCTF2019]luck_guy

https://buuoj.cn/challenges#[GXYCTF2019]luck_guy

只有一个可执行文件,IDA 64位直接干
请添加图片描述

进main函数,F5反编译,看主要处理函数,跳转进去
【buuctf Reverse】[GXYCTF2019]luck_guy wp_第1张图片
【buuctf Reverse】[GXYCTF2019]luck_guy wp_第2张图片

在这里看到。flag是由f1和f2拼出来的,f1在汇编中有,双击查看

.data:0000000000601078 f1              db 'GXY{do_not_',0      ; DATA XREF: get_flag+9E↑o

f2没有现成的字符串,看代码是s = 0x7F666F6067756369LL是初始字符串,在case5中得到f2
【buuctf Reverse】[GXYCTF2019]luck_guy wp_第3张图片

根据长度8,应该是每个字节转数字变换后转ASCII码。写代码执行

flag="GXY{do_not_"
f2=[0x7F,0x66,0x6F,0x60,0x67,0x75,0x63,0x69]
for j in range(8):
    if j%2==1:
        s=chr(f2[j]-2)
    else:
        s=chr(f2[j]-1)
    flag+=s
print (flag)

输出 GXY{do_not_~dn^fsbg
这个结果不太对,上网看,发现有大小端问题

flag="GXY{do_not_"
f2=[0x7F,0x66,0x6F,0x60,0x67,0x75,0x63,0x69][::-1] #小端序的问题,所以要逆序一下
for j in range(8):
    if j%2==1:
        s=chr(f2[j]-2)
    else:
        s=chr(f2[j]-1)
    flag+=s
print (flag)

输出 GXY{do_not_hate_me}
提交flag{do_not_hate_me}

你可能感兴趣的:(ctf,ctf,buuctf,Reverse)