0x00 FindKey
這題還蠻有意思的,拿到文件之後,有一個小坑,就是要判斷它是什麼類型的文件,需要怎麼轉換。拿到ubuntu裏面,file一下查看文件類型(這個方法是從大佬的博客上看到的:
轉載自:https://blog.csdn.net/xiangshangbashaonian/article/details/82598211),然後推測是pyc反編譯。
(這裏插入一個關於pyc的知識:pyc 是由py文件經過編譯後二進制文件,py文件變成pyc文件後,加載的速度有所提高,而且pyc是一種跨平臺的字節碼,是由python 的虛擬機來執行的。)
然後用cmd命令提示符反編譯該文件,得到一段python代碼
然後簡單修改一下,寫個腳本,得到flag:
0x01 Classical CrackMe
這種題第一次做,放進ida裏什麼都沒...於是借鑑了一下大佬的博客,拖進PEID發現是用C#編寫的,於是拖進.NET Reflector查看,這個軟件我也是第一次用...所以借鑑了一下大佬的博客,纔算摸透一些。但其實這個題本身的思路不難,就是一個base64解密的過程。這裏我就不寫出來了,可以借鑑一下大佬的wp,轉載鏈接:https://blog.csdn.net/xiangshangbashaonian/article/details/82561920
網上搜了一些關於reflector的資料:Reflector支持四種語言:IL,VB.net,C#,Delphi;而IDA是可以把程序反編譯成c語言的軟件(怪不得放進ida裏那麼奇怪......)
0x02 Smali
這道題還學到了蠻多新知識的,首先拿到一個smali文件,搜一下有關smail文件的知識,指路鏈接:https://blog.csdn.net/lixpjita39/article/details/75193833
然後用smalijava2UI這個軟件吧smail文件轉換爲Java文件,(其實硬看也可以看懂大致的意思)指路鏈接:https://blog.csdn.net/SHENGLI_509/article/details/73520571
看了一下,str2用base64解密當作key,然後AES128解密得到flag,學着寫了一個python寫了一個腳本:(第一次寫AES解密的腳本)
期間還搜了一下pycharm怎麼導入crypto包,還學到了蠻多知識吧,最後flag:PCTF{Sm4liRiver}