iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 28
0
Security

CTF入門學習系列 第 28

[Day28]基礎組合語言邏輯

其實
逆向工程我超級不熟
玩到現在也只能解非常基礎的題目
所以請大家參考大大的文章
https://speakerdeck.com/aaaddress1/linux-pwn-101?slide=85

神一般的大大介紹
我看了N遍才慢慢的理解這東西

https://ithelp.ithome.com.tw/upload/images/20181112/20112085yo7Ub9QXNp.png

先看看今天的題目
有個檔案

https://ithelp.ithome.com.tw/upload/images/20181112/20112085GZ3nFPadoU.png

下載之後打開發現他是組合語言QQ
回頭看看題目
他告訴我們他丟了兩個參數進一個function
希望我們告訴他return什麼

首先我們要先知道
一個function開始在執行的時候
會把參數由右到左開始放進堆疊理
所以一開始應該會長這樣

https://ithelp.ithome.com.tw/upload/images/20181112/20112085wyLib6LEVZ.png

接著下一步 mov ebp,esp
代表他將esp的內容
送進ebp裡面
那esp是指下一個要存取的位置
所以執行之後會變成這樣

https://ithelp.ithome.com.tw/upload/images/20181112/20112085rSTG9yEbEi.png

最後mov esp,ebp的時候
他會再把指標移回去ebp身上
再使用pop之後就會把ebp的下面一個東西彈出堆疊
就是我們在function裡面使用return後回傳的值
也就是d8
那這題的答案他要我們連0x一起輸入
所以flag就是0xd8

如果內容有講錯請各位大大不吝指教
逆向對我來說還是好難理解阿


上一篇
[Day27]IDA pro逆向工程
下一篇
[Day29]組合語言推理par2
系列文
CTF入門學習30

尚未有邦友留言

立即登入留言