Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
yj_nearbyglasses — 近くのスマートグラスを検出しようと試み、警告します。 | Kitploit
ツール/GitHubGitHub/yjeanrenaud/yj_nearbyglasses
Androidセキュリティ防御ツールBluetoothセキュリティiOSセキュリティモバイルセキュリティプライバシー
GitHubyjeanrenaud/yj_nearbyglasses

yj_nearbyglasses

近くのスマートグラスを検出しようと試み、警告します。

リポジトリを見る
2.0k938日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

yj_nearbyglasses

近くのスマートグラスを検出し、警告することを目的としています。

⚠ 警告! ⚠

nearby-glasses-alert.pages.dev は私のプロジェクトとは関係ありません。Play StoreやApp Storeにある多くのアプリは、Nearby Glassesと非常によく似た外観や名称を持っています。それらは名前を乗っ取って、手っ取り早く利益を得ようとしているようです。それらはAGPLライセンスに準拠しておらず、一切の提供もありません。私はこれを推奨しません。

Nearby Glasses クラシックのスクリーンショット Nearby Glasses カナリーモードのスクリーンショット

⚠ 警告! ⚠

誰かが隠し監視デバイスを装着していると思って嫌がらせをすることは、刑事犯罪になる可能性があります。それはそのようなデバイスを使用することよりもさらに重大な犯罪となる可能性があります。この件については、現地の法律に関する法的助言を求めてください。

⚠ 誰も決して嫌がらせしないでください ⚠


Nearby Glasses

このアプリは、Nearby Glassesと呼ばれ、唯一の目的があります:近くのスマートグラスを探して警告することです。

Google Playで入手 IzzyOnDroidで入手 Obtainiumで入手 App Storeでダウンロード

目次

  • Nearby Glasses
  • なぜ?
  • どのように?
  • 機能
    • RSSIとは?
  • iOSとAndroid
  • 使い方
  • ToDo
  • テクノロジー・ソリューション主義?
  • ソースからビルド
  • 謝辞
  • ライセンスとクレジット

このアプリは、スマートグラスが近くにあるときに通知します。これらが発信するBluetoothデータ内の企業識別子を使用します。そのため、誤検出がある可能性があります(例:VRヘッドセットなど)。したがって、近くでメガネをかけている人に近づく際は注意してください。このアプリの警告にもかかわらず、それは通常のメガネである可能性があります。

アプリの作者 Yves Jeanrenaud は、このアプリおよびその機能に関して一切の責任を負いません。自己責任で使用してください。技術的な設計上、Bluetooth LEデバイスの検出が期待通りに動作しないことがあります。私は開発者としての学位を持っていません。これはすべて余暇に、独学で学んだ知識で書かれています。
誤検出が発生する可能性があります。 つまり、アプリ Nearby Glasses は、実際には同じメーカーのVRヘッドセットやその会社の系列の別製品である場合でも、近くにスマートグラスがあると通知する可能性があります。また、近くのスマートグラスを見逃すこともあります。繰り返します:私はプロの開発者ではありません。
ただし、このアプリは無料でオープンソースであり、コードをレビューし、変更し、再利用することができます(ライセンスの下で)。
アプリ Nearby Glasses は、あなたに関する詳細やあなたの電話に関する情報を保存したり収集したりしません。テレメトリ、広告、その他の迷惑要素はありません。Play Store経由でアプリをインストールした場合、Googleがあなたについて何かを知り、統計を収集する可能性があります。ただし、アプリ自体はそうしません。
ログファイルを保存(エクスポート)することを選択した場合、そのデータの行き先は完全にあなた自身とその責任に委ねられます。ログはローカルにのみ記録され、自動的に誰かと共有されることはありません。ログには少量の機密データが含まれますが、実際には、遭遇したBLEデバイスのメーカーIDコードのみです。

極めて注意して使用してください! 前述の通り、検出されたスマートグラスが本当に近くにあるという保証はありません。技術的に(BLEアドバタイジングレベルで)スマートグラスと似た別のデバイスである可能性があります。
軽率な行動はしないでください。メッセージに基づいて行動する前に考えてください(このアプリからのメッセージだけでなく)。

なぜ?

  • スマートグラスは耐え難い侵入であり、同意を無視し、すでにさまざまなそして同様に本当に嫌な「コンテンツ」を作るために使われている恐ろしい技術だと考えているからです。1, 2
  • 一部のスマートグラスには録画中を示す小さなLEDが搭載されています。しかし、これは簡単に無効化でき、メーカーはそれを防ぐと主張しながらも全く責任を取らない(テクノロジーは何十年もそうしてきた)。3
  • スマートグラスは以前から即時顔認識に使用されており4、将来的には標準機能として搭載されると報じられています5。これは多くの人々を危険にさらします。
  • そのデータはAIの訓練に使用され、つまり人々が録画をスクリーニングし、おそらく最も親密な内部情報を見ることになる6
  • このアプリが誰かの役に立つことを願っています。

