CUIT CTF WriteUp 鬼子進村

2021-06-22 04:15:45 字數 1231 閱讀 7122

該題也出的比較有意思,64位的linux下的逆向,對於我這種逆向菜鳥第一次利用ida純靜態分析擼出題來,簡直是一大突破,下面就簡單分析下擼題過程。

首先執行看程式是個什麼東西,執行後發現需要輸入乙個檔名作為引數

正確的檔名通過ida定位後發現為「baidushadu」(這名字:好坑)

(ida的graph還真清晰呢)通過ida的graph顯示就可以很清楚地看到整個程式的流程,後面的操作就好辦多了

直接在graph裡面分析,當引數為「baidushadu」時,程式會分兩次讀取檔案內的資訊,兩次讀取的位元組不一樣

通過ida分析可以知道,第一次讀取10bytes,第二次為12bytes,並且通過ida反彙編處的**,可以判斷出,程式會將第一次讀取的字串與「enterkey 」進行匹配

繼續往下面看,發現程式會將第二次讀入的12bytes進行處理然後與「pqllauzduh」進行比對,經過分析具體處理過程如下

設第二次讀入的12bytes為字串str1,並令str2 = 「pqllauzduh」,那麼處理過程如下

for i in range(0, 5):

str1[i] = chr(ord(str[i]) - 4)

for i in range(5, 10):

str1[i] = chr(ord(str[i]) + 3)

然後寫個程式逆向處理可以得到str1為:tupperware

吸血鬼數字

吸血鬼數字是指位數為偶數的數字,可以由一對數字相乘而得到,而這對數字各包含乘積的一半位數的數字,其中從最初的數字中選取的數字可以任意排序。以兩個0結尾的數字是不允許的,例如,下列數字都是 吸血鬼 數字 1260 21 60 1827 21 87 2187 27 81 1994年柯利弗德 皮寇弗在us...

吸血鬼數字

吸血鬼數字指的是位數為偶數的數字,可以由一對數字相乘而得到,而這對數字則各包含乘積一般位數的數字,其中從最初的數字中選取的數字可以任意排序。以兩個0結尾的數字是不允許的,例如下面的吸血鬼數字 1260 21 x 60 1827 21 x 87 2187 27 x 81 下面的演算法,是找出4位數的所...

介面是什麼鬼?

二 為什麼要寫介面文件?1 專案開發過程中前後端工程師有乙個統一的檔案進行溝通交流開發 2 專案維護中或者專案人員更迭,方便後期人員檢視 維護 三 介面規範是什麼?首先介面分為四部分 方法 uri 請求引數 返回引數 1 方法 新增 post 修改 put 刪除 delete 獲取 get 2 ur...