REVERSE-PRACTICE-BUUCTF-24
REVERSE-PRACTICE-BUUCTF-24
- [watevrCTF 2019]Timeout
- [SUCTF2019]hardcpp
- [CISCN2018]2ex
- [UTCTF2020]babymips
[watevrCTF 2019]Timeout
elf文件,無(wú)殼,ida分析
main函數(shù)中signal,alarm,delay三個(gè)函數(shù)配合使用是為了反調(diào)試
交叉引用變量"can_continue",來(lái)到generate函數(shù),驗(yàn)證"can_continue"是否等于1337,然后打印s
于是可以知道該程序是為了防止用戶在main函數(shù)返回前修改EIP來(lái)執(zhí)行g(shù)enerate函數(shù)從而獲得flag
直接摳出來(lái)s的數(shù)據(jù),轉(zhuǎn)成字符串即為flag
或者是patch程序,把a(bǔ)larm函數(shù)的參數(shù)增大,或者是在main函數(shù)返回后下斷點(diǎn),修改EIP去執(zhí)行g(shù)enerate函數(shù),都可得到flag
[SUCTF2019]hardcpp
elf文件,無(wú)殼,ida分析
main函數(shù)中加了混淆,還不能調(diào)試,只能硬著頭分析
x和y那些都沒(méi)用,主要的運(yùn)算和判斷邏輯在這里
第109行有個(gè)判斷,驗(yàn)證enc[i-1]=v15=(s[i]+(s[i-1]%7))^(2+3*(18^s[i-1])),i從1開(kāi)始,enc是已知的數(shù)據(jù),s是輸入
由此可以得到s[i]=((enc[i-1])^(2+3*(18^s[i-1])))-(s[i-1]%7)),i從1開(kāi)始,所以s[0]需要爆破一下
寫(xiě)腳本即可得到flag
[CISCN2018]2ex
mips文件,ida7.5打開(kāi)
shift+F12,在字符串窗口看到這樣一串字符,長(zhǎng)度為64
out.txt文件里的字符串"│_r-+_Cl5;vgq_pdme7#7eC0=",最后是個(gè)等號(hào),猜測(cè)是變表base64
用工具解base64即可得到flag
[UTCTF2020]babymips
mips文件,無(wú)殼,ida7.5打開(kāi)
main函數(shù),讀取輸入,將已知的unk_4015F4拷貝到v7,傳遞v7和輸入到check函數(shù),驗(yàn)證輸入
進(jìn)入check函數(shù),驗(yàn)證輸入的長(zhǎng)度是否為78,檢驗(yàn)input[i]^(i+23)==v7[i]是否成立
寫(xiě)腳本即可得到flag
總結(jié)
以上是生活随笔為你收集整理的REVERSE-PRACTICE-BUUCTF-24的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 买十万有2万利息的国债来了,今年仅剩最后
- 下一篇: Python3 爬虫学习笔记 C17【爬