SlideShare a Scribd company logo
素晴らしきメガデモの世界

    SECCON 実行委員
   松田和樹 (eagle0wl)

    Twitter : eagle0wl
        2012/11/03
メガ
デモ
メガデモってなんぞ?
●   リアルタイムに美しいグラフィックや音楽を生成・表示する
    プログラム




    1
            fr-041:debris. by farbrausch
    基本的に実行ファイルとして動作する
    →3Dベンチマークソフトのような認識でおk
デモシーンって?
●   1980年代ごろに北欧で発生したクラックトロ(cracktro)
    が発祥といわれており、現在も続いている文化、コミュニ
    ティのこと




            Settler 7 Cracktro by Razor1911
クラックトロってなんなのさ?
●   ゲームソフトのクレジット表記を
    自分の署名に書き換えたもの
     → こちらで言うところの Kracking
●   この『署名』は、徐々に高度なプログラミング技術や独自の表
    現技法で”魅せる”方向に発展
    → イントロ(後述)につながる
●   この『署名』を友人間で”見せる”行為は、やがてコミュニティ
    を形成するようになる
    → デモパーティに発展

            スタート地点はグレーだったが、

               やがて独自の文化を形成
デモの種類(の一部)
●   デモ(Demo)
    リアルタイムに美しいグラフィックや音楽を生成・表示するプログラム。
    それ以外に特に制限はない

●   メガデモ(Megademo)
    ファイルサイズが1MB以内のものを指すことがある
    (日本では総称として”メガデモ”という言葉が使われている)

●   イントロ(Intro)
    上記デモ(Demo)にファイルサイズの制約を加えたもの
     64KB, 4KB, 1KB, 256B, 128B
     etc...

                    今回は
          セキュリティクラスタによく刺さる(と思う)
             イントロ(Intro)を紹介します
Eleveted
(4K Intro)
Elevated (4K Intro)
●   美しい景観をわずか4096バイトの実行ファイルで表現している。
    それも音楽つき。
●   国内ニュースサイトでも話題になった
     




             Elevated by RGBA and TBC
『Elevated』を実際に観てみよう!

                4K Intro
   本当はここでプログラムを実行するべきですが、
  ビデオキャプチャされたYoutubeの動画を再生します。

          私のノートPCでは悲鳴が上がります。
            ファイルサイズは極小なのに
         リアルタイムでレンダリングしているので
          高いマシンスペックが要求されます。


      http://www.pouet.net/prod.php?which=52938
Puls
B0   13   53   BA   C8   03   CD   10   88   D8   84   CB   7A   05   F6   E8
C1   E8   07   F6   EB   88   E0   EE   B2   C9   E2   EC   B1   03   4B   75
E9   68   CE   9F   07   B7   56   DB   E3   83   00   58   DF   00   D9   FB
DC   F9   DF   00   D8   0C   D9   FE   DE   0C   66   5A   06   55   60   89
1F   8B   05   DF   05   F7   E8   29   17   4F   7B   F5   DF   07   66   81
05   CD   CC   00   00   D8   CC   D9   C0   D8   CE   D9   CA   D8   CD   DC
EA   D8   CE   DE   C1   D9   CA   47   7B   EB   4F   6B   10   0A   DF   19
89   17   02   34   00   FB   73   F6   99   B4   E6   11   D9   E8   15   00
28   CC   D5   04   04   46   89   45   FC   61   45   26   88   02   75   AE
E4   60   48   75   92   B3   00   8B   29   D3   FD   31   D5   01   2F   00
FB   73   F4   D6   DF   10   51   D3   E9   80   C5   25   8B   10   F7   18
69   E8   00   80   2B   29   79   02   F7   DD   D1   ED   01   EA   89   2F
00   FB   73   EC   39   CA   40   72   25   B3   02   7A   DF   2B   10   40
2B   10   80   EE   60   6B   D2   0D   8B   14   70   02   40   99   2B   2F
79   02   F7   DD   01   EA   8B   2F   00   FB   73   F2   39   CA   59   19
D2   F5   18   D1   10   D1   80   F9   06   73   04   00   D4   75   96   C3
Puls (256B Intro)
●   もはや魔術の世界
    256バイトのプログラムで絵が動いている!
     ソースコード(アセンブリ言語)が公開されてるよ! (笑)




                 Puls by Rrrola
