buuctf—[2019紅帽杯]easyRE個人感悟與總結


被出題人干翻了,可惡(悲

 

收獲:

1.for循環里放在括號里第二個的函數一般是strlen(一般

 

 我眼瞅着這個函數,和我平常敲c++代碼的時候經常寫的strlen很像,代入進去發現似乎確實是(v48是char數組)。

2.放在memset后面且相隔很近的函數很可能是輸入函數(scanf之類)

 

這道題和我之前做的幾道題都是,memset后面放個輸入的函數,而我每次都發現不了在哪兒輸入的(悲,還是記錄下來比較好

3.我被耍力(

做的前幾道題吃了不了解編碼方式而硬磕代碼的虧,現在對base64,md5,sha之類的加密方法十分敏感。本題查看字符串后很明顯能看到

 

 

“!這是base64!”我興奮的想到

 

 

順着他的代碼來,應該是將off_6CC090中的值瘋狂解碼就可以出flag

。。。。

原本應該是這樣(

 

 

 把結果繼續解碼,連續幾次后

 

 

十分開心,然后在網頁輸入該網址。。

 

 

我一臉蒙蔽的往下看,直到看到這兒

 

 

 哦,我被騙了啊(草

出題人在哪,我要好好感謝他(bushi

真正的解出flag的函數在那一大串base64加密的數的下面。。。

4.獲得了一些思路

 

 前面第一次輸入,將結果輸出發現flag的前四位是“flag”(廢話),這里又能看到v5低位和6cc0a0異或是“f”,高位和相當於6cc0a0【3】的異或是“g”,又因為前面得出前四位是“flag”,由此可以合情推理下方的for循環里的異或得出的結果應該就是flag。(感覺很奇妙,不過確實是這樣)

 

簡單寫個代碼就可以推出flag。本題難處主要在於那個位置奇妙的得出flag的函數,其他都還好。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM