martricks——flag{Everyth1n_th4t_kill5_m3_m4kes_m3_fee1_aliv3}
分析
-
拿到題目首先f(wàn)ile一下發(fā)現(xiàn)是linux的64位elf文件,用IDA打開(kāi)。
拿到未知文件先f(wàn)ile一下 -
shift+f12看到了關(guān)鍵詞,感覺(jué)要是送分題了?。m然不是送給我)
IDA打開(kāi)先shift+12一下 -
然后雙擊再雙擊,F(xiàn)5,發(fā)現(xiàn)是需要校驗(yàn)什么等于什么然后就給flag的連串復(fù)雜但普通的操作。
然后就F5一下
大意是一開(kāi)始有個(gè)v15=1,后來(lái)經(jīng)過(guò)一系列循環(huán)(),都要滿足什么等于什么……
這種時(shí)候一邊看代碼(或者直接放棄不看)的同時(shí)一遍就可以上angr了!注意一下find和avoid的地址不是最開(kāi)始找到的那個(gè)字符串所在地址(謝謝鐘sir?。┒翘D(zhuǎn)的地址,可以雙擊也可以按X快速查看內(nèi)存地址

image.png
完整代碼:
>>> from angr import *
>>> state = proj.factory.entry_state()
>>> result = proj.factory.simgr(state)
>>> result.explore(find = 0x400A84, avoid = 0x400A90)
<SimulationManager with 1 found, 49 avoid>
>>> print result.found[0].posix.dumps(0)
flag{Everyth1n_th4t_kill5_m3_m4kes_m3_fee1_aliv3}
總結(jié)
其實(shí)今天的最大挑戰(zhàn)在于裝好angr,嘗試過(guò)好多曲折的道路,windows下沒(méi)裝成功,然后把系統(tǒng)升級(jí)成win10再裝了kali也不成,后來(lái)心一橫不管別的直接pip install angr了()
emm……實(shí)在鼓不起勇氣來(lái)寫代碼逆向,作業(yè)我都不想留