どのように?

  • これは単純でヒューリスティックなアプローチです。BLEはランダム化MACを使用し、OSSIDは安定しておらず、サービス通知のUUIDも安定していないため、単にBluetoothビーコンをスキャンすることはできません。さらに、事態をさらに困難にしているのは、例えばMetaのように、独自のBluetoothサービスを使用し、UUIDが永続的ではないことです。現時点では通信されるデバイス名のみに頼ることができます。
  • 現在のところ最も実行可能なアプローチは、Bluetooth SIG割り当て番号リポジトリに由来します。これに従うと、メーカー企業名がBLEビーコンのパケットアドバタイジングヘッダ(ADV)に番号コードとして表示されます。
  • BLEアドバタイジングフレームは次のようになります:``` Frame 1: Advertising (ADV_IND) Time: 0.591232 s Address: C4:7C:8D:1E:2B:3F (Random Static) RSSI: -58 dBm

Flags: 02 01 06 Flags: LE General Discoverable Mode, BR/EDR Not Supported

Manufacturer Specific Data: Length: 0x1A Type: Manufacturer Specific Data (0xFF) Company ID: 0x058E (Meta Platforms Technologies, LLC) Data: 4D 45 54 41 5F 52 42 5F 47 4C 41 53 53

Service UUIDs: Complete List of 16-bit Service UUIDs 0xFEAA

root@kitploit:~
[Bluetooth SIG割り当て番号リポジトリ](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/HEAD/www.bluetooth.com/specifications/assigned-numbers/)によると、以下の企業IDを使用できます:
  - `0x01AB` は `Meta Platforms, Inc. (formerly Facebook)`
  - `0x058E` は `Meta Platforms Technologies, LLC`
  - `0x0D53` は `Luxottica Group S.p.A` (Meta Ray-Bansを製造)
  - `0x03C2` は `Snapchat, Inc.` (SNAP Spectaclesを製造)
  - `0x05D6` は `Zhuhai Jieli Technology Co` (Rogbird VisionProおよびRollme VistaViewを製造)
  これらは**不変かつ必須**です。もちろん、Metaや他のメーカーにはBluetoothを搭載した他の製品(例:VRヘッドセット)もあり、そのため固有のIDを持っています。したがって、アプリのスキャンプロセスでこれらの企業IDコードを使用すると、誤検知が発生しやすくなります。しかし、周囲にOculus Riftを着けている人が見えず、隠れられる建物もなければ、スマートグラスである可能性が高いです。
- ペアリング中、スマートグラスは通常、製品名を発信するので、それもスキャンできます。しかし、実際の現場でそれを見ることは稀です。バー、パブ、路上などでスマートグラスを使うつもりの人は、通常事前に準備しています。
- アプリが十分な信号強度(後述のRSSIを参照)を持つBluetooth Low Energy (BLE) デバイスを認識すると、警告メッセージをプッシュします。これにより、適切に対応できるようになります。
- さらに、`rayban`、`ray-ban`、`HeyCyan` などのブロードキャストされたデバイス名もスキャンします。`HeyCyan` は[様々なブランドのスマートグラス用の有名なSDK](https://github.com/ebowwa/HeyCyanSmartGlassesSDK)です。これらの *HeyCyan* デバイスの中には、ALDIやHofer(オーストリア)で販売されているNilox Smart AI Glassesも含まれます。これを強化するために、それらのグラスのソフトウェア側に固定されたサービス識別子である `primary_UUID`(`7905FFF0-B5CE-4E99-A40F-4B1E122D00D0`)も探します。これは将来変更される可能性はありますが、古いデバイスが使えなくなるため可能性は低く、その場合はスキャンルーチンにさらに多くのUUIDを追加するだけでしょう。
## 機能
- アプリ *Nearby Glasses* は、スマートグラスが近くにある(つまり、上記の企業IDのいずれかのBLEデバイス)ときに通知を表示します
- **近く**とは、RSSI(信号強度)が指定された値以下であることを意味します:デフォルトは-75 dBm。このデフォルト値は中程度の距離とまずまずの信号に対応します。
  ### RSSIとは?
- RSSI値について少し説明します:<br/>
RSSIはReceived Signal Strength Indicationの略です。この値は、無線通信アプリケーションの受信電界強度を示します。[Wikipediaにかなり良い記事があります](https://en.wikipedia.org/wiki/Received_signal_strength_indicator)。
簡単に言えば、RSSIは主に以下に依存します:<br/>
  - デバイスの送信電力
  - アンテナ設計
  - 壁や障害物
  - 信号を吸収する人体
  - 反射と干渉
  - デバイスの向き<br/>
しかし、一般的なBLE(Bluetooth Low Energy)シナリオでは、RSSIの大まかな距離(開放空間)は次のとおりです:<br/>
  - -60 dBm 〜 1 – 3 m<br/>
  - -70 dBm 〜 3 – 10 m<br/>
  - -80 dBm 〜 10 – 20 m<br/>
  - -90 dBm 〜 20 – 40 m<br/>
  - -100 dBm 〜 30 – 100+ m または信号喪失近く<br/>
屋内では、距離ははるかに短くなることが多いです。<br/>
RSSIはおおよそ次の式に従って低下します<br/>
    `RSSI ≈ -10 * n * log10(distance) + constant`<br/>
- したがって、デフォルトのRSSIしきい値-75 dBmは、開放空間で約10〜15メートル、屋内や混雑した場所では3〜10メートルに相当します。これでスマートグラスを装着した人物を見つける良いチャンスがあります。
- *Nearby Glasses* は、エクスポート可能(txtファイルとして)でコピー&ペースト機能を備えたオプションのデバッグログを表示します。これらは上級ユーザー(オタク)向けであり、さらなるデバッグ用です。
- *設定* では、ログの長さ、デバッグ(すべてのスキャンアイテムの表示かADVフレームのみか)を指定できます。
- 16進値の文字列として**企業ID**を入力することもできます(例:`0x01AB,0x058E,0x0D53`)。これにより組み込みの検出が上書きされ、新しい値に対して通知が表示されるようになります。
- 永続性を高めるため、Androidの*Foreground Service*を使用します。必要なければ*設定*で無効にできます。
- *設定*の*通知クールダウン*は、2つの警告の間に経過しなければならない時間を指定します。デフォルトは10000 ms(10秒)です。これはカナリアにも適用されます。たとえば10秒とは、カナリアが10秒間警告を続けた後、再び落ち着くことを意味します。
- 現在はよりローカライズされています:<img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary_hide.svg" align="right" alt="翼の下に隠れるカナリアの絵" height="100" width="100">
   - 英語
   - ドイツ語
   - スイスドイツ語
   - フランス語
   - スペイン語
   - 中国語(一部)
   - イタリア語
   - ポルトガル語(ブラジル)
   - ロシア語(一部)
   - その他も今後追加予定([あなたの言語でプロジェクトに貢献してください!](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/3))
- アプリアイコンの背景が透明ではなくなりました
- UUIDもスキャンするようになりました
- *Nearby Glasses* はダークモード(システム設定経由)をサポートするようになりました
- エッジツーエッジのレイアウト問題は[v1.0.4](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)以降修正されるはずです。
- 新たにAGPL 3.0でライセンス
- CLAを放棄することにしました。協力的プロジェクトについて私より詳しい人々と話し合った結果、これは不要なステップであるという洞察を得ました。
## iOSとAndroid
- 3週間後、ようやくiOSポートが利用可能になりました。ほとんどのiPhoneとiPadで動作するはずです(古いiOS 16まで対応)。[ソースコードとプロジェクトファイルも提供されています](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/HEAD/iOS/)。コードは見苦しく、非正統的です。多くのアプローチは迅速で粗雑です(例:Androidのローカライズからjsonファイルを再利用しています)が、今のところ動作しています。*Nearby Glasses* は[Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896)で入手可能です。(コピーキャットと区別するために「original」と呼ばれています)。サイドローディング用の.ipaは[リリース](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)で入手できます。
  iOSアプリはバックグラウンドでは動作しません。iOSの制限により、BTLE ADVを常時スキャンするために`ForegroundServices`に類似したものを使う方法が見つからなかったためです。そのため、iOSの*Nearby Glasses*では*カナリアモード*のみ利用可能です。もし私よりもSwiftとiOSに詳しい方がいれば、ぜひ貢献してください!
- このリポジトリにはAndroidとiOSの両方のアプリコードが含まれているため、フォルダを再構成しました。したがって、[/iOS/](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/HEAD/iOS/)と[/Android/](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/HEAD/Android/)があります。

## 使い方

- [リリース](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)からAPKをダウンロードするか、Google Playストアをご利用ください。F-DroidやAccrescentも後日対応予定です。
<img width="135" height="300" align ="right" alt="Nearby Glasses 設定のスクリーンショット" src="https://assets.kitploit.com/production/public/readmes/12083/71a0271ff9172cad52e8d83ed9a29ba43b509c7b250be2a0254a5a4371ee3401.png" />

<a href="https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses" target="_blank"><img width="239" height="71" alt="Google Playで入手" src="https://assets.kitploit.com/production/public/readmes/12083/a7dbeba4623dd255798dd1159e543cdbeeb9e43faa6db7f859b0f9ed3699932c.png" /></a> <a href="https://apps.apple.com/us/app/nearby-glasses-original/id6761056896"><img width="213" height="71" alt="App Storeからダウンロード" src="https://assets.kitploit.com/production/public/readmes/12083/a6fa504b048d52b4e9f5108021dce33af0d96b8b78c34095072971f4a34471fa.png" /></a>
1. アプリをインストールし([リリース](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)または[Google Play](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses)、あるいは[Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896)から)、開きます
2. *スキャン開始*ボタンを押します
3. Bluetoothを有効にする(まだの場合)および近くのデバイスにアクセスするための許可を付与します。Androidの一部のバージョンでは、位置情報へのアクセス許可も必要です(主にバージョン13以前)。*Nearby Glasses*は位置情報を一切使用しません。信じられない場合は、[コード](https://github.com/yjeanrenaud/yj_nearbyglasses/tree/main/app)をご確認ください
4. スキャンが開始されない場合は、特定の端末の*設定*メニューで*フォアグラウンドサービス*を有効にする必要があるかもしれません(下記参照)
5. 準備完了です!近くでスマートグラスが検出されると、通知が表示されます。*スキャン停止*を押すかアプリを完全に終了するまで通知が続きます
7. メニュー(右上の歯車アイコン)で、いくつかの*設定*を行えます:
   1. *フォアグラウンドサービスを有効にする*:これにより、Androidがアプリを一時停止して警告できなくなるのを防ぎます。有効にしておくことをお勧めします
   2. *RSSIしきい値*:この負の数値は、*Nearby Glasses*が警告の対象とするデバイスの距離を指定します。技術的には、信号の受信強度を指します。ゼロに近いほど信号が強く、つまり電話とスマートグラスの距離が近くなります。説明とガイダンスについては[上記のRSSIを参照](#how)。-75のままにしておくことをお勧めします
   3. *通知を有効にする*:無効にしたくないでしょう
   4. カナリアモード。これが新しいデフォルトです。これにより、近くのスマートグラスを知らせるシステム通知は表示されず、代わりにスマートグラスがいないことを示すカナリアが表示されます。iOSアプリは技術的制約のためカナリアモードのみです。 <img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary.svg" alt="カナリアの絵" width="100" height="100" alignt="left"> 
   5. *通知/カナリアクールダウン*:ここで、近くで発見されたスマートグラスに関する通知を何回受け取るか、またはカナリアを隠す時間を指定します。デフォルト値として10秒(10000 ms)を選びました。これにより、通知を見逃さず、同時にあまり煩わされず、バッテリーを消耗しすぎることもありません
   6. *ログ表示を有効にする*:無効にするとバッテリーを節約できるかもしれません。カナリアモードでは無効です。
   7. *デバッグ*:ログ表示フレームでマッチするBLEフレーム以上の情報を見るために必要です。動作状況を確認するのに便利です。カナリアモードでは無効です。
   8. *最大ログ行数*:ログの最大長。200はバッテリー寿命とログの有用性(私のようなオタクにとって)の良いバランスと思われます。カナリアモードでは無効です。
   9. *BLE ADVのみ*:これにより、ログから他のBluetooth LEフレームを除外して読みやすくします。カナリアモードでは無効です。
   10. *企業IDの上書き*:必要に応じて、上記以外のデバイスでも*Nearby Glasses*が警告するようにできます。デバッグに便利です(少なくとも私にとっては)。必要ない場合や何をすればよいかわからない場合は空のままにしてください
   11. すべての設定は保存され、即座に有効になります。戻るには、戻るボタンまたはジェスチャーを使用します
8. エクスポート機能を使用すると、アプリのログのテキストファイルを共有できます。私のようなオタク向けです
9. ログ表示フレームをタップしてログをコピー&ペーストすることもできます

## ToDo
- **野生での動作確認済み!** 何人かの人に実際にスマートグラスを周囲に置いてテストしてもらうことができました。特にLenaに感謝します!
- [リリース](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)からダウンロード可能なAPKを参照してください。
- *Nearby Glasses*を[Google Play](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses)にも公開しました。ただし、私は常に[GitHubのリリース](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)および[その他の場所](https://yves.app/nearbyglasses/latest.apk)にも公開します。Google Playを避けたい方向けです。

---

- 誤検知を無視リストに追加するオプションを追加。おそらく通知内で?
- 私はBTやAndroidの専門家ではありません。学んだことから、スマートグラスの通信をさらに深く掘り下げてBLEトラフィックをスニッフィングすることも可能でしょう。そうすれば、デバイスがBT仕様に従っていることに依存する必要がなく、暗号化されたトラフィックの送信に対してヒューリスティックを使用でき、誤検知も少なくなるでしょう。しかし、BTトラフィックパケットを10年以上見ていません。ADVフレームを覚えていただけでも良かったです... もし誰かがこれについて助けてくれるなら、大変ありがたいです!
---
- スマートグラスの**メーカーIDをさらに追加**。現時点ではMeta、Oakley、Snapです。カメラ付きスマートグラスの一覧もあれば助かります。このための[ISSUEを開いています](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/56)。他の録画用スマートグラスに遭遇した際にログ(私見では完全に安全)を送信して**支援**してくれるかもしれません。
- 2026年3月24日現在、iOS版も利用可能です。
- **Google Pixel端末**の**レイアウト問題**はバージョン1.0.3で修正されたようです。それでもメニューにアクセスできず、ステータスバーと混ざっている場合は、画面を横向きにして*時計回り(右)に回転*させてみてください。できるだけ早く調査します。

## テクノロジー・ソリューション主義?
これは奇妙な場所かもしれませんが、聞いてください。これが社会的問題に対する技術的解決策であり、それ自体がテクノロジーによって増幅されていることを認識しています。
私はテクノロジー・ソリューション主義を促進したいわけでも、人々に誤った安心感を与えたいわけでもありません。これは依然として不完全なアプローチであり、おそらく今後もそうでしょう。このアプリが存在するからといってすべてが良いわけではありません。監視技術とプライバシー侵害に対処するためには、より良い解決策が必要です。

## ソースからビルドする
*Nearby Glasses*はオープンソースであるため、ソースコードから自分でアプリをビルドすることもできます。これにより、APKに他のライブラリが含まれていないことが保証され、必要なものが得られます。

注意:このアプリは以下に依存しています:
- Gradle Wrapper: 8.13
- Android Gradle Plugin: 8.13.2
- Kotlin: 1.9.22
- compileSdk: 35
- targetSdk: 35
- minSdk: 26
- 製品フレーバーなし
- リポジトリ: google() と mavenCentral() のみ
- Google Services または Firebase プラグインなし

### 必要条件

- **JDK 17**(必須 — プロジェクトはJava 17をターゲットとしています)
- **Android SDK Platform 35**がインストールされていること  
  - compileSdk = 35  
  - targetSdk = 35  
- Git
### APKの段階的なビルド方法```bash
#Verify Java version:

 $java -version
