*白百合めも*

セキュリティ中心に毎日の勉強の記録を書くよ*

Arduino Microで遊んでみた〜USBに注意〜

みなさんこんにちは!
すっっっごく久しぶりのブログ更新です🌷
前回から今まで何やってたんだよって感じですが、
セキュリティをやっていく上で、その基礎の部分であやふやなところが多すぎて、
サーバー構築やプログラミングの勉強をしてました💻✨
さくらのVPSを借りて、WordPressとかDockerの基礎(こういうものなんだ〜程度ですが) を学んだり、個人的にLaravelが苦手なので1から復習したり(今も復習途中)
・・・まぁこんな感じで、ブログに書くようなことはあまりやっていなかったので書けませんでした🌻
基礎が全くできていないので今後も勉強は続けていきますが、
モチベーションUP↑の為にも、ちょっと面白いことも合間にやっていこうと思います❤️

では・・・今回の本題へ⭐️

今回はこのコを使って遊んでみました❤️
f:id:white-lily6u6:20171120232919j:plain:w400
うわ〜っ、めちゃめちゃ可愛いですね💓
このコは、Arduino Micro といいます🍦 (とっても小さいよ!)

Microちゃんは一般的なArduino UNOなどのようにArduino IDEでプログラムを書き込めるのですが、パソコンにUSB接続すると、プログラムによってマウスやキーボードのような動きを実現することができるのです✨
Arduino Leonardoでも同じことができますが、小さい方がUSB感あるのでMicroにしました笑)
プログラミング等やったことない方でも簡単にできますよ❗️


早速色々と試していって、USBって怖いんだよってことを見ていきます❤️

キーボードでの入力

まずは、Arduino Microをパソコンに挿したら、
ツイッターで自動的に呟いてくれるというのをやってみました💓
このギャルアカウントは過去に調査用に作ってたものなので謎なツイートあっても気にしないでください笑

youtu.be

一切パソコンに触れずに呟くことができました! プログラムは以下です🍧

#include "Keyboard.h"
void setup() {
  Keyboard.begin();
  delay(3000);
  Keyboard.println("I LOVE EXCITING THINGS...");
  delay(1000);
  Keyboard.write(KEY_RETURN);
  Keyboard.print("I LIKE THE WAY I AM.");
  delay(1000);
  Keyboard.press(KEY_LEFT_GUI);
  Keyboard.press(KEY_RETURN);
  delay(1000);
  Keyboard.releaseAll();
}

void loop() {
}

Keyboard.writeがキーを1度押すという関数なのですが、
Keyboard.pressはキーを押しっぱなしで、Keyboard.releaseAll();で解放してあげます🌺

「眠いなー」とか「お腹空いたー」とかよく呟きたくなる内容をMicroに書き込んでおいて、挿すだけで呟いてくれたら楽ですね(?)

マウスの操作

お次は、マウスを動かしていきますよ🍰

youtu.be
Microをぶすっと挿すと自動的にギザギザと描いてくれます!

・・・今、しょぼいって思いましたね!?(⌒▽⌒)笑
実はもっと関数とかでかっこいい形を描こうと思ったのですが、
Arduino microになぜか書き込みができなくなってしまって、
それを直してからとなるといつになったらブログを更新できるか分からないので、
ちょっとしょぼい感じのデモになりましたw

コードは以下です!

#include "Mouse.h"
void setup(){
  Mouse.begin();
  delay(3000);
  Mouse.press(MOUSE_LEFT);
}

int i=0;
void loop(){
    delay(1000);
    i++;
    Mouse.move(10,10);
    delay(1000);
    Mouse.move(10,-10);
    delay(1000);
    Mouse.move(10,10);
    delay(1000);
    Mouse.move(10,-10);

    if(i == 5){
      Mouse.release(MOUSE_LEFT);
      exit(1);
    }
}

まとめ・余談

今回は、USBのファームウェアを書き換える、BadUSBの擬似体験みたいな感じになりました💐
Windowsで「ファイル名指定して実行する」で、ブラウザ立ち上げてURL打ち込んだり、コマンドプロンプトとかで色々やってみたいので、
近いうちに試してみますー♪
(Mac OSだとホストと同じOSで誤作動が怖いので...!)
まずは、書き込みできるように直さないと...笑

今回のデモだと、なかなかUSBの怖さが伝わりづらいと思いますが(笑)、
何でもやられ放題なので、離席するときは画面ロックは忘れないようにしましょ⚡️


あと、この記事を見て、「うわ〜っこんな簡単にできるんだ!やろー!」と思われた方!
もしいらっしゃったら、とっっても嬉しいんですが、
プログラムを実行するときは十分に注意してくださいとだけ言っておきます!
私が最初触ったとき、何も考えずにloopの中に文字列を入力する行を入れたのですが、
ものすごいスピードで無限に文字列が入力され、
アプリケーションも全然落とせないわMacもどんどん熱くなるわでめちゃめちゃ焦りましたw(あほ)
普通のプログラミングで無限ループの中に出力関数書いても、Ctrl+Cで抜けれるから危機感がなかったんですよね💧
文字列無限入力くらいならかわいいものですが キーボードとマウスでできるものは何でもできてしまうので(つまりほぼ全部)
大切なデータ消したり、パソコン壊したりしないようにだけお気をつけくださいね><⚡️
Arduinoの不調も、私がやった限りでは、わりと、いやかなりありましたので、注意!)