素晴らしきメガデモの世界    SECCON 実行委員   松田和樹 (eagle0wl)    Twitter : eagle0wl        2012/11/03
メガデモ
メガデモってなんぞ?●   リアルタイムに美しいグラフィックや音楽を生成・表示する    プログラム    1            fr-041:debris. by farbrausch    基本的に実行ファイルとして動作する    →3...
デモシーンって?●   1980年代ごろに北欧で発生したクラックトロ(cracktro)    が発祥といわれており、現在も続いている文化、コミュニ    ティのこと            Settler 7 Cracktro by Razor...
クラックトロってなんなのさ?●   ゲームソフトのクレジット表記を    自分の署名に書き換えたもの     → こちらで言うところの Kracking●   この『署名』は、徐々に高度なプログラミング技術や独自の表    現技法で”魅せる”方...
デモの種類(の一部)●   デモ(Demo)    リアルタイムに美しいグラフィックや音楽を生成・表示するプログラム。    それ以外に特に制限はない●   メガデモ(Megademo)    ファイルサイズが1MB以内のものを指すことがある ...
Eleveted(4K Intro)
Elevated (4K Intro)●   美しい景観をわずか4096バイトの実行ファイルで表現している。    それも音楽つき。●   国内ニュースサイトでも話題になった                  Elevated by RGBA ...
『Elevated』を実際に観てみよう!                4K Intro   本当はここでプログラムを実行するべきですが、  ビデオキャプチャされたYoutubeの動画を再生します。          私のノートPCでは悲鳴が上...
Puls
B0   13   53   BA   C8   03   CD   10   88   D8   84   CB   7A   05   F6   E8C1   E8   07   F6   EB   88   E0   EE   B2   ...
Puls (256B Intro)●   もはや魔術の世界    256バイトのプログラムで絵が動いている!     ソースコード(アセンブリ言語)が公開されてるよ! (笑)                 Puls by Rrrola
『Puls』を実際に観てみよう!             256 Intro 本当はここでプログラムを実行するべきですが、ビデオキャプチャされたYoutubeの動画を再生します。    http://www.pouet.net/prod.php...
日本におけるデモシーン
日本におけるデモシーン●   日本には欧州のようなデモシーンはなかった●   2chねらーの有志が立ち上げたオンラインデモパーティ    『2chParty』でメガデモが発表される(2001~2009)●   これらは demoscene.jp...
Tokyo Demo Fest●   2011年、2chの『メガデモを語る』スレの有志により    オフラインイベントが開催される●   日本のデモシーンにおける大きな一歩                     http://tokyo-de...
欧州に斬りこんだ和製イントロ●   Function 2012(ハンガリーのデモパーティ)                              http://2012.function.hu/
欧州に斬りこんだ和製イントロ●   Function 2012(ハンガリーのデモパーティ)    日本人によるイントロ(64K Intro)が出展される●   64キロバイトにジャパニメーション&歌唱合成(VOCALID的なもの)    を盛り...
candy TDF2013 Invitation (64K Intro)●   Intro部門で優勝    →日本人によるコンポ優勝は快挙            candy ~TDF2013 Invitation~
『candy TDF2013 Invitation』を     実際に見てみよう!               64K Intro   本当はここでプログラムを実行するべきですが、  ビデオキャプチャされたYoutubeの動画を再生します。  ...
イントロを支える技術
イントロを支える技術●   パッカー    実行ファイルを実行可能なまま圧縮するツール●   期待する効果    実行ファイルサイズの縮小(packer)     →パッカー本来の用途      イントロとしては最重要課題    プログラム解析...
俺らにとってのパッカーって何?●   セキュリティクラスタ的思考で思いついたpacker    …というよりprotector    Armadillo, ASPack, ASProtect, Dropper, FSG, Mew,    Neo...
イントロに好まれるパッカー●   すでにデファクトスタンダードがある    ●   4KB : Crinkler    ●   64KB : kkrunchy        –   kkrunchyはコンポでも使用が推奨されている
kkrunchy●   無償で入手可能    GitHubでも公開されてます
データ圧縮至上主義●   kkrunchy    ●   コードセクション圧縮みたいなヤワなものではない    ●   x86コードを圧縮が効くように事前に変換    ●   もちろんx86コードに特化されている●   さらに小さくするためにや...
求めすぎることによる弊害●   MZ / PE ヘッダおかしくね?    少しでも小さくするために、ヘッダ領域まで切り詰めるパッカーがある    ●   通常あり得ないヘッダなので、これだけでマルウェア(パッカー)扱い        されてしま...
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-dem...
Tokyo Demo Fest 2013●   今回のスライドも氏に煽られて作成しました。
Tokyo Demo Fest 2013●   今回のスライドも氏に煽られて作成しました。    嘘です。candyの使用承諾&LTのアドバイスもいただきましたm(_ _)m
Tokyo Demo Fest 2013    少しでも興味を持ったなら、       ぜひ行ってみよう!        じつは自分も初参加(になる予定)                    http://tokyo-demo-fest.jp...
pouet.net
www.pouet.net●   メガデモの総本山    ほとんどのデモはここから入手可能
MoleMan 2Demoscene - The Art of the Algorithms
Moleman 2Demoscene - The Art of the Algorithms●   ハンガリーで制作されたデモシーンのドキュメンタリー(90分)    なんと日本語字幕付きで(正規に)公開されている
Moleman 2Demoscene - The Art of the Algorithms●   ハンガリーで制作されたデモシーンのドキュメンタリー(90分)    なんと日本語字幕付きで(正規に)公開されている●   デモシーンを知り尽くし...
Any Questions?
Upcoming SlideShare
Loading in …5
×

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

12,040 views

Published on

2012年11月03日、NAISTで行われたSECCON CTF奈良大会での発表で使用したスライドです。
公開にあたり加筆・修正を行なっているので、本文での日付に食い違いがありますがご容赦ください。

以下、スライドで紹介したメガデモのリンクです。

Elevated by RGBA and TBC (4K Intro)
https://www.youtube.com/watch?v=_YWMGuh15nE
http://pouet.net/prod.php?which=52938

Puls by Rrrola (256B Intro)
https://www.youtube.com/watch?v=gaCkQj9DCsA
http://pouet.net/prod.php?which=53816

Candy "TokyoDemoFest2013 Invitation" by nonoil & gorakubu (64K Intro)
https://www.youtube.com/watch?v=pGFOmKvA2l8
http://pouet.net/prod.php?which=60278

Published in: Technology
  • Be the first to comment

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

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

×