BugkuCTF-Reverse题love
下載附件
先查殼
發現沒加殼
再拖進 IDA 分析
按shift+F12查找字符串,可以看到如下 Base64 加密的痕跡,可判斷基本是一個反解 flag 的題目
找到主函數按F5查看偽代碼,如下:
可以發現這樣的一個關鍵函數,也就是會將 Destination 與 Str2 進行比較,如果正確為right
分析可知:將輸入的串Str1先進行base64加密 再與串Str2比較 若相等 則輸出"right flag"
由此,我們只需將Str2也就是"e3nifIH9b_C@n@dH"進行解密即可
將str2和Dest相比較,而Dest為取V4的前長度0x28u的字符
V4的值來自sub_4110BE
Sub_4110BE取自sub_411AB0
Dest由v4而來,v4會通過base64加密,然后對Dest做了第2次的加密,v11為Dest的長度
而 Destination 是通過對輸入的內容進行一連串變化之后得到的,str2是給出的
首先輸入的東西通過 sub_4110BE 這個函數進行加密,得到初步的結果,跟進看看這個函數
點開加密函數:
關鍵語句就在這里 我們可以看到是算輸入的字符按三個一組能分為幾組 然后將這個數字乘上4
我們很容易想到是base64加密 因為和base64加密的過程太像了
看一下它的變換數組:
完整函數:
關鍵部分:
aAbcdefghijklmn 即:
可見輸入內容先經過 sub_4110BE 這個函數進行 base64 加密,然后各位加上下標本身,再與 str2 比較
而str2的值為 “e3nifIH9b_C@n@dH”
編寫解密腳本
得到flag
總結
以上是生活随笔為你收集整理的BugkuCTF-Reverse题love的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 线程条件变量 Condit
- 下一篇: Python return逻辑判断表达式