Submit Search
Upload
バイナリ駄洒落コンテスト
•
0 likes
•
360 views
K
kozossakai
Follow
SECCON2020 Contest of Contest 表彰式で発表
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 46
Download now
Download to read offline
Recommended
Rデモ03_データ分析編2016
Rデモ03_データ分析編2016
wada, kazumi
詳解PRO DJ LINK
詳解PRO DJ LINK
Takayuki Tominaga
Rデモ01_はじめの一歩2016
Rデモ01_はじめの一歩2016
wada, kazumi
アセンブラ短歌 - 坂井弘亮
アセンブラ短歌 - 坂井弘亮
asmtanka
Hachioji.pm #40
Hachioji.pm #40
karupanerura
It講座 パソコン basic編 part 1
It講座 パソコン basic編 part 1
Kenichi Takeuchi
Extreme Assembler Tanka - eagle0wl
Extreme Assembler Tanka - eagle0wl
asmtanka
FreeBSDでおうちのルーター
FreeBSDでおうちのルーター
hoo0005
Recommended
Rデモ03_データ分析編2016
Rデモ03_データ分析編2016
wada, kazumi
詳解PRO DJ LINK
詳解PRO DJ LINK
Takayuki Tominaga
Rデモ01_はじめの一歩2016
Rデモ01_はじめの一歩2016
wada, kazumi
アセンブラ短歌 - 坂井弘亮
アセンブラ短歌 - 坂井弘亮
asmtanka
Hachioji.pm #40
Hachioji.pm #40
karupanerura
It講座 パソコン basic編 part 1
It講座 パソコン basic編 part 1
Kenichi Takeuchi
Extreme Assembler Tanka - eagle0wl
Extreme Assembler Tanka - eagle0wl
asmtanka
FreeBSDでおうちのルーター
FreeBSDでおうちのルーター
hoo0005
初めてのCPUを作ってみた
初めてのCPUを作ってみた
Eric Sartre
第10回 計算機構成
第10回 計算機構成
眞樹 冨澤
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
PacSecJP
ネイティブコードを語る
ネイティブコードを語る
Kenji Imasaki
フォントとカーネル Vmのあやしい関係
フォントとカーネル Vmのあやしい関係
明 高橋
俺とキーボード
俺とキーボード
Masayuki KaToH
アセンブラ漢文
アセンブラ漢文
kozossakai
Pakena #9
Pakena #9
(^-^) togakushi
Assembly Tanka on Web - Aiko Kenji
Assembly Tanka on Web - Aiko Kenji
asmtanka
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
kozossakai
素晴らしきメガデモの世界
素晴らしきメガデモの世界
eagle0wl
Assembly Language Tanka - SAKAI Hiroaki
Assembly Language Tanka - SAKAI Hiroaki
asmtanka
spinsn - CPUの特殊命令の仕様推定と実装の競技
spinsn - CPUの特殊命令の仕様推定と実装の競技
kozossakai
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
kozossakai
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
kozossakai
続・ハロー・ワールド入門(オープンソースカンファレンス2016 Tokyo/Spring ライトニングトーク)
続・ハロー・ワールド入門(オープンソースカンファレンス2016 Tokyo/Spring ライトニングトーク)
kozossakai
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
kozossakai
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
kozossakai
Assembly Language Tanka (AVTOKYO2013.5 English version)
Assembly Language Tanka (AVTOKYO2013.5 English version)
kozossakai
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
kozossakai
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
kozossakai
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
kozossakai
More Related Content
Similar to バイナリ駄洒落コンテスト
初めてのCPUを作ってみた
初めてのCPUを作ってみた
Eric Sartre
第10回 計算機構成
第10回 計算機構成
眞樹 冨澤
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
PacSecJP
ネイティブコードを語る
ネイティブコードを語る
Kenji Imasaki
フォントとカーネル Vmのあやしい関係
フォントとカーネル Vmのあやしい関係
明 高橋
俺とキーボード
俺とキーボード
Masayuki KaToH
アセンブラ漢文
アセンブラ漢文
kozossakai
Pakena #9
Pakena #9
(^-^) togakushi
Assembly Tanka on Web - Aiko Kenji
Assembly Tanka on Web - Aiko Kenji
asmtanka
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
kozossakai
素晴らしきメガデモの世界
素晴らしきメガデモの世界
eagle0wl
Assembly Language Tanka - SAKAI Hiroaki
Assembly Language Tanka - SAKAI Hiroaki
asmtanka
Similar to バイナリ駄洒落コンテスト
(12)
初めてのCPUを作ってみた
初めてのCPUを作ってみた
第10回 計算機構成
第10回 計算機構成
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
Ahn pacsec2017 key-recovery_attacks_against_commercial_white-box_cryptography...
ネイティブコードを語る
ネイティブコードを語る
フォントとカーネル Vmのあやしい関係
フォントとカーネル Vmのあやしい関係
俺とキーボード
俺とキーボード
アセンブラ漢文
アセンブラ漢文
Pakena #9
Pakena #9
Assembly Tanka on Web - Aiko Kenji
Assembly Tanka on Web - Aiko Kenji
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
アセンブラ短歌(第2回APASEC+第2期サイボウズ・ラボユース合同勉強会)
素晴らしきメガデモの世界
素晴らしきメガデモの世界
Assembly Language Tanka - SAKAI Hiroaki
Assembly Language Tanka - SAKAI Hiroaki
More from kozossakai
spinsn - CPUの特殊命令の仕様推定と実装の競技
spinsn - CPUの特殊命令の仕様推定と実装の競技
kozossakai
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
kozossakai
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
kozossakai
続・ハロー・ワールド入門(オープンソースカンファレンス2016 Tokyo/Spring ライトニングトーク)
続・ハロー・ワールド入門(オープンソースカンファレンス2016 Tokyo/Spring ライトニングトーク)
kozossakai
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
kozossakai
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
kozossakai
Assembly Language Tanka (AVTOKYO2013.5 English version)
Assembly Language Tanka (AVTOKYO2013.5 English version)
kozossakai
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
kozossakai
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
kozossakai
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
kozossakai
バイナリかるた(アーキテクチャかるた・完全版)
バイナリかるた(アーキテクチャかるた・完全版)
kozossakai
バイナリかるた(アーキテクチャかるた)
バイナリかるた(アーキテクチャかるた)
kozossakai
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
kozossakai
アセンブラ短歌(オープンソースカンファレンス2013 Tokyo/Fall ライトニングトーク)
アセンブラ短歌(オープンソースカンファレンス2013 Tokyo/Fall ライトニングトーク)
kozossakai
More from kozossakai
(14)
spinsn - CPUの特殊命令の仕様推定と実装の競技
spinsn - CPUの特殊命令の仕様推定と実装の競技
Step-Oriented Programming による任意コード実行の可能性
Step-Oriented Programming による任意コード実行の可能性
Possibility of arbitrary code execution by Step-Oriented Programming
Possibility of arbitrary code execution by Step-Oriented Programming
続・ハロー・ワールド入門(オープンソースカンファレンス2016 Tokyo/Spring ライトニングトーク)
続・ハロー・ワールド入門(オープンソースカンファレンス2016 Tokyo/Spring ライトニングトーク)
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
ハロー・ワールド入門(オープンソースカンファレンス2015 Tokyo/Spring ライトニングトーク)
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
アセンブラ短歌 (AVTOKYO2013.5 日本語版)
Assembly Language Tanka (AVTOKYO2013.5 English version)
Assembly Language Tanka (AVTOKYO2013.5 English version)
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
アセンブラ短歌(TechLION vol.15 ライトニングトーク)
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
フィーリングで読む40種類のアセンブラ(オープンソースカンファレンス2013 Tokyo/Spring ライトニングトーク)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
組込みOSを作ってみよう!(オープンソースカンファレンス内セミナー資料)
バイナリかるた(アーキテクチャかるた・完全版)
バイナリかるた(アーキテクチャかるた・完全版)
バイナリかるた(アーキテクチャかるた)
バイナリかるた(アーキテクチャかるた)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
バイナリで遊ぼう(オープンソースカンファレンス2014 Tokyo/Fall ライトニングトーク)
アセンブラ短歌(オープンソースカンファレンス2013 Tokyo/Fall ライトニングトーク)
アセンブラ短歌(オープンソースカンファレンス2013 Tokyo/Fall ライトニングトーク)
バイナリ駄洒落コンテスト
1.
バイナリ駄洒落 コンテスト 坂井弘亮 (KOZOSプロジェクト) TwitterID:kozossakai
2.
バイナリ駄洒落
3.
バイナリ駄洒落 とは何か
4.
バイナリ駄洒落 公式ホームページ (http://kozos.jp/binary-dajare/)
5.
バイナリ駄洒落とは (公式ホームページより) 「バイナリ駄洒落」はバイナリデータの読 みに対して非常に似た音の言葉をかける 近未来の言葉遊びであり,近年,国内で はハッカーの密かなたしなみとして, 挨 拶がわりに交換されています.
6.
こんな感じです
7.
5C 24 14
8B 44 24 10 52 51 53 50 8B 44 24 10 F8 CD 80 73 07 83 F8 00 7E 02 F7 D8 5B 5B 5B 5B 5B 5B 59 5A C3 83 EC 18 FF 74 24 1C E8 A0 FF FF FF
8.
タイトルは 「Cでやれ!」
9.
説明します
10.
タイトル「Cでやれ!」 5C 24 14
8B 44 24 10 52 51 53 50 8B 44 24 10 F8 CD 80 73 07 83 F8 00 7E 02 F7 D8 5B 5B 5B 5B 5B 5B 59 5A C3 83 EC 18 FF 74 24 1C E8 A0 FF FF FF
11.
タイトル「Cでやれ!」 5C 24 14
8B 44 24 10 52 51 53 50 8B 44 24 10 F8 CD 80 73 07 83 F8 00 7E 02 F7 D8 5B 5B 5B 5B 5B 5B 59 5A C3 83 EC 18 FF 74 24 1C E8 A0 FF FF FF これはx86の機械語コードです
12.
タイトル「Cでやれ!」 5C 24 14
8B 44 24 10 52 51 53 50 8B 44 24 10 F8 +-----+ |CD 80|73 07 83 F8 00 7E 02 F7 D8 5B 5B 5B 5B 5B +-----+ 5B 59 5A C3 83 EC 18 FF 74 24 1C E8 A0 FF FF FF ここが「Cでやれ!」
13.
タイトル「Cでやれ!」 5C 24 14
8B 44 24 10 52 51 53 50 8B 44 24 10 F8 +-----+ |CD 80|73 07 83 F8 00 7E 02 F7 D8 5B 5B 5B 5B 5B Cでやれ 5B 59 5A C3 83 EC 18 FF 74 24 1C E8 A0 FF FF FF ここが「Cでやれ!」
14.
CD 80 Cで やれ
15.
この駄洒落の 解説をします
16.
タイトル「Cでやれ!」 5C 24 14
8B 44 24 10 52 51 53 50 8B 44 24 10 F8 +-----+ |CD 80|73 07 83 F8 00 7E 02 F7 D8 5B 5B 5B 5B 5B +-----+ 5B 59 5A C3 83 EC 18 FF 74 24 1C E8 A0 FF FF FF 上はx86の実行ファイルの機械語コードの,システムコール呼び 出し部分のダンプ である. システムコール呼び出しが int 0x80 で行われており, 「CD 80」となっている. これは,機械語コードのダンプなど見ずに「Cでやれ」と言ってい る.
17.
そのような例を 公式ホームページで 公開したら 想定外の感想が
18.
「例が高尚すぎて ついていけません」
19.
これではまずい と思い
20.
駄洒落の面白みの 解説を追加しました
21.
バイナリ駄洒落 公式ホームページ
22.
バイナリ駄洒落 公式ホームページ この駄洒落の面白い点の解説を追加
23.
この駄洒落の面白い点の解説 Linux/x86のシステムコール 呼び出し手順(ABI)を知るために せっかく機械語コードの ダンプを見ているのに, そのCPUに「C(言語)でやれ」と 逆にツッコミを受けてしまっている 点が,この駄洒落の面白いところです
24.
次の駄洒落
25.
x86のNOP命令(0x90)による 駄洒落
26.
タイトル「命令をくれ!」 31 ED 55
89 E5 83 E4 F0 8D 45 08 83 EC 04 50 FF 75 04 52 E8 08 00 00 00 CC 90 90 90 90 90 90 90 55 89 E5 57 56 53 83 EC 0C 8B 75 0C 8B 5D 10 85
27.
タイトル「命令をくれ!」 31 ED 55
89 E5 83 E4 F0 8D 45 08 83 EC 04 50 FF +---------------------+ 75 04 52 E8 08 00 00 00 CC|90 90 90 90 90 90 90| +---------------------+ 55 89 E5 57 56 53 83 EC 0C 8B 75 0C 8B 5D 10 85 ここが「命令をくれくれくれ...」
28.
タイトル「命令をくれ!」 31 ED 55
89 E5 83 E4 F0 8D 45 08 83 EC 04 50 FF +---------------------+ 75 04 52 E8 08 00 00 00 CC|90 90 90 90 90 90 90| クレクレクレクレクレ... 55 89 E5 57 56 53 83 EC 0C 8B 75 0C 8B 5D 10 85 ここが「命令をくれくれくれ...」
29.
90 90 90
90 90 クレ クレ クレ クレ クレ
30.
この駄洒落の 解説をします
31.
タイトル「命令をくれ!」 31 ED 55
89 E5 83 E4 F0 8D 45 08 83 EC 04 50 FF +---------------------+ 75 04 52 E8 08 00 00 00 CC|90 90 90 90 90 90 90| +---------------------+ 55 89 E5 57 56 53 83 EC 0C 8B 75 0C 8B 5D 10 85 上はx86の実行ファイルの機械語コード部分のダンプである. 関数の末尾(CC以降)が,NOP(90)で埋められており,90 90 90 90 90 90 90 という 部分が見られる. これは命令が無いために,CPUが命令を「くれ,くれ,くれ,...」 と言っている.
32.
さらに 関数の先頭に 注目
33.
タイトル「命令をくれ!」 31 ED 55
89 E5 83 E4 F0 8D 45 08 83 EC 04 50 FF +---------------------+ 75 04 52 E8 08 00 00 00 CC|90 90 90 90 90 90 90| +---------------------+ 55 89 E5 57 56 53 83 EC 0C 8B 75 0C 8B 5D 10 85 「命令をくれくれくれ...」の後は
34.
タイトル「命令をくれ!」 31 ED 55
89 E5 83 E4 F0 8D 45 08 83 EC 04 50 FF 75 04 52 E8 08 00 00 00 CC 90 90 90 90 90 90 90 +-----+ |55 89|E5 57 56 53 83 EC 0C 8B 75 0C 8B 5D 10 85 +-----+
35.
タイトル「命令をくれ!」 31 ED 55
89 E5 83 E4 F0 8D 45 08 83 EC 04 50 FF 75 04 52 E8 08 00 00 00 CC 90 90 90 90 90 90 90 +-----+ |55 89|E5 57 56 53 83 EC 0C 8B 75 0C 8B 5D 10 85 +-----+ 「ゴー!ゴー!ハック!」
36.
タイトル「命令をくれ!」 31 ED 55
89 E5 83 E4 F0 8D 45 08 83 EC 04 50 FF 75 04 52 E8 08 00 00 00 CC 90 90 90 90 90 90 90 +-----+ |55 89|E5 57 56 53 83 EC 0C 8B 75 0C 8B 5D 10 85 ゴーゴーハック CPUが命令を「くれ,くれ,くれ,...」と言った後は, 関数の先頭に push %ebp と mov %esp, %ebp の前半の 「55 89」があり, 「ゴー!ゴー!ハック!」と言って関数が開始さ れている.
37.
この駄洒落の 面白い点を 解説します
38.
関数末尾のキャッシュアラインのための パディングのNOPでCPUがやることが無くて 「命令をくれくれくれ...」と言っており, さらにようやく関数先頭で命令を得て, 「ゴー!ゴー!ハック!」と嬉しそうに実行を 開始している点が,CPUの挙動と感情を うまく掛け合わせて表現しており, そこがこの駄洒落の面白いところです
39.
ここからは 真面目な話です
40.
バイナリ駄洒落 実施における 背景と目的 (Contest of Contest 応募時に提出した内容)
41.
バイナリ駄洒落の背景と目的 バイナリを目視する技術は従来よりセキュリティ方面で重要視されており,目grep, バイナリ かるたといった分野がすでに確立している. そうした目視技術ではバイナリの固定的な列,例えばx86機械語コードのNOPを表す 「90」 やIPアドレスの「192.168.1.1」を表す「C0
A8 01 01」などを覚えていることが 非常に効果 的である. 一方,国内では従来より歴史の学習に「語呂合わせ」というものがあり, 例として1192年の 鎌倉幕府開府を「いいくに(1192)つくろう鎌倉幕府」などとして 覚えることが教育分野でも 習慣的に行われており,とくにこの鎌倉幕府開府に関しては おそらくほとんどの国民が知っ ていると言っても過言では無いほどの普及が感じられ, ひいてはほとんどの国民が鎌倉幕 府開府の年を覚えているということでもあり, 語呂合わせというものが記憶面で非常に有効 であると言える. バイナリ駄洒落は上記バイナリの固定的な列を覚える際に,語呂合わせを利用すること で記 憶を効果的に行い,結果としてバイナリの目視技術を養うための有効な手段で あり,これを コンテストとして実施することで,そうした語呂合わせを多数考案する ことを目的とする. 駄洒落は老若男女に親しまれ,とくに幼児にとっては手軽な楽しみとして人気がある. この ためそうした「駄洒落」としてバイナリに親しむことは幼少期から可能であり, バイナリ目視に 抵抗感の無い,バイナリネイティブ世代を育成するための,国内の 未来に対しての布石であ る.
42.
そうした背景と目的の下で 行われた
43.
第1回 SECCONバイナリ駄洒落 コンテスト
44.
第1回 SECCONバイナリ駄洒落コンテスト
45.
本日17:00より結果発表です!
46.
どうもありがとう ございました
Download now