18.10.4 實驗吧----whatamitoyou
阿新 • • 發佈:2018-12-13
提示是你會唱歌麼,一臉懵逼
開啟可以看到是一個elf檔案,我自己轉到了虛擬機器裡面去下載
下載下來後想直接執行一下,說我許可權不夠,也不明白是為什麼,直接chmod +x
拖進IDA看一下吧,靠字串定位(Your password is tjctf{)
也不知道是不是彩蛋,我們看看歌詞吧
Do you think I don't understand? 是的,我的確沒看懂………………
看看還有沒有別的歌詞,看到了you are my best friends in the world,搜一下是什麼破歌吧
就是題目,歌詞是亂序的
直接拖到最底下,分析一下吧,如下圖
我喜歡從下往上倒著看,先是一個while迴圈,知道v283的值就可以解出來了
我們可以看到v283的初始值是0,如果不參與上面的改變,while迴圈就執行不了
然後看一下彙編程式碼
我們可以看到在401890程式將第一句歌詞的地址存放到了[rbp-8]處,其實挺好定位的,你在偽C程式碼的最後一句賦值處按下TAB鍵就可以幫你定位了,然後跟著條約語句跳轉,如下,你要是是在不信,你搜歌詞去(xiao)
其實我的彙編也不是很熟練,但是不難看出程式將一個字元賦值給了[rbp-11h],判斷是否為0,然後再跳轉
如上就是到了換個詞的地方,其實就是為了求出rdx,帶著大家算一個吧
第二句歌詞是 I should've told you,地址在400FCB
0x2290+rdx*8=0x23a0
然後rdx+65-32逆回去等於'C',所以第一個輸入的是C
以此類推得到輸入的字元需要輸入的字元是CBDABCADBCCABBABBABACBCCABDADBABABB(其實還OK,每次判斷就是4句,對應著ABCD)
這個軟體你可以理解為64位下的OD
帶著引數執行就好了