『Puls』を実際に観てみよう!

             256 Intro
 本当はここでプログラムを実行するべきですが、
ビデオキャプチャされたYoutubeの動画を再生します。



    http://www.pouet.net/prod.php?which=53816
日本における
デモシーン
日本におけるデモシーン
●   日本には欧州のようなデモシーンはなかった
●   2chねらーの有志が立ち上げたオンラインデモパーティ
    『2chParty』でメガデモが発表される(2001~2009)
●   これらは demoscene.jp などで確認できる
Tokyo Demo Fest
●   2011年、2chの『メガデモを語る』スレの有志により
    オフラインイベントが開催される
●   日本のデモシーンにおける大きな一歩




                     http://tokyo-demo-fest.jpn.org/2011/
欧州に斬りこんだ和製イントロ
●   Function 2012(ハンガリーのデモパーティ)




                              http://2012.function.hu/
欧州に斬りこんだ和製イントロ
●   Function 2012(ハンガリーのデモパーティ)
    日本人によるイントロ(64K Intro)が出展される
●   64キロバイトにジャパニメーション&歌唱合成(VOCALID的なもの)
    を盛り込んだ、欧州ではまず見られないスタイル




             candy ~TDF2013 Invitation~
candy TDF2013 Invitation (64K Intro)

●   Intro部門で優勝
    →日本人によるコンポ優勝は快挙




            candy ~TDF2013 Invitation~
『candy TDF2013 Invitation』を
     実際に見てみよう!

               64K Intro
   本当はここでプログラムを実行するべきですが、
  ビデオキャプチャされたYoutubeの動画を再生します。

          私のノートPCでは悲鳴が上がります。
            ファイルサイズは極小なのに
         リアルタイムでレンダリングしているので
          高いマシンスペックが要求されます。


      http://www.pouet.net/prod.php?which=60278
イントロを
支える技術
イントロを支える技術
●   パッカー
    実行ファイルを実行可能なまま圧縮するツール
●   期待する効果
    実行ファイルサイズの縮小(packer)
     →パッカー本来の用途
      イントロとしては最重要課題


    プログラム解析の妨害(protector)
     →セキュリティクラスタ的にはこっち
俺らにとってのパッカーって何?
●   セキュリティクラスタ的思考で思いついたpacker
    …というよりprotector

    Armadillo, ASPack, ASProtect, Dropper, FSG, Mew,
    NeoLite, PE Compact, PELock, SVK Protector, tElock,
    Themida, UPX, Yoda's Protector …
     (古いとか言うな)

    商用・非商用含め100種類オーバーどころではないので打ち止め


●   モノがモノなので、cracktroが同梱されていたりくっついてい
    たりする
イントロに好まれるパッカー
●   すでにデファクトスタンダードがある
    ●   4KB : Crinkler
    ●   64KB : kkrunchy
        –   kkrunchyはコンポでも使用が推奨されている
kkrunchy
●   無償で入手可能
    GitHubでも公開されてます
データ圧縮至上主義
●   kkrunchy
    ●   コードセクション圧縮みたいなヤワなものではない
    ●   x86コードを圧縮が効くように事前に変換
    ●   もちろんx86コードに特化されている


●   さらに小さくするためにやりすぎた人たち
    ●   リンカを作る(Crinkler)
    ●   コンパイラから作る(IL4 Lisp-ahtaval)


                                       参考:Executable Packerの構造と解釈 by 301
                   http://tokyo-demo-fest.jpn.org/2011/seminar/2011/301-siep.pdf
