$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BadUSBを作ろう / how to make your own BadUSB and Ke...
Search
mu2in
June 29, 2019
Technology
0
470
BadUSBを作ろう / how to make your own BadUSB and Keyboard
BadUSBを作ってみた話です。
「オープンセミナー2019@岡山 懇親会」でのLT資料です。
https://oso.connpass.com/event/129843/
mu2in
June 29, 2019
Tweet
Share
More Decks by mu2in
See All by mu2in
スイッチ沼へようこそ / Welcome to the Key Switch Rabbit Hole
mu2in
0
210
Astroで サクッと作るWebサイト(仮) / Quickly create webpages with Astro
mu2in
1
310
CircuitPythonで動く自作キーボードの紹介 / Introducing Self-Made Keyboard from CircuitPython
mu2in
0
2.5k
スクリーンセーバーキラーを作ってみた / Making Mouse Jiggler with CircuitPython
mu2in
0
830
Pythonで始める自作キーボード入門 / Introduction to Self-Made Keyboard from Python
mu2in
1
2.3k
私のエンジニアライフHacks / my-engineer-lifehacks
mu2in
0
560
PyCon mini Hiroshima 2018 でノベルティを作ってみた話/pycon-mini-hiroshima-2018-novelty
mu2in
1
1.6k
家に帰ると灼熱地獄なのをなんとかする/obniz-universal-remote-control
mu2in
0
990
最近ハマってるゲームとか
mu2in
0
790
Other Decks in Technology
See All in Technology
特別捜査官等研修会
nomizone
0
580
[Neurogica] 採用ポジション/ Recruitment Position
neurogica
1
130
「図面」から「法則」へ 〜メタ視点で読み解く現代のソフトウェアアーキテクチャ〜
scova0731
0
520
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
510
MySQLとPostgreSQLのコレーション / Collation of MySQL and PostgreSQL
tmtms
1
1.2k
100以上の新規コネクタ提供を可能にしたアーキテクチャ
ooyukioo
0
260
AI との良い付き合い方を僕らは誰も知らない
asei
0
270
_第4回__AIxIoTビジネス共創ラボ紹介資料_20251203.pdf
iotcomjpadmin
0
140
意外と知らない状態遷移テストの世界
nihonbuson
PRO
1
270
Claude Codeを使った情報整理術
knishioka
11
7.8k
20251222_サンフランシスコサバイバル術
ponponmikankan
2
140
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.1k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
95
14k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
170
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Code Reviewing Like a Champion
maltzj
527
40k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.4k
The Cult of Friendly URLs
andyhume
79
6.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
How to Talk to Developers About Accessibility
jct
1
86
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.8k
Ruling the World: When Life Gets Gamed
codingconduct
0
100
Transcript
#BE64#Λ࡞Ζ͏ʂ Φʔϓϯηϛφʔ!Ԭࢁ࠙ձ
‣ @mu2in ‣ JavaΤϯδχΞ6 ‣ ͖ͳϓϩάϥϛϯάݴޠɿJavaScript ‣ ࢀՃίϛϡχςΟ ▹ ͍͢͝ౡ
(ਫ༵͘͘ձ) ओ࠵ ▹ PyCon mini Hiroshima 2019 ▹ Φʔϓϯηϛφʔ2020@ౡ ࣗݾհ
BadUSBͱ ‣ USBϙʔτʹૠ͚ͩ͢ͰPCյͤΔͭ
BadUSBͱ ‣ USBϙʔτʹૠ͚ͩ͢ͰPCյͤΔͭ ▹ ͦΕUSB Killer
BadUSBͱ ‣ 20148݄ʹ։ൃऀձٞ Black Hat 2014 USAͰ ൃද͞Εͨ߈ܸख๏ ▹ USBͷϑΝʔϜΣΞΛॻ͖͑Δ͜ͱʹΑͬͯɺෆਖ਼ͳ
ϓϩάϥϜΛ࣮ߦ͢Δ͜ͱ͕Ͱ͖Δɻ ▹ Өڹ͕େ͖͍ͨΊɺ࣮ূίʔυΛެ։͞Ε͍ͯͳ͔ͬͨɻ ‣ ཌ݄ͷ9݄ʹߦΘΕͨηΩϡϦςΟձٞͷ DerbyCon 4.0 Ͱผͷݚڀऀ͕GitHubʹެ։ ▹ USBΩʔϘʔυͷϑΝʔϜΣΞΛॻ͖͑ͯɺ উखʹΩʔΛೖྗͤ͞ΔσϞ͕ߦΘΕͨɻ
Ͱ࡞ͬͯΈ·͠ΐ͏
༻ҙ͢Δͷ • CJMCU Beetle ▹ Arduino LeonardoޓͷϚΠίϯ • HID(ώϡʔϚϯΠϯλʔϑΣʔεσ όΠε)ͱͯ͠ৼ͏͜ͱ͕Ͱ͖Δ
• USBΦε͕͍ͯΔͨΊૠ͠Մೳ • ී௨ͷUSBϝϞϦΑΓখ͍͞ • AmazonͰ¥1,000 தࠃ༌ೖ¥300
ϚΠίϯʹBadUSBͷίʔυΛॻ͖ࠐΉ
USBΛૠ͚ͩ͢ͰϩάΞτ
͜ΕͰօ͞Μ#BE64#͕࡞Ε·͢ʂ
ण࢘ΩʔϘʔυΛ࡞Ζ͏ʂ
• Ruby Kaigi 2017Ͱͬͨण࢘ΩʔΩϟοϓ ( Misoca͞ΜϒʔεΑΓ ) • CJMCU Beetle
• Cherry MXΩʔεΠον • Cherry MX Switch Breakout • μΠΦʔυɺ߅ • ϐϯϔομ • LED • δϟϯύʔϫΠϠʔ • ϒϨουϘʔυ ༻ҙ͢Δͷ
ΈཱͯΔ
#include <Keyboard.h> #define PIN_KEYSW (0) int preState; int currentState; void
setup() { pinMode(PIN_KEYSW, INPUT); preState = HIGH; Keyboard.begin(); } void loop() { currentState = digitalRead(PIN_KEYSW); if((currentState != preState) && (currentState == HIGH)) { Keyboard.press(KEY_LEFT_ALT); Keyboard.print("d83c"); Keyboard.print("df63"); delay(10); Keyboard.releaseAll(); } preState = currentState; delay(10); } ण࢘ΩʔϘʔυͷίʔυΛॻ͖͜Ή Ωʔ͕ԡ͞ΕͨΒ 6OJDPEFೖྗͰ ͷαϩήʔτϖΞΛೖྗ
MacͷೖྗιʔεΛมߋ
ण࢘ΩʔΛಈ͔͢
·ͱΊ ‣ BadUSBૠ͚ͩ͢ͰΩʔೖྗΛ࣮ߦͰ͖ͯɺ ϚΫϩʹศརɻ ‣ ࣗ࡞ΩʔϘʔυ࡞Γָ͍͠ɻ ‣ ৭ΜͳΩʔϘʔυ࡞Γ͍ͨʢপʣ ‣ ѱ͍USB͚ͩͲɺ͍ํ࣍ୈͰ৭ʑͳ͜ͱ͕
Ͱ͖Δͧʂ