记一次院赛CTF的Crypto和Re题(入门)
目錄
- Crypto
- easy crypto
- bAcOn
- 敵軍密報
- Re
- easy re
- 跳到對的地方
- 簡單的XOR
- 多密碼表替換
Crypto
easy crypto
首先,這個可以很容易的看出這是一個base64加密一串密文,然后用base64解密后是
可以看出這就是flag的格式,所以一般就是凱撒加密了,但是因為有花括號下劃線之類的,所以是凱撒的一個變形rot13
bAcOn
這題是給了一個字符串baCoNBacoNbaconbACoNbacOnbAconBacOnbacoNbaconbacOnbACOnbACoN
可以看出給了我們的提示就是bacon,培根。
我這邊的話是改了一個網上找的python代碼,然后直接跑出來了。
因為培根密碼是有兩張密碼表,同時因為大小寫的話也有種情況,解出來應該是有四種(我這邊另外一種以小寫字母為b以大寫字母為a的顯示結果沒有放出來)
敵軍密報
題目展示就是這樣的,一個密文,以及一個文件可以下載。這邊這個文件用記事本打開稍微看了一下,有很多類似.pyt、__main__之類的東西,所以應該就是一個python編譯后的文件了,這邊推薦一個在線反編譯python的網站http://tools.bugscaner.com/decompyle/
可以發現的是有四層加密
第一層凱撒加密
第二層base32
第三層base16
第四層柵欄加密取2
這邊分享下我是如何分析這些代碼是如何加密的。
在得到這個python代碼后,每一種加密其實都可以單獨取出來,然后自己定義一些需要加密的字符,然后可以看到加密后的內容,然后可以判段,如果判斷不出來也沒關系。
只需要將他的程序逆著寫,然后將我們測試的加密后的內容,可以還原出加密前的字符,那么我們逆著的程序也就沒有寫錯了。這樣我們就能一步一步逆向出明文了。
Re
easy re
這一題是真的太沒有難度了
文本編輯器直接就搜出來了,當然更合適的做法肯定是用ida或od去搜
跳到對的地方
這一題的話,就是考察最基本的od動態調試的跳轉,使用中文搜索引擎,然后找到相應的內容,雙擊進去,就可以看到這句話所在的匯編代碼段了。然后一般是選擇push ebp去跳轉就能進去了。
啟動程序,這邊比較直接的就是直接跳進去,找一個能執行到的地方,改下匯編,讓他jmp到我們之前找到的地址。
當然,這樣可能會導致我們程序崩潰,但是我們只是要這個flag,只要讓他顯示出來就好了。
簡單的XOR
這題我當時是沒有做出來的,只要當時沒有找到真正的main函數,后來我發現一個找main函數的技巧。因為你直接運行那個需要你逆向的程序,是會出現一些信息的
輸入123,他提示我try again。于是可以在ida中搜索這個字符串,ALT+T。
然后我就找到了他真正的main函數,很容易有木有
找到了main函數,就可以看的出來,他就是要將我們輸入的東西,和v11到v34的值進行異或,最后的結果要等于v35就是”hang_dian_xin_gong_ctf!!”。 這邊需要的知識點就是,抑或的時候A ^ B=C那么A ^ C=B 、B ^ C=A就都成立了
于是寫了個腳本
就獲得了flag
多密碼表替換
找到main函數如下
我把它改寫成python代碼大概是這個意思
然后最后這個v14等于v10就是正確的
這樣我們就知道v14,于是上面的代碼中我們不知道的就只有需要我們輸入的buf[]。所以寫一個求buf的代碼
運行就能得到flag
總結
以上是生活随笔為你收集整理的记一次院赛CTF的Crypto和Re题(入门)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次院赛CTF的WEB题(入门级别)
- 下一篇: 记一次院赛CTF的Pwn和Misc题(入