求めすぎることによる弊害
●   MZ / PE ヘッダおかしくね?
    少しでも小さくするために、ヘッダ領域まで切り詰めるパッカーがある

    ●   通常あり得ないヘッダなので、これだけでマルウェア(パッカー)扱い
        されてしまうことは多々ある(こればかりはkkrunchyだけの問題ではない)
VirusTotalの反応
●   全く無害な helloworld.exe を kkrunchy でパックして
    VirusTotal でチェックしてみた
VirusTotalの反応
●   結果 13/44   (2012/11/07時点のもの)
    有名どころは反応しないが、それでもトータルとしては多い
TokyoDemoFest
     2013
Tokyo Demo Fest 2013
●   2013年02月09日~10日 東京(飯田橋)で開催
    日本唯一のデモパーティ




                        http://tokyo-demo-fest.jpn.org/
Tokyo Demo Fest 2013
●   candyの作者 q さんがメインオーガナイザを務めています。
    これは頼りになる(TDFウェブサイトより)ね!




                        http://tokyo-demo-fest.jpn.org/
Tokyo Demo Fest 2013
●   今回のスライドも氏に煽られて作成しました。
Tokyo Demo Fest 2013
●   今回のスライドも氏に煽られて作成しました。
    嘘です。candyの使用承諾&LTのアドバイスもいただきましたm(_ _)m
Tokyo Demo Fest 2013

    少しでも興味を持ったなら、
       ぜひ行ってみよう!
        じつは自分も初参加(になる予定)




                    http://tokyo-demo-fest.jpn.org/
pouet.net
www.pouet.net
●   メガデモの総本山
    ほとんどのデモはここから入手可能
MoleMan 2
Demoscene - The Art of the Algorithms
Moleman 2
Demoscene - The Art of the Algorithms

●   ハンガリーで制作されたデモシーンのドキュメンタリー(90分)
    なんと日本語字幕付きで(正規に)公開されている
Moleman 2
Demoscene - The Art of the Algorithms

●   ハンガリーで制作されたデモシーンのドキュメンタリー(90分)
    なんと日本語字幕付きで(正規に)公開されている

●   デモシーンを知り尽くした構成・演出でとにかく必見
    www.youtube.com/watch?v=iRkZcTg1JWU
Any Questions?

More Related Content

