re | [ACTF新生賽2020]SoulLike
阿新 • • 發佈:2020-09-18
這是一道x64的elf逆向。
程式碼簡潔明瞭,直接上圖:
先檢測前幾位,然後測5, 11位;這裡進一個叫sub_83A的函式,這個函式太大了導致沒辦法反編譯,大概看了一下彙編,是一個對後面的加密操作,然後對比,驚喜的是,它會給我們報錯,告訴我們錯在哪一位:
啊這麼玩兒的話我肯定選擇爆破了,直接上pwntool,幹就完了,丟指令碼了:
1 from pwn import * 2 import re 3 4 flag = "actf{" 5 # context.log_level="debug" 6 7 k = 0 8 while True: 9 for i inrange(33,127): 10 p = process('./SoulLike') 11 _flag = flag + chr(i) 12 print _flag 13 p.sendline(_flag) 14 s = p.recvline() 15 r = re.findall("on #(.*?)\n", s)[0] 16 r = int(r) 17 if r == k: 18 print 'no' 19 printk 20 elif r == k + 1: 21 print s 22 flag += chr(i) 23 k += 1 24 p.close() 25 p.close() 26 if k > 11: 27 break 28 print flag
等報錯把最後一條拿出來加個'}',搞定!