攻防世界reverse高手进阶 ----- gametime
gfsj ----- gametime
昨天做了一道攻防世界的題key和這個gametime,都是動態調試的題。key還稍微簡單一些,gametime稍微費點時間,記錄一下。
昨天晚上可能是沒進入做題的狀態(瘋狂為自己找借口),動態調試的時候稍微有點難受,就沒有做出來,今天早上改完計網的題做了二十分鐘就出來了。還是要專注一點吶!
廢話不多說,看題。
先運行一下題目給的程序
大致就是遇到s就按空格,遇到x按x,遇到m按m,前面都還按的挺順暢的,后面就快了,反應不過來,按錯了就直接退出。甚至玩通關了之后出現了flag還沒來得及截圖就退出了,更不用說復制了。
就動態調試吧。
通過剛剛玩游戲發現程序有輸入的地方,那么我們猜測這個題的做法:F8的時候程序一定會在某個地方停住,下斷點,重新載入,F9,在下斷點的地方按F7,進入跟蹤,然后F8……,一直循環,直到發現有用的函數。
程序載入OD,F8單步走,走到不能動的地方,下斷點
重新載入,F9,然后F7進入函數
然后一路F8,直到F8不能動,再下斷點
再重新載入,F9到下的第一個斷點處,現在我們可以把這里的斷點去掉了。然后F9到第二個斷點處。
重復上面的操作,直到程序出現…s
這里就是讓我們輸入了,看看匯編
我們在輸入框那里輸入空格,OD里面就可以繼續F8了,再繼續走就是讓我們輸入x/m的測試了。就按照之前的做法繼續做……
之后就是正式的游戲環節,我調試的時候在輸入空格、m、x的地方都下了斷點。我們輸入的時候可以發現,匯編指令那里有個jnz指令,輸入的正確那么跳轉就成功,輸入的不正確就跳轉不成功,然后進入一個提示失敗的指令,如下圖:
運行到要輸入的時候就隨便輸也行,輸錯了就改ZF標志位,讓jnz跳轉成功,輸入大概五六個之后程序就會顯示flag
key is (no5c30416d6cf52638460377995c6a8cf5)
所以flag:no5c30416d6cf52638460377995c6a8cf5
總結
以上是生活随笔為你收集整理的攻防世界reverse高手进阶 ----- gametime的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 李宏毅 Attention
- 下一篇: java实现zip压缩