khallenge 2007に挑戦 Level1
2008 年 7 月 29 日 – 5:57 AM参照回数:12 回 | 参照回数:12 回 |ではF-Secure’s Reverse Engineering Challenge for ASSEMBLY 2007で配布されていたLevel1に挑戦します。まずはUPXなどのpackerで圧縮されていないか調べるためFSC_Level1.exeをPEiDでスキャンした。
運良く圧縮や暗号化はされていないようです。次にデバッガとして有名なOllyDbgでFSC_Level1.exeを開いた。FSC_Level1.exeでは有効なキーを入力しないとSorry, this key is not valid! と表示されるのでその部分を探してみることにした。
690010F3 |> \68 C0200069 PUSH FSC_Leve.690020C0 ; ASCII 0A,”Sorry, thi”
これくらいしか見つからないのでこれだろう。690010F3は690010D4のJNZから飛ぶようになっている。NOPで埋めてF9で実行してみよう。NOPで埋めているので690010F3に飛ぶことはない。適当にAAAAAAAとでも入力してエンターキーを押すと・・・
「Congratulations! Please send an e-mail to ThisIsAsm07REC@khallenge.com」と表示された。これは正解である。ちなみにLevel1の正しいキーは690010BFのコメント欄を見れば分かる。
690010BF |. 68 10330069 PUSH FSC_Leve.69003310 ; /s2 = “Asm07REC“
690010C4 |. 68 A0310069 PUSH FSC_Leve.690031A0 ; |s1 = “AAAAAAAAAAAAAAA”
690010C9 |. FF15 88200069 CALL NEAR DWORD PTR DS:[<&MSVCR71._stric>; \_stricmp
上の場合入力された文字(AAAAAAAAAAAAAAA)と正しいキー(Asm07REC)を比較している。690010D4のJNZはこの結果からsorryへ飛ぶか正解へ飛ぶかを判断している。
このようにLevel1は単純に文字列を比較しているだけなので非常に簡単です。デバッガの基本操作が分かっていれば答えを導くことが可能です。次回はLevel2に挑戦します。









