Enviar pesquisa
Carregar
アセンブラ短歌 On web
•
1 gostou
•
3,213 visualizações
Kenji Aiko
Seguir
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 28
Recomendados
JAWS-UG LT AWSへの挫折と希望
JAWS-UG LT AWSへの挫折と希望
Hajime Ogushi
Middlemanによる静的サイト作成術
Middlemanによる静的サイト作成術
豊明 尾古
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション
Sayuri Tsukida
Vim no susume
Vim no susume
ikdysfm
a-blog cms Training Camp 2014 Autumn「来年作るべきCMSのテーマとは?」
a-blog cms Training Camp 2014 Autumn「来年作るべきCMSのテーマとは?」
Seiko Kuchida
Html5勉強会資料 2012821
Html5勉強会資料 2012821
Cohei Aoki
Ameba × Akamai技術交流会
Ameba × Akamai技術交流会
Satoshi Udagawa
Recomendados
JAWS-UG LT AWSへの挫折と希望
JAWS-UG LT AWSへの挫折と希望
Hajime Ogushi
Middlemanによる静的サイト作成術
Middlemanによる静的サイト作成術
豊明 尾古
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション
第3回 HTML5飯 少ない工数で豊かな表現!これが私のCSSアニメーション
Sayuri Tsukida
Vim no susume
Vim no susume
ikdysfm
a-blog cms Training Camp 2014 Autumn「来年作るべきCMSのテーマとは?」
a-blog cms Training Camp 2014 Autumn「来年作るべきCMSのテーマとは?」
Seiko Kuchida
Html5勉強会資料 2012821
Html5勉強会資料 2012821
Cohei Aoki
Ameba × Akamai技術交流会
Ameba × Akamai技術交流会
Satoshi Udagawa
それ RubyMine でできるよ
それ RubyMine でできるよ
Takuya INOUE
Windowsマシンを使いだしたときの失敗談
Windowsマシンを使いだしたときの失敗談
Kameko Ohmura
第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会
masayoshi shiraishi
小,中規模WEBサイト 制作でAWSを使う
小,中規模WEBサイト 制作でAWSを使う
Nobuhiko Futagami
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介
Seiko Kuchida
Sass less
Sass less
Net Kanayan
2009 02 12_flosss_cms解体ショー
2009 02 12_flosss_cms解体ショー
Tom Hayakawa
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
kishima7
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告
Joe_noh
エディタ戦争
エディタ戦争
Akira Hagiwara
暗黒美夢王とEmacs
暗黒美夢王とEmacs
Shougo
VimM#3
VimM#3
Yuki Akamatsu
数式を使わないJubatus入門 分散処理編
数式を使わないJubatus入門 分散処理編
Kenji Aiko
コメントから動画の種類を推測できるか
コメントから動画の種類を推測できるか
Kenji Aiko
Main
Main
Kenji Aiko
Kbouncer
Kbouncer
Kenji Aiko
愛甲健二
愛甲健二
NetAgent Co.,Ltd.
text analyzing
text analyzing
Kenji Aiko
これからのマルウェアの話をしよう
これからのマルウェアの話をしよう
Kenji Aiko
CTF(Capture the Flag)って何?
CTF(Capture the Flag)って何?
Kenji Aiko
SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-
Hiromu Yakura
Mais conteúdo relacionado
Mais procurados
それ RubyMine でできるよ
それ RubyMine でできるよ
Takuya INOUE
Windowsマシンを使いだしたときの失敗談
Windowsマシンを使いだしたときの失敗談
Kameko Ohmura
第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会
masayoshi shiraishi
小,中規模WEBサイト 制作でAWSを使う
小,中規模WEBサイト 制作でAWSを使う
Nobuhiko Futagami
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介
Seiko Kuchida
Sass less
Sass less
Net Kanayan
2009 02 12_flosss_cms解体ショー
2009 02 12_flosss_cms解体ショー
Tom Hayakawa
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Yuki Hirano
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
kishima7
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告
Joe_noh
エディタ戦争
エディタ戦争
Akira Hagiwara
暗黒美夢王とEmacs
暗黒美夢王とEmacs
Shougo
VimM#3
VimM#3
Yuki Akamatsu
Mais procurados
(13)
それ RubyMine でできるよ
それ RubyMine でできるよ
Windowsマシンを使いだしたときの失敗談
Windowsマシンを使いだしたときの失敗談
第二回 クラウドサーバー管理者若葉の会
第二回 クラウドサーバー管理者若葉の会
小,中規模WEBサイト 制作でAWSを使う
小,中規模WEBサイト 制作でAWSを使う
Galage labsサーバー部6U自己紹介
Galage labsサーバー部6U自己紹介
Sass less
Sass less
2009 02 12_flosss_cms解体ショー
2009 02 12_flosss_cms解体ショー
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
JavaScriptの仕組みと未来のJavaScript ~ESNextとは~
Introduction of mruby & Webruby script example
Introduction of mruby & Webruby script example
NUTハッカソン2014成果報告
NUTハッカソン2014成果報告
エディタ戦争
エディタ戦争
暗黒美夢王とEmacs
暗黒美夢王とEmacs
VimM#3
VimM#3
Destaque
数式を使わないJubatus入門 分散処理編
数式を使わないJubatus入門 分散処理編
Kenji Aiko
コメントから動画の種類を推測できるか
コメントから動画の種類を推測できるか
Kenji Aiko
Main
Main
Kenji Aiko
Kbouncer
Kbouncer
Kenji Aiko
愛甲健二
愛甲健二
NetAgent Co.,Ltd.
text analyzing
text analyzing
Kenji Aiko
これからのマルウェアの話をしよう
これからのマルウェアの話をしよう
Kenji Aiko
CTF(Capture the Flag)って何?
CTF(Capture the Flag)って何?
Kenji Aiko
SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-
Hiromu Yakura
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介
Hiromu Yakura
Why don't you learn programming?
Why don't you learn programming?
Hiromu Yakura
ナウいAndroidセキュリティ
ナウいAndroidセキュリティ
Hiromu Yakura
新しいライブ映像再生システムを研究してみた
新しいライブ映像再生システムを研究してみた
Hiromu Yakura
CTF, What's in it for me?
CTF, What's in it for me?
Hiromu Yakura
検証、SEAndroid
検証、SEAndroid
Hiromu Yakura
Androidにおける強制アクセス制御
Androidにおける強制アクセス制御
Hiromu Yakura
Arduinoでプログラミングに触れてみよう
Arduinoでプログラミングに触れてみよう
Hiromu Yakura
Trendmicro Security Award 2012 Final Presentation
Trendmicro Security Award 2012 Final Presentation
Hiromu Yakura
ICTのちから
ICTのちから
Hiromu Yakura
GAME ON 特別イベント 「ゲームってなんでプログラミング?」
GAME ON 特別イベント 「ゲームってなんでプログラミング?」
Hiromu Yakura
Destaque
(20)
数式を使わないJubatus入門 分散処理編
数式を使わないJubatus入門 分散処理編
コメントから動画の種類を推測できるか
コメントから動画の種類を推測できるか
Main
Main
Kbouncer
Kbouncer
愛甲健二
愛甲健二
text analyzing
text analyzing
これからのマルウェアの話をしよう
これからのマルウェアの話をしよう
CTF(Capture the Flag)って何?
CTF(Capture the Flag)って何?
SEAndroid -AndroidのアーキテクチャとSE化について-
SEAndroid -AndroidのアーキテクチャとSE化について-
OSS奨励賞受賞プレゼン 活動紹介
OSS奨励賞受賞プレゼン 活動紹介
Why don't you learn programming?
Why don't you learn programming?
ナウいAndroidセキュリティ
ナウいAndroidセキュリティ
新しいライブ映像再生システムを研究してみた
新しいライブ映像再生システムを研究してみた
CTF, What's in it for me?
CTF, What's in it for me?
検証、SEAndroid
検証、SEAndroid
Androidにおける強制アクセス制御
Androidにおける強制アクセス制御
Arduinoでプログラミングに触れてみよう
Arduinoでプログラミングに触れてみよう
Trendmicro Security Award 2012 Final Presentation
Trendmicro Security Award 2012 Final Presentation
ICTのちから
ICTのちから
GAME ON 特別イベント 「ゲームってなんでプログラミング?」
GAME ON 特別イベント 「ゲームってなんでプログラミング?」
Último
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Último
(9)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
アセンブラ短歌 On web
1.
「アセンブラ短歌 on Web」を 作ってみよう 愛甲健二 @07c00 kenjiaiko@gmail.com
2.
アセンブラ短歌とは? 「アセンブラ短歌」とは、 5・7・5・7・7の31バイト(みそひ とバイト)から成る機械語コードでプログ ラムを書いてみるという近未来の文化的趣 味 http://kozos.jp/asm-tanka/
3.
アセンブラ短歌 on Web
とは? 「アセンブラ短歌 on Web」 とは ブラウザ上からアセンブラ短歌をカジュア ルに試せる環境, スマホからもアクセスでき, 通勤電車やちょっとした待ち時間にも気軽 に短歌れる
4.
どうやってブラウザ上で アセンブラ短歌を実現するのか … 任意のマシン語が実行できる環境 をどうやって用意するのか…
5.
実現方法 1. エミュレーション方式 – 各種CPUをエミュレーション –
例:JavaScriptでx86/ARM/PPCなどを作る 2. サンドボックス方式 – 隔離された環境(SandBox)で実行 – 例:VM環境内で実行→結果をブラウザへ
6.
実現方法 1. エミュレーション方式 – 各種CPUをエミュレーション –
例:JavaScriptでx86/ARM/PPCなどを作る 2. サンドボックス方式 – 隔離された環境(SandBox)で実行 – 例:VM環境内で実行→結果をブラウザへ
7.
CPU Emulation on
JavaScript jslinux http://bellard.org/jslinux/ Virtual x86 http://copy.sh/v24/
8.
Assembly Tanka on
JavaScript xor eax,eax = 31 C0 … eax = 0x00 cpux86.js
9.
Assembly Tanka on
JavaScript xor eax,eax = 31 C0 … eax = 0x00 cpux86.js ※ I/Oは決めておく必要あ り ← PUSH! ■Demo Assembly Tanka on JavaScript http://07c00.com/asmtanka_on_js/
10.
Demo http://07c00.com/asmtanka_on_js/
11.
実現方法 1. エミュレーション方式 – 各種CPUをエミュレーション –
例:JavaScriptでx86/ARM/PPCなどを作る 2. サンドボックス方式 – 隔離された環境(SandBox)で実行 – 例:VM環境内で実行→結果をブラウザへ
12.
SandBox for analyzing
malwares VirtualBox https://www.virtualbox.org/ https://www.virtualbox.org/wiki/Screenshots VMWare http://www.vmware.com/jp
13.
でも たった31バイトを実行するため に VM立ち上げるとかさすがに厳 しい
14.
そこで「デバッガ⇔デバッギ」 の関係になる2つのプロセスを 立ち上げ 実行コードをデバッギに渡し 結果をデバッガが受け取る仕組み を 作る
15.
Assembly Tanka on
Server-side ③ ① Debugging ⑤ tanka.cgi ④ ② New process Return the result Execute • Debugging API – DebugActiveProcess (Win系) – ptrace(UNIX系) 6a 68 6a 68 59 00 79 08 57 cd 58 61 5a 61 80 50 6d 5b 6b 58 40 61 50 40 40 61 54 40 58 58 c3
16.
Assembly Tanka on
Server-side STEP ステップ実行毎に デバッガが命令を検査 tanka.cgi New process push 0x00 = 6a 00 6a 68 6a 68 59 00 79 08 57 cd 58 61 5a 61 80 50 6d 5b 6b 58 40 61 50 40 40 61 54 40 58 58 c3
17.
Assembly Tanka on
Server-side STEP ステップ実行毎に デバッガが命令を検査 tanka.cgi New process pop eax = 58 6a 68 6a 68 59 00 79 08 57 cd 58 61 5a 61 80 50 6d 5b 6b 58 40 61 50 40 40 61 54 40 58 58 c3
18.
Assembly Tanka on
Server-side STEP ステップ実行毎に デバッガが命令を検査 tanka.cgi New process push eax = 50 6a 68 6a 68 59 00 79 08 57 cd 58 61 5a 61 80 50 6d 5b 6b 58 40 61 50 40 40 61 54 40 58 58 c3
19.
Assembly Tanka on
Server-side STEP ステップ実行毎に デバッガが命令を検査 tanka.cgi New process inc eax = 40 6a 68 6a 68 59 00 79 08 57 cd 58 61 5a 61 80 50 6d 5b 6b 58 40 61 50 40 40 61 54 40 58 58 c3
20.
Assembly Tanka on
Server-side STEP ステップ実行毎に デバッガが命令を検査 tanka.cgi sys-callが呼ばれたら 引数を確認し int 0x80 = cd 80 OKなら実行を許す ダメならそこでストップ →sys-callさえ監視しておけば ok New process 6a 68 6a 68 59 00 79 08 57 cd 58 61 5a 61 80 50 6d 5b 6b 58 40 61 50 40 40 61 54 40 58 58 c3
21.
Demo http://x86.seccon.jp/99.html
22.
アセンブラ短歌の楽しみかた • いろんなCPUでやってみる • いろんなOS(環境)でやってみる •
何文字printできるかに挑戦してみる • 味わい深さを追求してみる • 短歌を簡単に作れる環境を作ってみる • 短歌を自動生成できないか考えてみる
23.
好きな楽しみかたをすれば いいと思います でも一回は短歌やってみてほしいです ぜったい楽しいので
24.
最後に その他の on JS
を紹介
25.
バイナリかるた on JS http://x86.seccon.jp/karuta/test.html Demo
26.
アセンブラテトリス on JS http://07c00.com/asmtetris_on_js/ Demo
27.
バイナリを楽しもう!
28.
絶賛発売中! Thank you! https://book.mynavi.jp/ec/products/detail/id=24267