ichirin2501's diary

いっちりーん。

hack or die

http://echofish.org/hackordie/


Lv15まであって、Lv1から順番にクリアしていく遊びサイト。
Javascriptネタが多いかも。


Lv12まで到達して、UserAgentをHack or Dieに変更してアクセスしたのはいいんだけど、
次にクラックするよう指示されたサイトにある管理者ページのBasic認証を5、6回試しただけで
IP弾かれたっぽくて遊べなくなったorz


メモしたのが、Lv11のswfしかないので、それだけ書く。それ以外は別に大したことない
SWFのバイナリ解析のページ http://doruby.kbmj.com/hal_on_rails/20100411/SWF_
実際のLv11のswfファイルのバイナリを見ると、CWFだったのでpythonでごにょごにょした。

#!/usr/bin/env python
import sys
import zlib

a = sys.stdin
b = a.read(8).replace('CWS','FWS',1)
sys.stdout.write(b)
sys.stdout.write(zlib.decompress(a.read()))

それから、Flareという解析ツール使った。生成されたソースコードを見ると、

(略)
frame 1 {
    function validate() {
      var v1 = _root;
      if (v1.password == (pass.reverse()).join('')) {
        getURL('?page=level22&pw=' + v1.password, '');
      } else {
        v1.gotoAndPlay(2);
      }
    }

    Stage.scaleMode = 'noScale';
    var pass = ['y', 's', 'a', 'e', 's', 'a', 't', 'o', 'n'];
    Key.addListener({'onKeyDown': function () {
      if (Key.getCode() == 13) {
        validate();
      }
    }});
    stop();
}
(略)

こんな感じで、Lv11くりあー。