該題也出的比較有意思,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...