#It must report Java 17.

#Get the source code
 $git clone https://github.com/yjeanrenaud/yj_nearbyglasses
 $cd yj_nearbyglasses

#Build Debug
 $./gradlew clean assembleDebug

#Build Release (with your own signature cert)
 $./gradlew clean assembleRelease

#Build unsigned Release for IzzyOnDroid / F-Droid
 $./gradlew clean izziFdroid 

#Run and Test
 $./gradlew test lint

謝辞

  • 警告について助けてくれた @[email protected]
  • カナリーモードのアイデアを指摘してくれた @[email protected]
  • ライセンスについての私の誤解を指摘してくれた @pojntfx
  • UXデザインのヒントをくれた Sarah-Jane B.
  • スペイン語への翻訳を担当してくれた Lena Radau
  • iOSアプリのフィードバックとテストをしてくれた Marcel L.
  • フィールドテストをしてくれた Lena Hansen
  • アプリに既にフィードバックを提供してくれた他のすべての方々

ライセンスとクレジット

アプリアイコン: アイコンは Freepik - Flaticon が作成した Eyeglass アイコン を基にしています。
ライセンス: このアプリ Nearby Glasses は AGPL-3.0 ライセンス の下で提供されています。
カナリー: カナリーのイラストは私が作成し、CC BY-SA 4.0 の下でライセンスされています。これらのイラストは生の SVG ファイル(InkScape で作成)として提供し、アプリのリソース用に XML に変換しました。

ツールをダウンロード