https://ctf.bugku.com/challenges#love
下載文件后運(yùn)行一下看看
隨便輸入個(gè)123看看
解題思路:
很常見的程序流程,就是輸入字符串與程序里的字符串對(duì)比,來輸出結(jié)果,這時(shí)候我們有兩種選擇。
1.寫個(gè)腳本來爆破。這是沒有辦法的辦法,效率極低且不可靠,在某些情況下是唯一的辦法,但在這道題沒有必要,所以舍棄。
2.使用軟件來調(diào)試程序代碼,或直接反編譯程序獲得源碼,在這里我用OllyDbg來調(diào)試程序。
解題流程:
拿到文件先來查殼
無殼,就是普通的c++編譯的文件,使用OllyDbg打開文件
沒有什么頭緒,右鍵選擇 中文搜索引擎->3.智能搜索
其中有幾條很眼熟
這不就是我們輸入字符串后提示的字符串嗎,點(diǎn)進(jìn)去看看
可以看到1035840處有一個(gè)跳轉(zhuǎn),根據(jù)1035842壓棧的字符串來推斷,1035847調(diào)用的函數(shù)是類似于printf的函數(shù),也就是說1035840處的跳轉(zhuǎn)決定了輸出的是”wrong flag”還是”right flag”,我們繼續(xù)向上看,尋找是什么控制關(guān)鍵跳轉(zhuǎn)的執(zhí)行。很明顯,在103582e處調(diào)用了strncmp函數(shù),而在其上,壓入了一個(gè)奇怪的字符串進(jìn)棧,根據(jù)開頭猜的程序功能,要么,這就是程序想要我們輸入的字符串。要么,是把我們輸入的字符串加密后對(duì)比的字符串。而strncmp的結(jié)果就決定了關(guān)鍵跳轉(zhuǎn)的執(zhí)行與否。我們?cè)趕trncmp處下一個(gè)斷點(diǎn),運(yùn)行程序,輸入1234567890。
對(duì)比棧里的數(shù)據(jù)可以得出,ecx中存儲(chǔ)的是我們輸入的字符串加密后的字符串,eax中存儲(chǔ)著要對(duì)比多少個(gè)字符,那我們繼續(xù)向上翻,找找是什么把我們輸入的字符串(即ecx)加密。
在其上不遠(yuǎn),我們就發(fā)現(xiàn)了一段很可疑的代碼,我們?cè)?0357d0處下一個(gè)斷點(diǎn),重新運(yùn)行程序,再次輸入1234567890
運(yùn)行到斷點(diǎn)后,查看ebp-0xac附近的內(nèi)存空間,發(fā)現(xiàn)了一段base64代碼
也就是我們輸入的字符串
分析這段加密代碼
然后通過這段匯編代碼和被對(duì)比字符串 “e3nifIH9b_C@n@dH” 來構(gòu)造python腳本
得到flag
End
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前文章:Bugku_逆向_Love-創(chuàng)新互聯(lián)
分享URL:http://jinyejixie.com/article14/dsegge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、服務(wù)器托管、商城網(wǎng)站、動(dòng)態(tài)網(wǎng)站、自適應(yīng)網(wǎng)站、品牌網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容