buu Reverse學習記錄(8) xor

EMsheep發表於2020-11-24

題目連結:https://buuoj.cn/challenges#xor

直接拖進IDA64裡,找到main函式,按F5得到虛擬碼

在這裡插入圖片描述

簡單分析下,就是,輸入的字串要有33位。然後從第二位開始,是與前一位的異或的結果。
看看這個global是什麼字串

在這裡插入圖片描述
寫個指令碼就出flag

str=[0x66,0x0A,0x6B,0x0C,0x77,0x26,0x4F,0x2E,0x40,0x11,0x78,0x0D,0x5A,0x3B,0x55,0x11,0x70,0x19,0x46,0x1F,0x76,0x22,0x4D,0x23,0x44,0x0E,0x67,0x6,0x68,0x0F,0x47,0x32,0x4F]
flag=""
flag += chr(str[0])
for i in range(1,33):
    flag += chr(str[i] ^ str[i-1])
print(flag)

flag:flag{QianQiuWanDai_YiTongJiangHu}