pwnable.kr [Toddler's Bottle] - flag

考查簡單的逆向分析能力,主要還是看了不瞭解套路。
用IDA打開flag文件,發現程序流程異常,檢測不到庫函數,察覺到有殼。
用任意hex編輯器打開,也可以直接在IDA中觀察Hex View,可以看到是加了UPX殼。
這裏寫圖片描述
這裏便可以直接用UPX殼工具解包(https://upx.github.io/), upx -d -o flag_unpack flag
之後重新用IDA打開,查看main函數

這裏寫圖片描述

流程已經很清晰了:
1. 使用malloc()開闢了一個堆空間,返回首地址;
2. 將flag的內容通過strcpy複製到該地址處。
這裏就不用跟進到開闢的空間處去找答案,call strcpy()之前的rsi寄存器保存了flag內容所在地址,跟進到cs:flag,就能得到最終答案。
這裏寫圖片描述

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章