1. 程式人生 > >CTF--2016中國西安西電華山杯網路安全技能大賽之crackme6

CTF--2016中國西安西電華山杯網路安全技能大賽之crackme6

Crackeme6 write up(help me)

0x01

為了照顧水平技術差異化,本題解答對大神來說,有些繁瑣。(大神可以忽略飄過)

方便一部分逆向新手學習。

0x02

命令列行程式上圖顯示崩潰,剛開始還懷疑程式編寫的有問題。

於是先暫時用IDA載入測試一下。

找到輸出位置

注意到輸出位置特殊。往下看貌似後面還有輸出

注意此段程式碼好像是花指令

可以忽略不管。

往下繼續檢視發現類似有恭喜字串,可能答案在附近。

注意查詢字串,可以測試提交一下flag

測試幾次之後發現答案均無效,於是繼續讀函式處理程式碼。

選測試圖選單,進入圖模式,在選單檢視一下函式呼叫流程圖

看到最左側函式輸出使用OutputDebugStringA

函式。其中輸出之前進行了十六進位制格式化字串。“%2X”關鍵字元。在這之上有個使用者處理函式sub_401200。採用F5虛擬碼編譯模式檢視。

進行快速處理。(前面其實也可以直接採用快捷鍵F5模式直接快速處理,大神忽略飄過)

是系統字串處理函式。

到這裡,還有字串處理,異或演算法,分之比較。可以看看

測試輸出的十六進位制會不會是flag結果。

rev3rs3_ana1ys1s

迴圈每個位元組

異或0x09

==>7B6C7F3A7B7A3A5668676838707A387A

測試成功。

0x03 

Ida使用工具自動靜態分析,在不執行的情況下繞過了崩潰,難度降低。

採用odbg那麼題目將會加大難度,其中有三個異常退出函式。

必須進行人工修復,否則一直處於無法繼續除錯狀態。

而且必須保持返回值不能被修改。

修復好執行開啟debugview直接接收顯示的答案。


後面具體就不細說了。類似。


下載地址

下載地址