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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
openocd — 公式OpenOCD読み取り専用ミラー(プルリクエスト不可) | Kitploit
ツール/GitHubGitHub/openocd-org/openocd
組み込みシステムセキュリティリバースエンジニアリングデバッガハードウェアハッキングハードウェアセキュリティハードウェアとIoTセキュリティファームウェア解析
GitHubopenocd-org/openocd

openocd

公式OpenOCD読み取り専用ミラー(プルリクエスト不可)

リポジトリを見る
2.3k1.0k3日前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

OpenOCDへようこそ

OpenOCDは、JTAGインタフェースとTAPサポートの階層化アーキテクチャにより、オンチッププログラミングとデバッグをサポートします。これには以下が含まれます:

  • (X)SVF再生による自動バウンダリスキャンとFPGA/CPLDプログラミングの容易化;
  • デバッグターゲットサポート(例:ARM、MIPS):シングルステップ、ブレークポイント/ウォッチポイント、gprofプロファイリングなど;
  • フラッシュチップドライバ(例:CFI、NAND、内蔵フラッシュ);
  • スクリプト作成を容易にする組み込みTclインタプリタ。

OpenOCDとの対話には、telnet、Tcl、GDBのいくつかのネットワークインタフェースが利用可能です。GDBサーバにより、OpenOCDはGNU GDBプログラム(およびGDBプロトコルを話す他のプログラム、例:IDA Pro)を使用したエンベデッドシステムのソースレベルデバッグのための「リモートターゲット」として機能します。

このREADMEファイルは、以下のトピックの概要を含みます:

  • クイックスタート手順、
  • OpenOCDのさらなるドキュメントの入手と構築方法、
  • サポートされているハードウェアのリスト、
  • インストールとビルドプロセス、
  • パッケージングのヒント。

せっかちな人のためのクイックスタート

一般的なボードをお持ちの場合は、その設定ファイルでOpenOCDを起動するだけです。例:

root@kitploit:~
openocd -f board/stm32f4discovery.cfg

特定のアダプタを特定のターゲットに接続する場合は、JTAGインタフェースとターゲットの両方の設定ファイルを読み込む必要があります。例:

root@kitploit:~
openocd -f interface/ftdi/jtagkey2.cfg -c "transport select jtag" \
        -f target/ti/calypso.cfg
root@kitploit:~
openocd -f interface/stlink.cfg -c "transport select swd" \
        -f target/stm32l0.cfg

OpenOCD起動後、GDBを次のように接続します:

root@kitploit:~
(gdb) target extended-remote localhost:3333

OpenOCDのインストール

OpenOCDをインストールする最も簡単な方法は、お使いのオペレーティングシステムのパッケージマネージャを使用することです。

  • Debian / Ubuntu

    root@kitploit:~
    sudo apt install openocd
    
  • Fedora

    root@kitploit:~
    sudo dnf install openocd
    
  • macOS(Homebrew経由)

    root@kitploit:~
    brew install open-ocd
    
  • Windows(MSYS2経由)

    root@kitploit:~
    pacman -S mingw-w64-x86_64-openocd
    

これらのパッケージは、活発な開発が行われている最新のGitメインラインよりも安定していることがよくあります。 「パッケージャ」は、開発者が新しいソースコードリリースを公開した後、OpenOCDのバイナリリリースを作成します。 古いバージョンのOpenOCDは、現在のリリースの問題診断には適していません。 ユーザーは、定期的に適切なアップデートが提供されるよう、ディストリビューションのメンテナまたはインタフェースベンダーと連絡を取り合う必要があります。

これらのバイナリパッケージのいずれかを使用する場合は、サポートや新しいバイナリバージョンについてパッケージャに連絡する必要があります。 OpenOCD開発者は、パッケージ化されたバイナリの直接サポートを提供していません。

OpenOCDパッケージャへの注意

