BUUCTF reverse1
題目地址:https://buuoj.cn/challenges#reverse1
先用die和脫殼軟件測(cè)試一下查看到是64位的軟件

使用軟件獲得看看是干什么的

發(fā)現(xiàn)又是一個(gè)提交flag的軟件
打開ida64找關(guān)鍵字"flag"分析主函數(shù)

淺看了一下代碼,本以為找到這個(gè)Str2就是flag了結(jié)果測(cè)試不對(duì)


那就仔細(xì)再看一遍代碼
首先解析一下strncmp函數(shù)的意思
strncmp和strcmp區(qū)別在于strncmp是可以決定比較前多少個(gè)字符串
strncmp(str1,str2,2);這個(gè)就是比較兩個(gè)字符串的前兩位是否一樣

我們點(diǎn)擊一下這個(gè)我們輸入的Str1的值看看它是在哪加密了

發(fā)現(xiàn)Str1一路上并沒有進(jìn)行加密,那么就只能是Str2了。
這時(shí)我們發(fā)現(xiàn)Str2進(jìn)行了改變

那我們寫出加密代碼就可以得到flag了,因?yàn)樗羌用芎笕缓蠛臀覀儗懙膄lag對(duì)比,所以這個(gè)就不用逆向了。
這里的v3其實(shí)就是Str2的長(zhǎng)度,相當(dāng)于strcmp,一個(gè)小小的煙霧彈。


加密代碼:

成功拿到flag

標(biāo)簽: