1. 程式人生 > 實用技巧 >re | [ACTF新生賽2020]SoulLike

re | [ACTF新生賽2020]SoulLike

這是一道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 in
range(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 print
k 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

等報錯把最後一條拿出來加個'}',搞定!