部活
2014/11/15
We Chall — "Training: ASCII"
beko
こんにちは、関根です。
今回はexploitを書く大切さを知ってもらいたいと思います。
なぜなら、CTFなどの大会では問題の答えがわかるだけで点数がもらえるので良いのですが、それでは次回にまた似たような問題を解くときに、一から始めたいといけません。そこで、答えを導くためのexploitを書いておけば、より時間を短縮して、問題を解くことが可能となります。
この問題は数字をASCIIコードに変換し、メッセージを出すことができれば、答えがわかるものです。
自分が初めてこの問題を解いた時にはASCIIコード表を使い手作業で1つの数値を1つの文字に変換しました。
84 = T
104 = h
101 = e
のように変換していけばこの問題は解けます。
しかし、これでは、変換する文字列が多くなればなるほど時間がかかってしまい、大変です。なので、exploitを書いてみましょう。
このように書けばすべての数値が変換されて、メッセージ出力されるはずです。
実際に実行してみると、
となりこれにより答えは”agonnrmgcbld”だと思われます。
無事正解できました。
この問題は、数値をASCIIコードに変換するだけのとても、簡単なものですが、exploitを書くことによって次に同じような問題にあたってもこれを使うだけで、大幅に時間を短縮することができます。
今回の自分のプログラムでは、10進数のデータをプログラムに書いていたので、これを別のファイルから読み取るようにしてプログラムに変更を加えず、特定のファイルに10進数のデータを書いて変換するようにすれば、もっと良いプログラムになると思います。
これがあれば問題が変わってもすぐに答えがわかりますね。
問題
76, 101, 116, 39, 115, 32, 119, 114, 105, 116, 101, 32, 116, 104, 101, 32, 101, 120, 112, 108, 111, 105, 116, 46
このブログの更新日は毎週土曜日です。
次回もお楽しみに!