CTF--2016中國西安西電華山杯網路安全技能大賽之crackme6
阿新 • • 發佈:2019-01-28
Crackeme6 write up(help me)
0x01
為了照顧水平技術差異化,本題解答對大神來說,有些繁瑣。(大神可以忽略飄過)
方便一部分逆向新手學習。
0x02
命令列行程式上圖顯示崩潰,剛開始還懷疑程式編寫的有問題。
於是先暫時用IDA載入測試一下。
找到輸出位置
注意到輸出位置特殊。往下看貌似後面還有輸出
注意此段程式碼好像是花指令
可以忽略不管。
往下繼續檢視發現類似有恭喜字串,可能答案在附近。
注意查詢字串,可以測試提交一下flag
測試幾次之後發現答案均無效,於是繼續讀函式處理程式碼。
選測試圖選單,進入圖模式,在選單檢視一下函式呼叫流程圖
看到最左側函式輸出使用OutputDebugStringA
進行快速處理。(前面其實也可以直接採用快捷鍵F5模式直接快速處理,大神忽略飄過)
是系統字串處理函式。
到這裡,還有字串處理,異或演算法,分之比較。可以看看
測試輸出的十六進位制會不會是flag結果。
rev3rs3_ana1ys1s
迴圈每個位元組
異或0x09
==>7B6C7F3A7B7A3A5668676838707A387A
測試成功。
0x03
Ida使用工具自動靜態分析,在不執行的情況下繞過了崩潰,難度降低。
採用odbg那麼題目將會加大難度,其中有三個異常退出函式。
必須進行人工修復,否則一直處於無法繼續除錯狀態。
而且必須保持返回值不能被修改。
修復好執行開啟debugview直接接收顯示的答案。
後面具體就不細說了。類似。
下載地址