以下の場合、あなたはOpenOCDのパッケージャです:

  • ドングルを販売し、プリビルドバイナリを含める;
  • ツールやIDE(OpenOCDを統合した開発ソリューション)を提供する;
  • パッケージ(例:GNU/Linuxディストリビューション用のRPMまたはDEBファイル)をビルドする。

パッケージャとして、あなたはほとんどの問題の最初の報告を受けることになります。 それらの問題をユーザーのために修正する際、あなたの解決策は他のユーザーからの数百(場合によっては何千もの)の質問を防ぐのに役立つかもしれません。 何かがうまくいかない場合は、将来の問題を避けるためにシステムやドキュメントを改善する方法をOpenOCD開発者に知らせるよう努め、問題が今後のリリースで完全に解決されるようフォローアップにご協力ください。

とはいえ、OpenOCD開発者は以下のようないくつかの提案に従っていただきたいと考えています:

  • 設定ファイルを含むパッチを上流に送り、議論に参加してください;
  • 特定のハードウェアに関係のないオプションも含め、OpenOCDがサポートするすべてのオプションを有効にしてください;
  • FTDIベースのデバイスには「ftdi」インタフェースアダプタドライバを使用してください。

OpenOCDドキュメント

ツリー内のドキュメントに加えて、最新のマニュアルは以下のURLでオンラインで閲覧できます:

  • OpenOCD User's Guide: http://openocd.org/doc/html/index.html

  • OpenOCD Developer's Manual: http://openocd.org/doc/doxygen/html/index.html

これらは最新の開発バージョンを反映しているため、次のセクションではパッケージから完全なドキュメントをビルドする方法を紹介します。

詳細については、これらのドキュメントを参照するか、OpenOCD開発者メーリングリスト([email protected])に登録して開発者に連絡してください。

OpenOCDドキュメントのビルド

デフォルトでは、OpenOCDのビルドプロセスは「Info形式」でドキュメントを準備し、標準的な方法でインストールするため、info openocd でアクセスできます。

さらに、OpenOCDユーザーガイドは以下の異なる形式で生成できます:

PDFVIEWER が設定されている場合、これによりPDFユーザーガイドが作成・表示されます。

root@kitploit:~
make pdf && ${PDFVIEWER} doc/openocd.pdf

HTMLVIEWER が設定されている場合、これによりHTMLユーザーガイドが作成・表示されます。

root@kitploit:~
make html && ${HTMLVIEWER} doc/openocd.html/index.html

OpenOCD開発者マニュアルには、内部アーキテクチャやコードの詳細に関する情報が含まれています:

注意:doxygenがインストールされていることを確認し、doxygen --version と入力してください

root@kitploit:~
make doxygen && ${HTMLVIEWER} doxygen/index.html

サポートされているハードウェア

JTAGアダプタ

AM335x, ARM-JTAG-EW, ARM-USB-OCD, ARM-USB-TINY, AT91RM9200, axm0432, BCM2835, Bus Blaster, Buspirate, Cadence DPI, Cadence vdebug, Chameleon, CMSIS-DAP, Cortino, Cypress KitProg, DENX, Digilent JTAG-SMT2, DLC 5, DLP-USB1232H, embedded projects, Espressif USB JTAG Programmer, eStick, FlashLINK, FlossJTAG, Flyswatter, Flyswatter2, FTDI FT232R, Gateworks, Hoegl, ICDI, ICEBear, J-Link, JTAG VPI, JTAGkey, JTAGkey2, JTAG-lock-pick, KT-Link, Linux GPIOD, Lisa/L, LPC1768-Stick, Mellanox rshim, MiniModule, NGX, Nuvoton Nu-Link, Nu-Link2, NXHX, NXP IMX GPIO, OOCDLink, Opendous, OpenJTAG, Openmoko, OpenRD, OSBDM, Presto, Redbee, Remote Bitbang, RLink, SheevaPlug devkit, Stellaris evkits, ST-LINK (SWOトレース対応), STM32-PerformanceStick, STR9-comStick, sysfsgpio, Tigard, TI XDS110, TUMPA, Turtelizer, ULINK, USB-A9260, USB-Blaster, USB-JTAG, USBprog, VPACLink, VSLLink, Wiggler, XDS100v2, Xilinx XVC/PCIe, Xverve.

