題目資訊
Category: Crypto + Reverse
Point: 150
Description:
This crypto algorithm uses a huge key and it’s implementation is not so trivial to reverse engineer. Isn’t it wonderful?
encrypt.py
flag.enc
pycryptography.so
解法
先看看encrypt.py:
看到160 bits security
得知key是20bytes。
再來用IDA pro看了一下pycryptography.so
,嗯…放棄Orz
直接嘗試使用pycryptography的encrypt看看:
依結果來看,encrypt()
就只是在做xor
而已。
直接把flag.enc
丟xortool
看看:
|
|
可以看到解出來的文字有些是正確的,有些則像是亂碼或不可視字元,顯然解密用的key: d1 ff 63 f7 c8 75 d8 c4 1a 84 ca 24 5b 66 c 1f c6 e2 cc ea
是有些問題的。不過只要用一些已知的明文字詞來做修正就行了,譬如開頭為VolgaCTF{
,還有後面的網址應該有https
跟wordpress
。
我用xortool-xor
把flag.enc
檔案跟key做xor運算來解密,經過幾次xor測試後,最後得到修正後的key為 94 ff 63 a3 8d 75 d8 c4 1a c1 ca 24 1e 66 0c 1f c6 e2 cc ea
|
|
解出來的plaintext:
Flag: VolgaCTF{N@me_is_Pad_Many_Times_P@d_Mi$$_me?}