Kaspersky Industrial CTF Quals 2017にHarekazeで参加し, 2450Pで32位でした.
そのうち僕は1問解いて300P入れました.
Write-upです.
[Crypto] Security home cameras (300)
secret_encrypted.png
というファイルが与えられますが, fileコマンドで得られる結果はdataだったのでどうやらpngファイルではないようです.
pngのマジックナンバーである 8950 4E47
と secret_encrypted.png
の 先頭4byteとでXORをとってみると FFFF FFFF
になったので, 全てのビットを反転させているのではないかと予想しました.
短いですが以下のコードでフラグが得られました.
import struct enc = open("secret_encrypted.png").read() fout = open("allBitReversed.png", 'wb') for ch in enc: bi = ord(ch)^0xff fout.write(struct.pack("B", bi)) #print(struct.pack("B", bi), end="")
300にしては易しめだったと思います.
他の問題は全くだったのでもっと精進したいです.