pwnable.kr [Toddler's Bottle] - flag

Papa brought me a packed present! let's open it.

Download : http://pwnable.kr/bin/flag

This is reversing task. all you need is binary

考查簡(jiǎn)單的逆向分析能力,主要還是看了不了解套路。
用IDA打開(kāi)flag文件,發(fā)現(xiàn)程序流程異常,檢測(cè)不到庫(kù)函數(shù),察覺(jué)到有殼。
用任意hex編輯器打開(kāi),也可以直接在IDA中觀察Hex View,可以看到是加了UPX殼。


這里便可以直接用UPX殼工具解包(https://upx.github.io/), upx -d -o flag_unpack flag
之后重新用IDA打開(kāi),查看main函數(shù)

流程已經(jīng)很清晰了:

  1. 使用malloc()開(kāi)辟了一個(gè)堆空間,返回首地址;
  2. 將flag的內(nèi)容通過(guò)strcpy復(fù)制到該地址處。
    這里就不用跟進(jìn)到開(kāi)辟的空間處去找答案,call strcpy()之前的rsi寄存器保存了flag內(nèi)容所在地址,跟進(jìn)到cs:flag,就能得到最終答案。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容