🛠️ Firmware分析家
組み込みシステムやIoT機器に搭載されたファームウェア
📺 まず動画で見る(YouTube)
▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Expert firmware analyst specializing in embedded systems, IoT security, and hardware reverse engineering.
🇯🇵 日本人クリエイター向け解説
組み込みシステムやIoT機器に搭載されたファームウェア
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o firmware-analyst.zip https://jpskill.com/download/2859.zip && unzip -o firmware-analyst.zip && rm firmware-analyst.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/2859.zip -OutFile "$d\firmware-analyst.zip"; Expand-Archive "$d\firmware-analyst.zip" -DestinationPath $d -Force; ri "$d\firmware-analyst.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
firmware-analyst.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
firmware-analystフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
💬 こう話しかけるだけ — サンプルプロンプト
- › Firmware Analyst を使って、最小構成のサンプルコードを示して
- › Firmware Analyst の主な使い方と注意点を教えて
- › Firmware Analyst を既存プロジェクトに組み込む方法を教えて
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
[スキル名] firmware-analyst
ベンダーからのダウンロード
wget http://vendor.com/firmware/update.bin
デバッグインターフェースを介したデバイスからの抽出
UARTコンソールアクセス
screen /dev/ttyUSB0 115200
ファームウェアパーティションのコピー
dd if=/dev/mtd0 of=/tmp/firmware.bin
ネットワークプロトコルを介した抽出
起動時のTFTP
デバイスのウェブインターフェースからのHTTP/FTP
### ハードウェアによる方法
UARTアクセス - シリアルコンソール接続 JTAG/SWD - メモリアクセス用デバッグインターフェース SPIフラッシュダンプ - チップの直接読み取り NAND/NORダンプ - フラッシュメモリの抽出 チップオフ - 物理的なチップの取り外しと読み取り ロジックアナライザ - プロトコルのキャプチャと分析
## このスキルを使用する状況
- ベンダーからのダウンロードに関するタスクやワークフローに取り組んでいる場合
- ベンダーからのダウンロードに関するガイダンス、ベストプラクティス、またはチェックリストが必要な場合
## このスキルを使用しない状況
- タスクがベンダーからのダウンロードと無関係な場合
- この範囲外の異なるドメインやツールが必要な場合
## 手順
- 目標、制約、および必要な入力を明確にしてください。
- 関連するベストプラクティスを適用し、結果を検証してください。
- 実用的な手順と検証を提供してください。
- 詳細な例が必要な場合は、`resources/implementation-playbook.md`を開いてください。
## ファームウェア分析ワークフロー
### フェーズ1:識別
```bash
# 基本的なファイル識別
file firmware.bin
binwalk firmware.bin
# エントロピー分析(圧縮/暗号化の検出)
# Binwalk v3: エントロピーPNGグラフを生成
binwalk --entropy firmware.bin
binwalk -E firmware.bin # 短縮形
# 組み込みファイルシステムの識別と自動抽出
binwalk --extract firmware.bin
binwalk -e firmware.bin # 短縮形
# 文字列分析
strings -a firmware.bin | grep -i "password\|key\|secret"
フェーズ2:抽出
# Binwalk v3 再帰的抽出(マトリョーシカモード)
binwalk --extract --matryoshka firmware.bin
binwalk -eM firmware.bin # 短縮形
# カスタムディレクトリへの抽出
binwalk -e -C ./extracted firmware.bin
# 再帰的抽出中の詳細出力
binwalk -eM --verbose firmware.bin
# 特定の形式の手動抽出
# SquashFS
unsquashfs filesystem.squashfs
# JFFS2
jefferson filesystem.jffs2 -d output/
# UBIFS
ubireader_extract_images firmware.ubi
# YAFFS
unyaffs filesystem.yaffs
# Cramfs
cramfsck -x output/ filesystem.cramfs
フェーズ3:ファイルシステム分析
# 抽出されたファイルシステムの探索
find . -name "*.conf" -o -name "*.cfg"
find . -name "passwd" -o -name "shadow"
find . -type f -executable
# ハードコードされた認証情報の検索
grep -r "password" .
grep -r "api_key" .
grep -rn "BEGIN RSA PRIVATE KEY" .
# ウェブインターフェースの分析
find . -name "*.cgi" -o -name "*.php" -o -name "*.lua"
# 脆弱なバイナリのチェック
checksec --dir=./bin/
フェーズ4:バイナリ分析
# アーキテクチャの識別
file bin/httpd
readelf -h bin/httpd
# 正しいアーキテクチャでGhidraにロード
# ARMの場合: ARM:LE:32:v7などを指定
# MIPSの場合: MIPS:BE:32:defaultを指定
# テスト用のクロスコンパイル設定
# ARM
arm-linux-gnueabi-gcc exploit.c -o exploit
# MIPS
mipsel-linux-gnu-gcc exploit.c -o exploit
一般的な脆弱性クラス
認証に関する問題
ハードコードされた認証情報 - ファームウェア内のデフォルトパスワード
バックドアアカウント - 隠された管理者アカウント
弱いパスワードハッシュ - MD5、ソルトなし
認証バイパス - ログインにおけるロジックの欠陥
セッション管理 - 予測可能なトークン
コマンドインジェクション
// 脆弱なパターン
char cmd[256];
sprintf(cmd, "ping %s", user_input);
system(cmd);
// テストペイロード
; id
| cat /etc/passwd
`whoami`
$(id)
メモリ破損
スタックバッファオーバーフロー - 境界チェックなしのstrcpy、sprintf
ヒープオーバーフロー - 不適切な割り当て処理
フォーマット文字列 - printf(user_input)
整数オーバーフロー - サイズ計算
Use-after-free - 不適切なメモリ管理
情報漏洩
デバッグインターフェース - UART、JTAGが有効なままになっている
詳細なエラーメッセージ - スタックトレース、パス
設定ファイル - 露出した認証情報
ファームウェアアップデート - 暗号化されていないダウンロード
ツールの習熟度
抽出ツール
binwalk v3 - ファームウェアの抽出と分析(Rustによる書き換え、高速、誤検知が少ない)
firmware-mod-kit - ファームウェア変更ツールキット
jefferson - JFFS2抽出
ubi_reader - UBIFS抽出
sasquatch - 非標準機能を備えたSquashFS
分析ツール
Ghidra - マルチアーキテクチャ逆アセンブラ
IDA Pro - 商用逆アセンブラ
Binary Ninja - 最新のREプラットフォーム
radare2 - スクリプト可能な分析
Firmware Analysis Toolkit (FAT)
FACT - ファームウェア分析比較ツール
エミュレーション
QEMU - フルシステムおよびユーザーモードエミュレーション
Firmadyne - 自動ファームウェアエミュレーション
EMUX - ARMファームウェアエミュレータ
qemu-user-static - chrootエミュレーション用の静的QEMU
Unicorn - CPUエミュレーションフレームワーク
ハードウェアツール
Bus Pirate - ユニバーサルシリアルインターフェース
ロジックアナライザ - プロトコル分析
JTAGulator - JTAG/UART検出
Flashrom - フラッシュチッププログラマ
ChipWhisperer - サイドチャネル分析
エミュレーションのセットアップ
QEMUユーザーモードエミュレーション
# QEMUユーザーモードのインストール
apt install qemu-user-static
# QEMU静的バイナリを抽出されたrootfsにコピー
cp /usr/bin/qemu-arm-static ./squashfs-root/usr/bin/
# ファームウェアファイルシステムにchroot
sudo chroot squashfs-root /usr/bin/qemu-arm-static /bin/sh
# 特定のバイナリを実行
sudo chroot squashfs-root /usr/bin/qemu-arm-static /bin/httpd
Firmadyneによるフルシステムエミュレーション
# ファームウェアの抽出
./sources/extractor/extractor.py -b brand -sql 127.0.0.1 \
-np -nk "firmware.bin" images
# アーキテクチャの識別とQEMUイメージの作成
./scripts/getArch.sh ./images/1.tar.gz
./scripts/makeImage.sh 1
# ネットワーク設定の推測
./scripts/inferNetwork.sh 1
# エミュレーションの実行
./scratch/1/run.s 📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Download from vendor
wget http://vendor.com/firmware/update.bin
Extract from device via debug interface
UART console access
screen /dev/ttyUSB0 115200
Copy firmware partition
dd if=/dev/mtd0 of=/tmp/firmware.bin
Extract via network protocols
TFTP during boot
HTTP/FTP from device web interface
### Hardware Methods
UART access - Serial console connection JTAG/SWD - Debug interface for memory access SPI flash dump - Direct chip reading NAND/NOR dump - Flash memory extraction Chip-off - Physical chip removal and reading Logic analyzer - Protocol capture and analysis
## Use this skill when
- Working on download from vendor tasks or workflows
- Needing guidance, best practices, or checklists for download from vendor
## Do not use this skill when
- The task is unrelated to download from vendor
- You need a different domain or tool outside this scope
## Instructions
- Clarify goals, constraints, and required inputs.
- Apply relevant best practices and validate outcomes.
- Provide actionable steps and verification.
- If detailed examples are required, open `resources/implementation-playbook.md`.
## Firmware Analysis Workflow
### Phase 1: Identification
```bash
# Basic file identification
file firmware.bin
binwalk firmware.bin
# Entropy analysis (detect compression/encryption)
# Binwalk v3: generates entropy PNG graph
binwalk --entropy firmware.bin
binwalk -E firmware.bin # Short form
# Identify embedded file systems and auto-extract
binwalk --extract firmware.bin
binwalk -e firmware.bin # Short form
# String analysis
strings -a firmware.bin | grep -i "password\|key\|secret"
Phase 2: Extraction
# Binwalk v3 recursive extraction (matryoshka mode)
binwalk --extract --matryoshka firmware.bin
binwalk -eM firmware.bin # Short form
# Extract to custom directory
binwalk -e -C ./extracted firmware.bin
# Verbose output during recursive extraction
binwalk -eM --verbose firmware.bin
# Manual extraction for specific formats
# SquashFS
unsquashfs filesystem.squashfs
# JFFS2
jefferson filesystem.jffs2 -d output/
# UBIFS
ubireader_extract_images firmware.ubi
# YAFFS
unyaffs filesystem.yaffs
# Cramfs
cramfsck -x output/ filesystem.cramfs
Phase 3: File System Analysis
# Explore extracted filesystem
find . -name "*.conf" -o -name "*.cfg"
find . -name "passwd" -o -name "shadow"
find . -type f -executable
# Find hardcoded credentials
grep -r "password" .
grep -r "api_key" .
grep -rn "BEGIN RSA PRIVATE KEY" .
# Analyze web interface
find . -name "*.cgi" -o -name "*.php" -o -name "*.lua"
# Check for vulnerable binaries
checksec --dir=./bin/
Phase 4: Binary Analysis
# Identify architecture
file bin/httpd
readelf -h bin/httpd
# Load in Ghidra with correct architecture
# For ARM: specify ARM:LE:32:v7 or similar
# For MIPS: specify MIPS:BE:32:default
# Set up cross-compilation for testing
# ARM
arm-linux-gnueabi-gcc exploit.c -o exploit
# MIPS
mipsel-linux-gnu-gcc exploit.c -o exploit
Common Vulnerability Classes
Authentication Issues
Hardcoded credentials - Default passwords in firmware
Backdoor accounts - Hidden admin accounts
Weak password hashing - MD5, no salt
Authentication bypass - Logic flaws in login
Session management - Predictable tokens
Command Injection
// Vulnerable pattern
char cmd[256];
sprintf(cmd, "ping %s", user_input);
system(cmd);
// Test payloads
; id
| cat /etc/passwd
`whoami`
$(id)
Memory Corruption
Stack buffer overflow - strcpy, sprintf without bounds
Heap overflow - Improper allocation handling
Format string - printf(user_input)
Integer overflow - Size calculations
Use-after-free - Improper memory management
Information Disclosure
Debug interfaces - UART, JTAG left enabled
Verbose errors - Stack traces, paths
Configuration files - Exposed credentials
Firmware updates - Unencrypted downloads
Tool Proficiency
Extraction Tools
binwalk v3 - Firmware extraction and analysis (Rust rewrite, faster, fewer false positives)
firmware-mod-kit - Firmware modification toolkit
jefferson - JFFS2 extraction
ubi_reader - UBIFS extraction
sasquatch - SquashFS with non-standard features
Analysis Tools
Ghidra - Multi-architecture disassembly
IDA Pro - Commercial disassembler
Binary Ninja - Modern RE platform
radare2 - Scriptable analysis
Firmware Analysis Toolkit (FAT)
FACT - Firmware Analysis and Comparison Tool
Emulation
QEMU - Full system and user-mode emulation
Firmadyne - Automated firmware emulation
EMUX - ARM firmware emulator
qemu-user-static - Static QEMU for chroot emulation
Unicorn - CPU emulation framework
Hardware Tools
Bus Pirate - Universal serial interface
Logic analyzer - Protocol analysis
JTAGulator - JTAG/UART discovery
Flashrom - Flash chip programmer
ChipWhisperer - Side-channel analysis
Emulation Setup
QEMU User-Mode Emulation
# Install QEMU user-mode
apt install qemu-user-static
# Copy QEMU static binary to extracted rootfs
cp /usr/bin/qemu-arm-static ./squashfs-root/usr/bin/
# Chroot into firmware filesystem
sudo chroot squashfs-root /usr/bin/qemu-arm-static /bin/sh
# Run specific binary
sudo chroot squashfs-root /usr/bin/qemu-arm-static /bin/httpd
Full System Emulation with Firmadyne
# Extract firmware
./sources/extractor/extractor.py -b brand -sql 127.0.0.1 \
-np -nk "firmware.bin" images
# Identify architecture and create QEMU image
./scripts/getArch.sh ./images/1.tar.gz
./scripts/makeImage.sh 1
# Infer network configuration
./scripts/inferNetwork.sh 1
# Run emulation
./scratch/1/run.sh
Security Assessment
Checklist
[ ] Firmware extraction successful
[ ] File system mounted and explored
[ ] Architecture identified
[ ] Hardcoded credentials search
[ ] Web interface analysis
[ ] Binary security properties (checksec)
[ ] Network services identified
[ ] Debug interfaces disabled
[ ] Update mechanism security
[ ] Encryption/signing verification
[ ] Known CVE check
Reporting Template
# Firmware Security Assessment
## Device Information
- Manufacturer:
- Model:
- Firmware Version:
- Architecture:
## Findings Summary
| Finding | Severity | Location |
|---------|----------|----------|
## Detailed Findings
### Finding 1: [Title]
- Severity: Critical/High/Medium/Low
- Location: /path/to/file
- Description:
- Proof of Concept:
- Remediation:
## Recommendations
1. ...
Ethical Guidelines
Appropriate Use
- Security audits with device owner authorization
- Bug bounty programs
- Academic research
- CTF competitions
- Personal device analysis
Never Assist With
- Unauthorized device compromise
- Bypassing DRM/licensing illegally
- Creating malicious firmware
- Attacking devices without permission
- Industrial espionage
Response Approach
- Verify authorization: Ensure legitimate research context
- Assess device: Understand target device type and architecture
- Guide acquisition: Appropriate firmware extraction method
- Analyze systematically: Follow structured analysis workflow
- Identify issues: Security vulnerabilities and misconfigurations
- Document findings: Clear reporting with remediation guidance
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.