日更任務到第29天榕暇,我以為更新夠了100字蓬衡,然而沒有,于是 失敗了彤枢,從頭來過狰晚。
今天的題目的介紹: a simple reverse view ,一個簡單的逆向觀察缴啡,下載看看吧壁晒。
下載鏈接:http://ctf5.shiyanbar.com/reverse/rev50/rev50
1、用Ida打開业栅,發(fā)現(xiàn)是一個ELF文件(Linux可執(zhí)行)秒咐。
2谬晕、找到main函數(shù),使用F5轉(zhuǎn)為偽代碼:
3携取、選中十六進制攒钳,按r轉(zhuǎn)為字符。
4雷滋、本來src為整形存儲不撑,高位在高地址,低位在低地址晤斩,r轉(zhuǎn)換為字符后依然為高位轉(zhuǎn)換為高位字符焕檬,低位轉(zhuǎn)換為低位字符;但是memcpy轉(zhuǎn)換為字符串后澳泵,低地址在前实愚,高地址在后(dest聲明為字符串)
5、這樣已經(jīng)得到了flag為逆序的字符串mercedes兔辅,后面的查找dict有沒有當前密碼爆侣,點進去可以看見一個大的dict,里面有很多密碼幢妄。第一行為用戶名為123456
6兔仰、可以嘗試linux下運行。
(1)取權(quán)限蕉鸳,第一次運行
(2)使用gdb掛載參數(shù)
gdb -args ./rev50 123456
(3)顯示主函數(shù)
disas main
(4)給跳轉(zhuǎn)函數(shù)下斷點乎赴,然后r運行(因為該處會有比較)
(5)查看當前STACK可以發(fā)現(xiàn)flag值(我沒有看到STACK,等學會了看到補)潮尝。
小結(jié):今天是Ida一個字符串反向輸出的知識榕吼。