0x01簡單的入門題目
題目地址鏈接:http://pan.baidu.com/s/1skMTE3b 密碼:pq1m
這里有writeup:http://blog.csdn.net/hhhparty/article/details/51762234
http://blog.csdn.net/calmegm/article/details/49009867
感謝兩位博主的指導(dǎo)
打開程序后需要輸入flag,顯然我們是不知道的,隨便輸個(gè)就是錯(cuò),太正常了。。。。。
用IDA打開,左側(cè)很多函數(shù),一個(gè)一個(gè)的F5,找到sub_4113A0這個(gè)函數(shù),發(fā)現(xiàn)里面有判斷輸入的代碼,
當(dāng)v3為假的時(shí)候會(huì)輸入right,有兩個(gè)判斷的地方,先看簡單的,就是當(dāng)v28!=49這幾個(gè),轉(zhuǎn)換ascii碼之后是1024},先留著看第二個(gè)判斷,發(fā)現(xiàn)是一個(gè)for循環(huán),當(dāng)v27數(shù)組里的所有元素等于byte_415768[*(&v4+i)]的時(shí)候v3為假,&v4表示v4的地址,那么就是從v4的地址一直到v4+17的地址.
而這里的定義顯然不是我們要的結(jié)果,于是我們回到未反編譯的代碼里找到byte_415768這個(gè)地址,
看到這里有個(gè)注釋;byte_415768[],創(chuàng)建了一個(gè)數(shù)組,下一行;DATA XREF:sub_4113A0+1E........打不出來了。。。。
就是說sub_4113A0+1E.....引用了byte_415768這個(gè)數(shù)組變量,地址為415769這里是存放的415768的元素(我理解為sub_4113A0對應(yīng)的地址加上偏移的1E3r就是加了個(gè)1,也就是415769這個(gè)地址),數(shù)組名字是aWfx......就是db之前的那一串,db后面是數(shù)值:wfxc{gdv}fwfctslydRddoepsckaNDMSRITPNsmr1_=2cdsef66246087138',0? ? ? 0表示結(jié)束,接下來就容易多了byte_415768[*(&v4+i)],i從0加到17,對應(yīng)的是v4 v5 v6 ......v21,對應(yīng)的值是1 4 14 。。。。。,放到415769里對應(yīng)的就是w c t.......(我也不理解為啥數(shù)組不是從0開始標(biāo)記,求大師傅們教),最后兩個(gè)flag拼接起來就完整了