日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

REVERSE-PRACTICE-BUUCTF-24

發布時間:2023/12/10 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 REVERSE-PRACTICE-BUUCTF-24 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

REVERSE-PRACTICE-BUUCTF-24

    • [watevrCTF 2019]Timeout
    • [SUCTF2019]hardcpp
    • [CISCN2018]2ex
    • [UTCTF2020]babymips

[watevrCTF 2019]Timeout

elf文件,無殼,ida分析
main函數中signal,alarm,delay三個函數配合使用是為了反調試

交叉引用變量"can_continue",來到generate函數,驗證"can_continue"是否等于1337,然后打印s
于是可以知道該程序是為了防止用戶在main函數返回前修改EIP來執行generate函數從而獲得flag



直接摳出來s的數據,轉成字符串即為flag

data=[119,97,116,101,118,114,123,51,110,99,114,121,116,105,111,110,95,105,115,95,111,118,101,114,114,97,116,101,100,95,121,111,117,116,117,98,101,46,99,111,109,47,119,97,116,99,104,63,118,61,79,80,102,48,89,98,88,113,68,109,48,125] print(''.join(chr(i) for i in data)) #watevr{3ncrytion_is_overrated_youtube.com/watch?v=OPf0YbXqDm0}

或者是patch程序,把alarm函數的參數增大,或者是在main函數返回后下斷點,修改EIP去執行generate函數,都可得到flag

[SUCTF2019]hardcpp

elf文件,無殼,ida分析
main函數中加了混淆,還不能調試,只能硬著頭分析
x和y那些都沒用,主要的運算和判斷邏輯在這里
第109行有個判斷,驗證enc[i-1]=v15=(s[i]+(s[i-1]%7))^(2+3*(18^s[i-1])),i從1開始,enc是已知的數據,s是輸入
由此可以得到s[i]=((enc[i-1])^(2+3*(18^s[i-1])))-(s[i-1]%7)),i從1開始,所以s[0]需要爆破一下

寫腳本即可得到flag

enc=[0xF3, 0x2E, 0x18, 0x36, 0xE1, 0x4C, 0x22, 0xD1, 0xF9, 0x8C,0x40, 0x76, 0xF4, 0x0E, 0x00, 0x05, 0xA3, 0x90, 0x0E, 0xA5] for i in range(32,127):s=[]s.append(i)flag=""flag+=chr(i)for j in range(1,len(enc)+1):tmp=(enc[j-1]^(2+3*(18^s[j-1])))-(s[j-1]%7)s.append(tmp&0xff)flag+=chr(tmp&0xff)if "flag" in flag:print(flag)break # #flag{mY-CurR1ed_Fns}

[CISCN2018]2ex

mips文件,ida7.5打開
shift+F12,在字符串窗口看到這樣一串字符,長度為64

out.txt文件里的字符串"│_r-+_Cl5;vgq_pdme7#7eC0=",最后是個等號,猜測是變表base64
用工具解base64即可得到flag

[UTCTF2020]babymips

mips文件,無殼,ida7.5打開
main函數,讀取輸入,將已知的unk_4015F4拷貝到v7,傳遞v7和輸入到check函數,驗證輸入

進入check函數,驗證輸入的長度是否為78,檢驗input[i]^(i+23)==v7[i]是否成立

寫腳本即可得到flag

v7=[0x62, 0x6C, 0x7F, 0x76, 0x7A, 0x7B, 0x66, 0x73, 0x76, 0x50,0x52, 0x7D, 0x40, 0x54, 0x55, 0x79, 0x40, 0x49, 0x47, 0x4D,0x74, 0x19, 0x7B, 0x6A, 0x42, 0x0A, 0x4F, 0x52, 0x7D, 0x69,0x4F, 0x53, 0x0C, 0x64, 0x10, 0x0F, 0x1E, 0x4A, 0x67, 0x03,0x7C, 0x67, 0x02, 0x6A, 0x31, 0x67, 0x61, 0x37, 0x7A, 0x62,0x2C, 0x2C, 0x0F, 0x6E, 0x17, 0x00, 0x16, 0x0F, 0x16, 0x0A,0x6D, 0x62, 0x73, 0x25, 0x39, 0x76, 0x2E, 0x1C, 0x63, 0x78,0x2B, 0x74, 0x32, 0x16, 0x20, 0x22, 0x44, 0x19] flag="" for i in range(len(v7)):flag+=chr(v7[i]^(i+23)) print(flag) # utflag{mips_cpp_gang_5VDm:~`N]ze;\)5%vZ=C'C(r#$q=*efD"ZNY_GX>6&sn.wF8$v*mvA@'}

總結

以上是生活随笔為你收集整理的REVERSE-PRACTICE-BUUCTF-24的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。