Very easyをやってみる

Crackmes.deに登録されているcrackmeの難易度は、

  • 1 - Very easy, for newbies
  • 2 - Needs a little brain (or luck)
  • 3 - Getting harder
  • 4 - Needs special knowledge
  • 5 - Professional problem to solve
  • 6 - Hard, for very professionals only
  • 7 - Very hard
  • 8 - *VERY VERY* hard
  • 9 - You can't solve this yourself :)

この九段階に分かれている。
ではまず、Very easyからやってみよう。

今回挑戦するのはflipflopさんの「flipflop's dailycracking」。
さっそく実行すると、「pass:」をという文字が表示されて、入力待ちになっている。

以下は、試しにhogeを入力してみたの図。

hogeの入力に対して、wrongが表示された。

まったくノーヒントに見えるのだが、ここからリバースエンジニアリングで答えを探すということになる。
以下、ネタばれ。


OllyDbgなどのデバッガを使ってステップ実行していく。
するとバーチャルアドレス「00401374」のCALLから呼ばれる関数(004013CD)で、入力された文字列を比較していることが分かる。
この関数では「Crack」の文字と、システム時刻の年月日から「日」を連結している。
これが答えだ。


答え合わせの図。
今日は十日なので、「Crack10」が答えとなる。

さすがにVery easyでは簡単な問題というところ。
自分なりの答えが出たところで、他の人の解答と見比べてみる。
Solutionsから他の人の解答がダウンロードできる。

ちょっと説明を端折りすぎかな。
ツールの紹介や使い方は他のサイトにゆずってしまいたい。