buuctf 逆向 xor

菜逼的ctf之路發表於2020-10-05

buuctf 逆向 xor

題邏輯比較簡單,但是中間有點小插曲,等會再說,先開啟軟體,沒殼(我查過了),然後開啟ida,如圖在這裡插入圖片描述
邏輯很簡單,就是把下一個和之前的一個異或,然後儲存。
然後比較坑的地方就來了。
點開global,出現如圖所示
在這裡插入圖片描述
這裡的資料比較奇怪了,既有資料,又有字元。所以不要單純的複製下來,要轉換為ascii碼,然後進行異或,最後貼上指令碼。

a= [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,
    0x06, 0x68, 0x0F, 0x47, 0x32,0x4F]

s=''
s+='f'
for i in range(1,len(a)):
    s+=chr(a[i]^a[i-1])
print(s)

因為第一個是f,所以要提前加上去,之後執行就可以得到flag

最後,想更新一些《逆向工程核心原理》這本書的學習筆記,因為最近課有點多,所以今天就先划水了,就做了這一道題。之後幾天再補上關於《逆向工程核心原理》這本書上的學習筆記