CTF題解一 逆向defcamp

實驗吧題目鏈接:http://www.shiyanbar.com/ctf/2020

用IDA反編譯main函數,可以看到下面代碼:

這裏寫圖片描述

這一部分是在建立無頭結點的鏈表,鏈表中一共10個元素。每個元素16字節大小,前4個字節存儲1到10的序號。從第5個字節開始存儲序號值+109。

鏈表採用前插法,qword_601080始終指向鏈表的頭。
這裏寫圖片描述

對於輸入s,如果sub_40074D返回值爲0,則正確。

這裏寫圖片描述
觀察函數sub_40074D,當v6和v9從第0到第5全部相等,返回值爲0。

v9從第0到第5分別爲:5 2 7 2 5 6

所以最後v6必須也爲 5 2 7 2 5 6
這裏寫圖片描述

觀察上面的代碼,可以看出v6初始值爲0,在while循環結束後被v4賦值。而v4每輪初始值爲0,只有當輸入的字母與鏈表中序號值+109相等時,纔會被賦值爲序號值。

由於每輪循環v4應分別等於5 2 7 2 5 6

所以輸入字母的ASCII碼應爲114 111 116 111 114 115

即rotors

提交flag時注意沒有冒號

發佈了48 篇原創文章 · 獲贊 13 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章