ざっとメモ

ksnctf.sweetduet.info

これに挑戦。
問題文が表示され、その答えを入力していく感じ。
Ollydbgを使って不正解を弾く部分にブレイクポイントをセットして引っ掛かったら書き換えるのを繰り返し最後まで到達。最後の問はWhat is the flag?というもの。答えが入っているメモリのアドレスと自分が入力したものが入っているメモリのアドレスを特定。答えについては暗号化がなされておりそのまま読み取る訳にはいかなかった。自分が入力したものについても暗号化されていた。位置に依存する換字暗号?みたいな感じ。暗号化のアルゴリズムを読み取るのはめんどくさかったのでA〜Z,a〜z,0〜9をそれぞれ大量に入力欄に打ち込み、暗号化後の文字列が納められているメモリを参照することで対応表を得る。あとはその対応表を元に暗号化されているflagを解読するだけ。

ksnctf.sweetduet.info


これにも挑戦。
プロパティを見ると中間言語と書いてあったので、ILspyを用いて逆コンパイル。フラグを処理、表示するための部分だけをスクリプトで再現。

ksnctf.sweetduet.info

さらにこれにも挑戦。Ollydbgを使ってそれっぽい命令を書き換えると画面の左上にフラグが表示された。