這是之前PaloAltoNetworks舉辦LabyREnth 2016 CTF的Windows部分第一題
執行檔看起來被UPX加殼過,但是不那麼單純,沒辦法直接用UPX程式脫
只好先用Olly動態慢慢追看看,來到殼的開頭,發現UPX殼的特徵:PUSHAD指令
一步一步追實在太慢了,於是試著搜尋後面有沒有POPAD指令
發現有POPAD指令,感覺應該的確是UPX殼無誤,下斷點執行過來
在POPAD後的JMP就會跳到OEP
修復IAT
剛剛提到的sub_12911B0就是驗證輸入的函數,姑且命名為check,裡面有40個bytes的資料,還有驗證演算法的部分

















沒有留言:
張貼留言