XCTF攻防世界 Reverse IgniteMe

2021-10-19 12:38:17 字數 1218 閱讀 7369

檔案用ida開啟,反編譯主函式

int __cdecl main

(int argc,

const

char

**ar**,

const

char

**envp)}if

( v13 ==

125)

else

}else

return result;

}

看到返回「congratulations」的if條件,可猜測函式sub_4011c0為判斷flag的關鍵函式,進去看內容:

bool __cdecl sub_4011c0

(char

*a1)

的內容 v8[v6]=0

; v5 =0;

v3 =0;

memset

(v4,0,

0x20u);

for( i =0;

;++i )if(

!v3 && v8[i]

>=

'a'&& v8[i]

<=

'z')

v8[i]+=

32;v4[i]

= byte_4420b0[i]

^sub_4013c0

(v8[i]);

v3 =0;

}return

strcmp

("gondphygjpekruv

其中函式sub_4013c0內容為:

int __cdecl sub_4013c0

(int a1)

根據函式邏輯反向運算就能得到flag

t =[13

,19,23

,17,2

,1,32

,29,12

,2,25

,47,23

,43,36

,31,30

,22,9

,15,21

,39,19

,38,10

,47,30

,26,45

,12,34

,4]s=

"gondphygjpekruv'

)

執行得到flag

eis

xctf 攻防世界 key

好久沒有去攻防世界玩了 主要是這段時間太忙了 有很多 雜事 纏身吧 然後沒事看看堆 就。看自閉了 然後這道題其實還是很簡單的 有很多函式 還有指令其實感覺 用od 或者ida 直接靜態 就能查出來什麼意思 就沒有必要 去深究 裡面的演算法 點進去 主要的函式 發現了這個東西 注意這個 memory ...

XCTF攻防世界warmup

擷取字串從0到?重新賦值給 page page,0 mb strpos page 尋找第乙個?的座標 if in array page,whitelist page urldecode page url解碼 page mb substr page,0,mb strpos page if in arr...

xctf攻防世界maze writeup

ida64開啟,f5分析 輸入乙個24位字串,儲存到s1裡,經過一系列判斷處理,才能到達congratulations!int64 fastcall main int64 a1,char a2,char a3 要求輸入的s1長度為24,開頭和結束應該是nctf v3 5ll if strlen s1...