素晴らしきメガデモの世界

  • 1. 素晴らしきメガデモの世界 SECCON 実行委員 松田和樹 (eagle0wl) Twitter : eagle0wl 2012/11/03
  • 3. メガデモってなんぞ? ● リアルタイムに美しいグラフィックや音楽を生成・表示する プログラム 1 fr-041:debris. by farbrausch 基本的に実行ファイルとして動作する →3Dベンチマークソフトのような認識でおk
  • 4. デモシーンって? ● 1980年代ごろに北欧で発生したクラックトロ(cracktro) が発祥といわれており、現在も続いている文化、コミュニ ティのこと Settler 7 Cracktro by Razor1911
  • 5. クラックトロってなんなのさ? ● ゲームソフトのクレジット表記を 自分の署名に書き換えたもの  → こちらで言うところの Kracking ● この『署名』は、徐々に高度なプログラミング技術や独自の表 現技法で”魅せる”方向に発展 → イントロ(後述)につながる ● この『署名』を友人間で”見せる”行為は、やがてコミュニティ を形成するようになる → デモパーティに発展 スタート地点はグレーだったが、 やがて独自の文化を形成
  • 6. デモの種類(の一部) ● デモ(Demo) リアルタイムに美しいグラフィックや音楽を生成・表示するプログラム。 それ以外に特に制限はない ● メガデモ(Megademo) ファイルサイズが1MB以内のものを指すことがある (日本では総称として”メガデモ”という言葉が使われている) ● イントロ(Intro) 上記デモ(Demo)にファイルサイズの制約を加えたもの  64KB, 4KB, 1KB, 256B, 128B  etc... 今回は セキュリティクラスタによく刺さる(と思う) イントロ(Intro)を紹介します
  • 8. Elevated (4K Intro) ● 美しい景観をわずか4096バイトの実行ファイルで表現している。 それも音楽つき。 ● 国内ニュースサイトでも話題になった   Elevated by RGBA and TBC
  • 9. 『Elevated』を実際に観てみよう! 4K Intro 本当はここでプログラムを実行するべきですが、 ビデオキャプチャされたYoutubeの動画を再生します。 私のノートPCでは悲鳴が上がります。 ファイルサイズは極小なのに リアルタイムでレンダリングしているので 高いマシンスペックが要求されます。 http://www.pouet.net/prod.php?which=52938
  • 10. Puls
  • 11. B0 13 53 BA C8 03 CD 10 88 D8 84 CB 7A 05 F6 E8 C1 E8 07 F6 EB 88 E0 EE B2 C9 E2 EC B1 03 4B 75 E9 68 CE 9F 07 B7 56 DB E3 83 00 58 DF 00 D9 FB DC F9 DF 00 D8 0C D9 FE DE 0C 66 5A 06 55 60 89 1F 8B 05 DF 05 F7 E8 29 17 4F 7B F5 DF 07 66 81 05 CD CC 00 00 D8 CC D9 C0 D8 CE D9 CA D8 CD DC EA D8 CE DE C1 D9 CA 47 7B EB 4F 6B 10 0A DF 19 89 17 02 34 00 FB 73 F6 99 B4 E6 11 D9 E8 15 00 28 CC D5 04 04 46 89 45 FC 61 45 26 88 02 75 AE E4 60 48 75 92 B3 00 8B 29 D3 FD 31 D5 01 2F 00 FB 73 F4 D6 DF 10 51 D3 E9 80 C5 25 8B 10 F7 18 69 E8 00 80 2B 29 79 02 F7 DD D1 ED 01 EA 89 2F 00 FB 73 EC 39 CA 40 72 25 B3 02 7A DF 2B 10 40 2B 10 80 EE 60 6B D2 0D 8B 14 70 02 40 99 2B 2F 79 02 F7 DD 01 EA 8B 2F 00 FB 73 F2 39 CA 59 19 D2 F5 18 D1 10 D1 80 F9 06 73 04 00 D4 75 96 C3
  • 12. Puls (256B Intro) ● もはや魔術の世界 256バイトのプログラムで絵が動いている! ソースコード(アセンブリ言語)が公開されてるよ! (笑) Puls by Rrrola
  • 13. 『Puls』を実際に観てみよう! 256 Intro 本当はここでプログラムを実行するべきですが、 ビデオキャプチャされたYoutubeの動画を再生します。 http://www.pouet.net/prod.php?which=53816
  • 15. 日本におけるデモシーン ● 日本には欧州のようなデモシーンはなかった ● 2chねらーの有志が立ち上げたオンラインデモパーティ 『2chParty』でメガデモが発表される(2001~2009) ● これらは demoscene.jp などで確認できる
  • 16. Tokyo Demo Fest ● 2011年、2chの『メガデモを語る』スレの有志により オフラインイベントが開催される ● 日本のデモシーンにおける大きな一歩 http://tokyo-demo-fest.jpn.org/2011/
  • 17. 欧州に斬りこんだ和製イントロ ● Function 2012(ハンガリーのデモパーティ) http://2012.function.hu/
  • 18. 欧州に斬りこんだ和製イントロ ● Function 2012(ハンガリーのデモパーティ) 日本人によるイントロ(64K Intro)が出展される ● 64キロバイトにジャパニメーション&歌唱合成(VOCALID的なもの) を盛り込んだ、欧州ではまず見られないスタイル candy ~TDF2013 Invitation~
  • 19. candy TDF2013 Invitation (64K Intro) ● Intro部門で優勝 →日本人によるコンポ優勝は快挙 candy ~TDF2013 Invitation~
  • 20. 『candy TDF2013 Invitation』を 実際に見てみよう! 64K Intro 本当はここでプログラムを実行するべきですが、 ビデオキャプチャされたYoutubeの動画を再生します。 私のノートPCでは悲鳴が上がります。 ファイルサイズは極小なのに リアルタイムでレンダリングしているので 高いマシンスペックが要求されます。 http://www.pouet.net/prod.php?which=60278
  • 22. イントロを支える技術 ● パッカー 実行ファイルを実行可能なまま圧縮するツール ● 期待する効果 実行ファイルサイズの縮小(packer)  →パッカー本来の用途   イントロとしては最重要課題 プログラム解析の妨害(protector)  →セキュリティクラスタ的にはこっち
  • 23. 俺らにとってのパッカーって何? ● セキュリティクラスタ的思考で思いついたpacker …というよりprotector Armadillo, ASPack, ASProtect, Dropper, FSG, Mew, NeoLite, PE Compact, PELock, SVK Protector, tElock, Themida, UPX, Yoda's Protector …  (古いとか言うな) 商用・非商用含め100種類オーバーどころではないので打ち止め ● モノがモノなので、cracktroが同梱されていたりくっついてい たりする
  • 24. イントロに好まれるパッカー ● すでにデファクトスタンダードがある ● 4KB : Crinkler ● 64KB : kkrunchy – kkrunchyはコンポでも使用が推奨されている
  • 25. kkrunchy ● 無償で入手可能 GitHubでも公開されてます
  • 26. データ圧縮至上主義 ● kkrunchy ● コードセクション圧縮みたいなヤワなものではない ● x86コードを圧縮が効くように事前に変換 ● もちろんx86コードに特化されている ● さらに小さくするためにやりすぎた人たち ● リンカを作る(Crinkler) ● コンパイラから作る(IL4 Lisp-ahtaval) 参考:Executable Packerの構造と解釈 by 301 http://tokyo-demo-fest.jpn.org/2011/seminar/2011/301-siep.pdf
  • 27. 求めすぎることによる弊害 ● MZ / PE ヘッダおかしくね? 少しでも小さくするために、ヘッダ領域まで切り詰めるパッカーがある ● 通常あり得ないヘッダなので、これだけでマルウェア(パッカー)扱い されてしまうことは多々ある(こればかりはkkrunchyだけの問題ではない)
  • 28. VirusTotalの反応 ● 全く無害な helloworld.exe を kkrunchy でパックして VirusTotal でチェックしてみた
  • 29. VirusTotalの反応 ● 結果 13/44 (2012/11/07時点のもの) 有名どころは反応しないが、それでもトータルとしては多い
  • 31. Tokyo Demo Fest 2013 ● 2013年02月09日~10日 東京(飯田橋)で開催 日本唯一のデモパーティ http://tokyo-demo-fest.jpn.org/
  • 32. Tokyo Demo Fest 2013 ● candyの作者 q さんがメインオーガナイザを務めています。 これは頼りになる(TDFウェブサイトより)ね! http://tokyo-demo-fest.jpn.org/
  • 33. Tokyo Demo Fest 2013 ● 今回のスライドも氏に煽られて作成しました。
  • 34. Tokyo Demo Fest 2013 ● 今回のスライドも氏に煽られて作成しました。 嘘です。candyの使用承諾&LTのアドバイスもいただきましたm(_ _)m
  • 35. Tokyo Demo Fest 2013 少しでも興味を持ったなら、 ぜひ行ってみよう! じつは自分も初参加(になる予定) http://tokyo-demo-fest.jpn.org/
  • 37. www.pouet.net ● メガデモの総本山 ほとんどのデモはここから入手可能
  • 38. MoleMan 2 Demoscene - The Art of the Algorithms
  • 39. Moleman 2 Demoscene - The Art of the Algorithms ● ハンガリーで制作されたデモシーンのドキュメンタリー(90分) なんと日本語字幕付きで(正規に)公開されている
  • 40. Moleman 2 Demoscene - The Art of the Algorithms ● ハンガリーで制作されたデモシーンのドキュメンタリー(90分) なんと日本語字幕付きで(正規に)公開されている ● デモシーンを知り尽くした構成・演出でとにかく必見 www.youtube.com/watch?v=iRkZcTg1JWU