HardBreak - 初心者向けオープンソースのハードウェアハッキングWiki
(hardbreak.wiki)- HardBreakは、ハードウェアハッキングとIoTハッキングの知識を一か所に集める無料の協働Wikiで、散在する資料を初心者が追いやすい文書構成に整理している
- スタートガイドでは、最初の対象機器の選び方、必須ツール、方法論、実際のケーススタディを順に扱い、ハードウェアハッキング入門の流れをつかめるようにしている
- 文書はハードウェアハッキング、ネットワーク分析、無線ハッキングに分かれており、UART、JTAG、SWD、SPI、I2C、電圧グリッチング、ファームウェア解析、ドローンプロトコルのリバースエンジニアリングまで含む
- 貢献者はGitHubリポジトリにプルリクエストを送るか、誤りを報告でき、他の執筆者のコンテンツを含める場合は元の出典またはブログを参照する必要がある
- Wikiの戦略と助言は教育および情報提供目的に限定されており、実際に適用する前の再確認と責任ある利用が必要である
HardBreakの目的とアクセス方法
- HardBreakは、ハードウェアハッキング / IoTハッキングに関する知識を一か所に集約する無料の協働Wikiである
- 複数のブログに異なる形式で散らばっている情報を探さなければならない不便さを減らし、アクセスしやすく使いやすいプラットフォームとして整理することを目標としている
- 全文書のインデックスはllms.txtで確認でき、このページはMarkdown形式でも提供されている
- コミュニティはDiscordでハードウェアハッキングとIoTセキュリティの議論、進行中のプロジェクト共有、Wikiコンテンツへのフィードバックや要望を受け付けている
- Discord招待リンク: https://discord.gg/AWVsKxJHvQ
文書構成と学習範囲
- 入門セクションでは、ハードウェアハッキングを初めて始める際に必要な選択と手順を案内している
- How to start: 最初の対象機器の選び方と必須ツール
- Methodology: 始め方の方法論
- Case Study: 実際のケーススタディ
- ハードウェアハッキングのセクションは、機器を調査するトップダウンアプローチを中心に構成されている
- Basics: ハードウェアツール、ソフトウェアツール、一般的なハードウェアコンポーネント
- Reconnaissance: OSINTとボード解析
- Interface Interaction: UART、JTAG、SWD、SPI、I2Cのようなプロトコルの識別と利用
- Extract firmware using UART: デバッグプロトコルを用いたファームウェア抽出
- Voltage Glitching: セキュリティ機構を回避する技法
- Analyze Firmware: ファームウェア解析
- ネットワークおよび無線ハッキングのセクションでは、プロトコル解析と無線ツールをあわせて扱う
- Drone reverse engineering: ドローンプロトコルのリバースエンジニアリング
- RTL-SDR, Flipper Zero: 無線ハッキングツール
- RFID, NFC: 無線プロトコルとハッキング手法
貢献と利用時の注意点
- 貢献はGitHub repositoryにプルリクエストを送るか、誤りを報告する形で行える
- 貢献者はコンテンツの正確性維持に役立てる
- 他の執筆者のコンテンツを含める場合は、元の出典またはブログを参照する必要がある
- 初めてのプルリクエスト手順はContribution Guideで案内されている
- Wikiは貢献者の知識と意図に基づいて作られているが、誤りが含まれる可能性がある
- 助言や戦略を実際に適用する前には再確認する必要がある
- サイトの戦略と助言は教育および情報提供目的に限定される
- 違法または非倫理的な行為を支持または推奨するものではなく、利用者は自己責任で情報を用いる必要がある
1件のコメント
Hacker News のコメント
Wiki には感謝しているけれど、ハードウェアハッキングにはずっと関心がありつつ、どこから始めればいいのか分からず圧倒されていた立場からすると、こういう資料、特にケーススタディは大いに役立ちそうに見える
ただ、かなりの部分が LLM で生成されたか、少なくとも LLM で書き直されたように感じられて、読み味が平板
たとえばケーススタディのページ(https://www.hardbreak.wiki/introduction/case-study-led-to-a-...)では、ほぼ同じ段落が並んで出てくるが、2つ目が原文で、1つ目が LLM によるリライト版のように見える
誤字修正や表現のブラッシュアップに LLM を使うこと自体には反対しないが、自分の文体は残すべき。今は内容があまりに平板で、さらに見て回りたいという動機が湧きにくい
モデルが何を説明しているのか理解しているなら、主要な電気工学ツールを物理実験室式に導出する過程は必ずしも必要ではない
AI はゴミを入れればゴミが出てくるし、学生にとっては危険になり得る
すべての学生は John Shive の Wave Machines から始めるべき: https://www.youtube.com/watch?v=DovunOxlY1k
1つは「ASUS RT-N12 D1」というモデル名を検索して、似た「ASUS RT-N12+ B1」モデルに開いた UART インターフェースと認証なしの root アクセスの可能性があることを発見した、という内容で、その直後の段落も実質的に同じ内容を、より原文に近い文体で繰り返している
一般的な意味でのオープンソースではない
license.md [0] の “Terms” の下に “Exemptions: Commercial Use: For inquiries regarding commercial use, please contact the author.” とある
[0] https://github.com/f3nter/HardBreak/blob/fd3d2d4cd17624a3f62...
正確な出典は示せないが、要点はこうだ。オープンソース、より正確には自由ソフトウェアや自由文化は、創作者のための概念ではなく、ユーザーが望む方法で著作物を使う権利、販売する権利まで含めて保証する概念だ
よく「無料のビールではなく、表現の自由における自由」と訂正される。値札が問題なのではなく、ユーザーの自由が核心であり、商業的再利用の自由も含まれる。制限できる自由があるとすれば、ほぼ唯一、他人の自由を制限する自由くらいだ
同意しないことはできるが、今日のソフトウェア世界のかなりの部分を作った自由ソフトウェア・自由文化・オープンソース運動の歴史はそういうものだ
タイミングがとても良い。最近、小さな娘と学ぼうと思って micro:bit を買ったのだが、娘は気に入っている一方で、ボードのごく基本的なカスタマイズだけでもすぐに手に負えなくなった
今や引き出しはブレッドボード、ワニ口クリップ、ジャンパーワイヤ、LCD、さまざまな電子部品であふれかえっていて、これらすべてがどう動くのかを基礎から切実に理解する必要がある状態
それでも、自分のコードで自分のハードウェア部品を制御できるのは魔法のようで中毒性がある。LED を点灯させたり赤外線受信機をプログラムしたりするだけでも大きな楽しさがあった
いいね。これを組み込み資料集に入れておく
https://hardwareteams.com/docs/embedded/embedded-resources/
良い。音楽機材などを改造するときによく使われるサーキットベンディングの手法も、いずれ含まれるといい
[1]. https://en.wikipedia.org/wiki/Circuit_bending
https://circuitbending.miraheze.org/wiki/Circuit_Bending
些細な指摘だが、他の場所にリンクしたときにサイトが何なのか説明されるよう、meta/og description[0] にサイト説明を入れるとよさそう
たとえばページ本文にある “This page is a free and open-source wiki about hardware hacking!” のような文言で十分
Slack にリンクしたら “hardbreak.wiki / Welcome to HardBreak | Hardbreak” だけが表示されて、あまりに簡潔だった。Wiki ソフトウェアにこうしたタグを自動で埋める設定があるかもしれない
[0] https://ogp.me/
最初のページ名である “Welcome to HardBreak” を取得して、末尾にサイト名 “HardBreak” を付けているようだ
なので最初のページ名を変える必要があるが、“HardBreak - a Hardware Hacking Wiki” のような名前はウェブサイト内で見ると不自然に思える。まだ良い解決策は見つけられていない
自己宣伝だが、Rockchip SoC 開発を始めたい人向けに、AI なしで作った資料がある: https://danielc.dev/rk/
素晴らしい
ずっとアプリケーションセキュリティ側にいたが、だんだんハードウェアハッキングに関心が出てきている
ざっと探してみると資料があちこちに散らばっていて、最良の学習方法は実際に知っている人と一緒に作業することのように思えた
こうしたガイドやロードマップなどを一か所にまとめているのは本当に良い資料なので、ぜひ使ってみるつもり
AI 生成のデタラメだ
近くの公共図書館に行って、2020年以前に出た本を何でも一冊手に取るほうがいい
検索に
strings[1] を使うより、rz-bin[2] とrz-find[3] ツールを勧めるより柔軟で、データセクション外の文字列検索、Unicode やあまり一般的でないエンコーディングの検索、埋め込み暗号鍵の検索に対応している
Rizin 自体にも
/検索コマンドがある。エントロピーには設定可能な対話型ヒストグラムがあるので、p=とp==コマンド、たとえばp==eを見ればよい[1] https://book.rizin.re/src/search_bytes/intro.html
[2] https://book.rizin.re/src/tools/rz-bin/strings.html
[3] https://book.rizin.re/src/tools/rz-find/intro.html