日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

REVERSE-PRACTICE-BUUCTF-7

發(fā)布時(shí)間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 REVERSE-PRACTICE-BUUCTF-7 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

REVERSE-PRACTICE-BUUCTF-7

    • Youngter-drive
    • [ACTF新生賽2020]rome
    • [FlareOn4]login
    • [SUCTF2019]SignIn

Youngter-drive

exe程序,運(yùn)行后提示輸入flag,有upx殼,脫殼后ida分析
main函數(shù)中獲取輸入并拷貝,開(kāi)啟了兩個(gè)線程分別運(yùn)行StartAddress和sub_41119F兩個(gè)函數(shù),sub_411190函數(shù)驗(yàn)證輸入,輸入即為flag

分析StartAddress函數(shù),input_index的初始值為29,當(dāng)input_index的值大于-1時(shí),調(diào)用sub_41112C函數(shù),然后input_index值減1,休眠100ms

分析sub_41112C函數(shù)(反編譯該函數(shù)需要先平衡棧),首先驗(yàn)證輸入均為英文字母,然后對(duì)大小寫(xiě)區(qū)分,輸入的內(nèi)容的ascii碼減去38或96的結(jié)果,作為下標(biāo),在table數(shù)組里取值,再賦給原來(lái)的位置,即對(duì)flag內(nèi)容進(jìn)行變換,實(shí)際上是大小寫(xiě)轉(zhuǎn)換

回到main函數(shù),再分析sub_41119F函數(shù)
該函數(shù)先休眠100ms,再對(duì)input_index減1,沒(méi)有對(duì)flag內(nèi)容的變換

于是可以知道,input_index初始值為29,在第一個(gè)線程作為下標(biāo)對(duì)flag內(nèi)容變換后減1,在第二個(gè)線程直接減1,相當(dāng)于減2,值為27,再回到第一個(gè)線程……于是第一個(gè)線程僅在input_index為奇數(shù)時(shí)對(duì)flag內(nèi)容進(jìn)行變換
寫(xiě)逆腳本,由于input_index初始值為29,說(shuō)明flag的內(nèi)容長(zhǎng)度為30,但是在check(sub_411190)函數(shù)中,只比較了29個(gè)字符,試出來(lái)最后一位是“E”提交成功

[ACTF新生賽2020]rome

exe程序,運(yùn)行后提示輸入,輸入錯(cuò)誤直接退出,無(wú)殼,ida分析
主邏輯在func函數(shù)中
第一個(gè)紅框是對(duì)flag的內(nèi)容變換,分大小寫(xiě),原來(lái)是大寫(xiě)字母的變換后仍然是大寫(xiě)字母,原來(lái)是小寫(xiě)字母的變換后仍然是小寫(xiě)字母,如果flag的內(nèi)容中某個(gè)字符為其他字符,則不進(jìn)行變換
第二個(gè)紅框是循環(huán)比較,驗(yàn)證flag的內(nèi)容

寫(xiě)腳本即可得到flag

[FlareOn4]login

html文件,打開(kāi)后提示輸入flag并點(diǎn)擊驗(yàn)證,右鍵->查看網(wǎng)頁(yè)源代碼
邏輯清晰,獲取輸入,輸入變換,驗(yàn)證輸入
重要的是flag.replace部分的內(nèi)容
首先判斷flag內(nèi)容中某個(gè)字符是大寫(xiě)還是小寫(xiě)字母,如果是大寫(xiě)字母,>=左邊取90,如果是小寫(xiě)字母,>=左邊取122,再判斷該字符在26個(gè)字母表中的位置,如果該字符在字母表的前半部分,則替換為字母表后半部分對(duì)應(yīng)位置的字符,同理,如果該字符在字母表的后半部分,則替換為字母表后半部分對(duì)應(yīng)位置的字符,字符的大小寫(xiě)不變

寫(xiě)逆腳本即可得到flag

[SUCTF2019]SignIn

elf文件,無(wú)殼,ida分析
main函數(shù)邏輯清晰,先獲取輸入,然后調(diào)用sub_96A函數(shù)分割輸入,例如輸入字符串的第一個(gè)字符為“f”,其十六進(jìn)制ascii碼為0x66,經(jīng)過(guò)sub_96A函數(shù),結(jié)果存儲(chǔ)到v9,有v9[0]=0x6,v9[1]=0x6,然后v9數(shù)組轉(zhuǎn)成整形作為RSA的明文m,接下來(lái)就是RSA加密和驗(yàn)證

在線網(wǎng)站或者yafu分解模數(shù)n
寫(xiě)腳本即可得到flag

總結(jié)

以上是生活随笔為你收集整理的REVERSE-PRACTICE-BUUCTF-7的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。