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
或者是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
[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
總結
以上是生活随笔為你收集整理的REVERSE-PRACTICE-BUUCTF-24的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 买十万有2万利息的国债来了,今年仅剩最后
- 下一篇: Python3 爬虫学习笔记 C17【爬