i_knew_it

ファイル i_knew_it.png が与えられ、暗号方式の名称を答えることが求められた。

i_knew_it.png は、アセンブリコードをbasic blockで分割し、ジャンプ先を矢印で表した図であり、 2個の関数が描かれていた。

そこで、まずこれらの関数をC言語風に書き下した。

A file i_knew_it.png was given and I was asked to answer the name of the cipher system.

i_knew_it.png has assembly codes separated in basic blocks and arrows are used to express the destinations of jumps. There were two functions in the image.

Seeing this, I transcripted these functions like C.

transcript-sub_1155.c

transcript-sub_11BE.c

さらに、これらの意味を考え、わかりやすく整理した。

Then, I clearly organized the result with thinking the meanings.

transcript-sub_1155-2.c

transcript-sub_11BE-2.c

sub_11BE関数は何らかのデータを生成して入力の配列にXORしているようだったので、ストリーム暗号であると推測できた。

アタリをつけて調べたところ、ARCFOURのアルゴリズムが書き下しの結果に近いようだった。

I saw the function sub_11BE generating some data ane taking exclusive-or with an input array. So I guessed that this is a stream cipher.

I researched with some guessing, and found that the algorithm of ARCFOUR is like thie result of transcription.

安全でないストリーム暗号ARCFOUR - vanaestea’s blog

しかし、flag{ARCFOUR} はIncorrectとなった。
flag{RC4} を試すと、Correctになった。

However, submitting flag{ARCFOUR} resulted in Incorrect.
Then I tried flag{RC4}, being judged as Correct.

flag{RC4}

setodaNote CTF