デバッグターゲット

ARM: AArch64, ARM11, ARM7, ARM9, Cortex-A/R (v7-A/R), Cortex-M (ARMv{6/7/8}-M), FA526, Feroceon/Dragonite, XScale. ARCv2, AVR32, DSP563xx, DSP5680xx, EnSilica eSi-RISC, EJTAG (MIPS32, MIPS64), ESP32, ESP32-S2, ESP32-S3, Intel Quark, LS102x-SAP, RISC-V, ST STM8, Xtensa.

フラッシュドライバ

ADUC702x, AT91SAM, AT91SAM9 (NAND), ATH79, ATmega128RFA1, Atmel SAM, AVR, CFI, DSP5680xx, EFM32, EM357, eSi-RISC, eSi-TSMC, EZR32HG, FM3, FM4, Freedom E SPI, GD32, i.MX31, Kinetis, LPC8xx/LPC1xxx/LPC2xxx/LPC541xx, LPC2900, LPC3180, LPC32xx, LPCSPIFI, Marvell QSPI, MAX32, Milandr, MXC, NIIET, nRF51, nRF52 , NuMicro, NUC910, Nuvoton NPCX, onsemi RSL10, Orion/Kirkwood, PIC32mx, PSoC4/5LP/6, Raspberry RP2040, Renesas RPC HF and SH QSPI, S3C24xx, S3C6400, SiM3x, SiFive Freedom E, Stellaris, ST BlueNRG, STM32, STM32 QUAD/OCTO-SPI for Flash/FRAM/EEPROM, STMSMI, STR7x, STR9x, SWM050, TI CC13xx, TI CC26xx, TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF, XMC1xxx, XMC4xxx.

OpenOCDのビルド

INSTALLファイルには、configureを実行しOpenOCDソースコードをコンパイルするための一般的な手順が含まれています。このファイルは、すべてのGNU autotoolsパッケージでデフォルトで提供されます。GNU autotoolsに馴染みがない場合は、まずその手順をお読みください。

注意:INSTALLファイルが存在しない場合、それはOpenOCDリリースからではなく、開発ブランチからソースコードを使用していることを意味します。その場合は、以下の「OpenOCDのコンパイル」の手順に従ってください。ファイルは最初のコマンド ./bootstrap によって作成されます。

このドキュメントの残りの部分では、クイックインストールを求める人向けの手順を提供しようとしています。

OpenOCDの依存関係

現在、OpenOCDをビルドするにはGCCまたはClangが必要です。開発者は厳格なコード警告(-Wall、-Werror、-Wextraなど)を適用し、C99固有の機能(インライン関数、名前付き初期化子、宣言とコードの混在など)を使用し始めています。他のコンパイラを使用することも可能かもしれませんが、それらはある程度モダンである必要があり、条件付きでGCC固有の拡張を削除するためのサポート拡張が必要になる可能性があります。

また、以下が必要です:

  • make
  • libtool
  • pkg-config >= 0.23 または pkgconf
  • libjim >= 0.79

さらに、Gitからビルドする場合:

  • autoconf >= 2.69
  • automake >= 1.14
  • texinfo >= 5.0

オプションのUSBベースのアダプタドライバにはlibusb-1.0が必要です。

オプションのUSB-Blaster、ASIX Presto、OpenJTAGインタフェースアダプタドライバには、libftdiライブラリが必要です。

オプションのCMSIS-DAPアダプタドライバにはHIDAPIライブラリが必要です。

オプションのlinuxgpiodアダプタドライバにはlibgpiodライブラリが必要です。

オプションのJ-Linkアダプタドライバにはlibjaylinkライブラリが必要です。

オプションのARM逆アセンブルにはcapstoneライブラリが必要です。

