Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
460
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
300
CircuitPythonで動く自作キーボードの紹介 / Introducing Self-Made Keyboard from CircuitPython
mu2in
0
2.5k
スクリーンセーバーキラーを作ってみた / Making Mouse Jiggler with CircuitPython
mu2in
0
800
Pythonで始める自作キーボード入門 / Introduction to Self-Made Keyboard from Python
mu2in
1
2.2k
私のエンジニアライフHacks / my-engineer-lifehacks
mu2in
0
550
PyCon mini Hiroshima 2018 でノベルティを作ってみた話/pycon-mini-hiroshima-2018-novelty
mu2in
1
1.5k
家に帰ると灼熱地獄なのをなんとかする/obniz-universal-remote-control
mu2in
0
970
最近ハマってるゲームとか
mu2in
0
780
Other Decks in Technology
See All in Technology
「全員プロダクトマネージャー」を実現する、Cursorによる仕様検討の自動運転
applism118
22
12k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
8.8k
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
1
310
プラットフォーム転換期におけるGitHub Copilot活用〜Coding agentがそれを加速するか〜 / Leveraging GitHub Copilot During Platform Transition Periods
aeonpeople
1
230
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
580
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
230
Create Ruby native extension gem with Go
sue445
0
120
2つのフロントエンドと状態管理
mixi_engineers
PRO
3
120
LLM時代のパフォーマンスチューニング:MongoDB運用で試したコンテキスト活用の工夫
ishikawa_pro
0
170
Platform開発が先行する Platform Engineeringの違和感
kintotechdev
4
580
スマートファクトリーの第一歩 〜AWSマネージドサービスで 実現する予知保全と生成AI活用まで
ganota
2
310
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Visualization
eitanlees
148
16k
Designing Experiences People Love
moore
142
24k
A designer walks into a library…
pauljervisheath
207
24k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Invisible Side of Design
smashingmag
301
51k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Building Adaptive Systems
keathley
43
2.7k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
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͚ͩͲɺ͍ํ࣍ୈͰ৭ʑͳ͜ͱ͕
Ͱ͖Δͧʂ