tkbctf2 skillanalyzer write-up
まともに解けたのがこれだけだったので、コンテスト中にとった手順を詳しめに書く
96d4e828f611bdd4e3d2bc45bb9e8a40d59763bb というファイルが落ちてくる
Bzで見てみるとMZスタブ _CorExeMainがあるので windowsの.Netだと分かる
exeを実行してみる
分からない ILを読む(ILspyだとC#では正しく表示されない)
akagiさんmgmgくらいしかまともに分からない
読みやすくするために visual studioでデバッグする
開発者コマンドプロンプトで
ildasm 96d4e828f611bdd4e3d2bc45bb9e8a40d59763bb.exe /OUT=sa.il
ilasm sa.il /DEBUG
と実行すると、デバッグ情報付きのsa.exeが作成でき、
これを visual stdio > 適当なcsharpのプロジェクトの作成 > プロパティ > デバッグ > 外部プログラムの開始
F11のステップ実行で実行すると
読みにくいけどイミディエイトウィンドウでちょっと遊べる様になる、後ブレークポイントが使えて嬉しい
ローカル変数はV_0,V_1,V_2で番号が振られていて、引数はA_0,A_1と振られており、それぞれイミディエイトウィンドウで使える stackの見方は分からなかったので、知ってる人教えて下さい
"S?[1-7]*" が入力として使えるらしい という事が読んでわかる
しかし暗号の解き方は分からない 文字数と横幅は一致してるので、対応させると解ける?と考えた
Sは先頭しか置けないため "S1234567" に対応している?
先頭から順番に
2 246 157 36 47 6 137 4 3 1 3 S157
逆順にすると
S157 3 1 3 4 137 6 47 36 157 246 2
なんか出た 7th danってなんだろう と思ったら音ゲーらしい
You're the 7th dan player!
が答え