オプションの開発スクリプトcheckpatchには以下が必要です:

  • perl
  • python
  • python-ply
  • pymarkdownlnt

OpenOCDのコンパイル

OpenOCDをビルドするには、以下の一連のコマンドを使用します:

root@kitploit:~
./bootstrap
./configure [options]
make
sudo make install

bootstrap コマンドは、Gitリポジトリからビルドする場合にのみ必要です。 configure ステップはOpenOCDのビルドに必要なMakefileを生成します。通常、一つ以上のオプションを指定します。 最初の 'make' ステップはOpenOCDをビルドし、最終的な実行ファイルを './src/' に配置します。 最後の(オプションの)ステップである make install は、すべてのファイルを必要な場所に配置します。

サポートされているすべてのオプションのリストを表示するには、./configure --help を実行してください

クロスコンパイルオプション

クロスコンパイルは標準のautotools方式でサポートされています。--hostオプションでクロスコンパイルターゲットトリプレットを指定するだけです。例:Debian上でMinGWを使用してWindows 32ビット用にクロスビルドする場合:

root@kitploit:~
./configure --host=i686-w64-mingw32 [options]

クロスコンパイルでpkg-configを適切に動作させるには、https://autotools.io/pkgconfig/cross-compiling.htmlに記載されている追加のラッパースクリプトが必要になる場合があります。

これは、OpenOCDが依存するターゲットライブラリをpkg-configに検索させるために必要です。代わりに、*_CFLAGS および *_LIBS 環境変数を直接指定することもできます。詳細は ./configure --help を参照してください。

これらすべてを自動的に行うほぼ完全なスクリプトについては、contrib/cross-build.sh を参照してください。

パラレルポートドングル

PPDEVインタフェースを使用してパラレルポートにアクセスする場合は、--enable-parport と --enable-parport-ppdev の両方を指定する必要があります。後者のオプションはparportドライバのオプションだからです。

--enable-parport-giveio オプションについても同様です。iopermパラレルポートアクセス方式の代わりにgiveioを使用したい場合は、--enable-parport と --enable-parport-giveio の両方のオプションを使用する必要があります。

GitからOpenOCDを入手する

メインリポジトリから、お好みのGitクライアントを使用して現在のGitバージョンをダウンロードできます:git://git.code.sf.net/p/openocd/code

ミラーを使用することもできます:

  • http://repo.or.cz/r/openocd.git
  • git://repo.or.cz/openocd.git

Gitコマンドラインクライアントを使用して、以下のコマンドで現在のリポジトリのローカルコピーをセットアップできます(現在のディレクトリに"openocd"という名前のディレクトリがないことを確認してください):

root@kitploit:~
git clone git://git.code.sf.net/p/openocd/code openocd

その後は、git pull を使用していつでも更新できます。

gitwebインタフェースもあり、リポジトリのブラウズやHTTPを使用した任意のスナップショットのダウンロードに使用できます:http://repo.or.cz/w/openocd.git

スナップショットはソースツリーの圧縮tarボールで、執筆時点でそれぞれ約1.3 MBです。

権限の委譲

セキュリティ上の理由から、root/管理者権限でOpenOCDを実行することは強く推奨されません。

GNU/Linux上のUSBデバイスについては、contrib/60-openocd.rulesファイルを使用してください。おそらく/etc/udev/rules.dのどこかに配置しますが、正確な場所はお使いのオペレーティングシステムのドキュメントを参照してください。自分自身を"plugdev"グループに追加することを忘れないでください。

GNU/LinuxおよびFreeBSDのパラレルポートアダプタについては、"ppdev"(parport* または ppi*)デバイスノードの権限を適宜変更してください。

Windowsのパラレルポートアダプタについては、install_giveio.batを実行する必要があります(代わりにCygwinで"ioperm"を使用することも可能です)。これにより、一般ユーザーが"LPT"レジスタに直接アクセスする権限を得られます。

ツールをダウンロード