Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
openocd — Miroir officiel en lecture seule d'OpenOCD (pas de pull requests) | Kitploit
Outils/GitHubGitHub/openocd-org/openocd
Sécurité des Systèmes EmbarquésRétro-ingénierieDébogueursHacking MatérielSécurité MatérielleSécurité Matériel et IoTAnalyse de Micrologiciel
GitHubopenocd-org/openocd

openocd

Miroir officiel en lecture seule d'OpenOCD (pas de pull requests)

Voir le dépôt
2.3k1.0kil y a 3 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Site web

Bienvenue dans OpenOCD

OpenOCD fournit une prise en charge de la programmation et du débogage sur puce avec une architecture en couches de l'interface JTAG et du support TAP, notamment :

  • (X)SVF playback pour faciliter le scan de frontière automatisé et la programmation FPGA/CPLD ;
  • support de cibles de débogage (par ex. ARM, MIPS) : pas à pas, points d'arrêt/surveillance, profilage gprof, etc. ;
  • pilotes de puces flash (par ex. CFI, NAND, flash interne) ;
  • interpréteur Tcl intégré pour un scripting facile.

Plusieurs interfaces réseau sont disponibles pour interagir avec OpenOCD : telnet, Tcl et GDB. Le serveur GDB permet à OpenOCD de fonctionner comme une 'cible distante' pour le débogage au niveau source des systèmes embarqués en utilisant le programme GNU GDB (et les autres qui parlent le protocole GDB, par ex. IDA Pro).

Ce fichier README contient un aperçu des sujets suivants :

  • instructions de démarrage rapide,
  • comment trouver et construire plus de documentation OpenOCD,
  • liste du matériel supporté,
  • le processus d'installation et de compilation,
  • conseils pour l'empaquetage.

Démarrage rapide pour les impatients

Si vous avez une carte populaire, lancez simplement OpenOCD avec sa configuration, par ex. :

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

If you are connecting a particular adapter with some specific target, you need to source both the jtag interface and the target configs, e.g.:

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

Après le démarrage d'OpenOCD, connectez GDB avec

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

Installation d'OpenOCD

La façon la plus simple d'installer OpenOCD est via le gestionnaire de paquets de votre système d'exploitation.

  • Debian / Ubuntu

    root@kitploit:~
    sudo apt install openocd
    
  • Fedora

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

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

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

Ces paquets sont souvent plus stables que la version de développement Git, où le développement actif se produit. "Les empaqueteurs" créent des versions binaires d'OpenOCD après que les développeurs publient de nouvelles versions du code source. Les anciennes versions d'OpenOCD ne sont pas adaptées pour diagnostiquer les problèmes de la version actuelle. Les utilisateurs doivent rester en contact avec les responsables de leur distribution ou les fournisseurs d'interface pour s'assurer que les mises à jour appropriées sont fournies régulièrement.

Si vous utilisez l'un de ces paquets binaires, vous devez contacter l'empaqueteur pour obtenir du support ou des versions binaires plus récentes. Les développeurs d'OpenOCD ne fournissent pas de support direct pour les binaires empaquetés.

Note aux empaqueteurs d'OpenOCD

Vous êtes un EMPAQUETEUR d'OpenOCD si vous :

  • Vendez des dongles et incluez des binaires pré-construits ;
  • Fournissez des outils ou IDE (une solution de développement intégrant OpenOCD) ;
  • Construisez des paquets (par ex. des fichiers RPM ou DEB pour une distribution GNU/Linux).

En tant qu'EMPAQUETEUR, vous serez le premier à recevoir des rapports de la plupart des problèmes. Lorsque vous résolvez ces problèmes pour vos utilisateurs, votre solution peut aider à éviter des centaines (voire des milliers) d'autres questions de la part d'autres utilisateurs.

Si quelque chose ne fonctionne pas pour vous, veuillez informer les développeurs d'OpenOCD de la manière d'améliorer le système ou la documentation pour éviter de futurs problèmes, et assurez un suivi pour nous aider à garantir que le problème sera entièrement résolu dans nos prochaines versions.

Cela dit, les développeurs d'OpenOCD aimeraient également que vous suiviez quelques suggestions :

  • Envoyez des correctifs, y compris les fichiers de configuration, en amont, participez aux discussions ;
  • Activez toutes les options supportées par OpenOCD, même celles sans rapport avec votre matériel particulier ;
  • Utilisez le pilote d'adaptateur d'interface 'ftdi' pour les périphériques basés sur FTDI.

Documentation d'OpenOCD

En plus de la documentation dans l'arborescence, les derniers manuels peuvent être consultés en ligne aux URL suivantes :

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

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

Ceux-ci reflètent les dernières versions de développement, donc la section suivante présente comment construire la documentation complète à partir du paquet.

Pour plus d'informations, référez-vous à ces documents ou contactez les développeurs en vous abonnant à la liste de diffusion des développeurs OpenOCD : [email protected]

Construire la documentation d'OpenOCD

Par défaut, le processus de compilation d'OpenOCD prépare la documentation au format 'Info' et l'installe de manière standard, de sorte que info openocd puisse y accéder.

De plus, le guide de l'utilisateur d'OpenOCD peut être produit dans les formats différents suivants :

Si PDFVIEWER est défini, cela crée et affiche le guide utilisateur PDF.

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

Si HTMLVIEWER est défini, cela crée et affiche le guide utilisateur HTML.

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

Le manuel du développeur OpenOCD contient des informations sur l'architecture interne et d'autres détails sur le code :

Remarque : assurez-vous que doxygen est installé, tapez doxygen --version

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

Matériel supporté

Adaptateurs 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 tracing supported), 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.

Cibles de débogage

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.

Pilotes flash

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.

Compilation d'OpenOCD

Le fichier INSTALL contient des instructions génériques pour exécuter configure et compiler le code source d'OpenOCD. Ce fichier est fourni par défaut pour tous les paquets GNU autotools. Si vous n'êtes pas familier avec les GNU autotools, vous devriez d'abord lire ces instructions.

Remarque : si le fichier INSTALL n'est pas présent, cela signifie que vous utilisez le code source d'une branche de développement, pas d'une version d'OpenOCD. Dans ce cas, suivez les instructions 'Compilation d'OpenOCD' ci-dessous et le fichier sera créé par la première commande ./bootstrap.

Le reste de ce document tente de fournir quelques instructions pour ceux qui recherchent une installation rapide.

Dépendances d'OpenOCD

GCC ou Clang est actuellement nécessaire pour compiler OpenOCD. Les développeurs ont commencé à imposer des avertissements stricts sur le code (-Wall, -Werror, -Wextra, etc.) et à utiliser des fonctionnalités spécifiques à C99 : fonctions inline, initialisateurs nommés, mélange de déclarations et de code, et autres astuces. Bien qu'il soit possible d'utiliser d'autres compilateurs, ils doivent être relativement modernes et pourraient nécessiter une extension de support pour supprimer conditionnellement les extensions spécifiques à GCC.

Vous aurez également besoin de :

  • make
  • libtool
  • pkg-config >= 0.23 or pkgconf
  • libjim >= 0.79

De plus, pour la compilation à partir de Git :

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

Les pilotes d'adaptateur USB optionnels nécessitent libusb-1.0.

Les pilotes d'adaptateur d'interface USB-Blaster, ASIX Presto et OpenJTAG optionnels nécessitent la bibliothèque libftdi.

Le pilote d'adaptateur CMSIS-DAP optionnel nécessite la bibliothèque HIDAPI.

Le pilote d'adaptateur linuxgpiod optionnel nécessite la bibliothèque libgpiod.

Le pilote d'adaptateur J-Link optionnel nécessite la bibliothèque libjaylink.

Le désassemblage ARM optionnel nécessite la bibliothèque capstone.

Le script de développement optionnel checkpatch nécessite :

  • perl
  • python
  • python-ply
  • pymarkdownlnt

Compilation d'OpenOCD

Pour compiler OpenOCD, utilisez la séquence de commandes suivante :

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

La commande bootstrap n'est nécessaire que lors de la compilation à partir du dépôt Git.

L'étape configure génère les Makefiles nécessaires pour compiler OpenOCD, généralement avec une ou plusieurs options fournies.

La première étape 'make' compilera OpenOCD et placera l'exécutable final dans './src/'.

La dernière étape (optionnelle), make install, place tous les fichiers à l'emplacement requis.

Pour voir la liste de toutes les options supportées, exécutez ./configure --help

Options de cross-compilation

La cross-compilation est supportée de la manière standard d'autotools, il vous suffit de spécifier le triplet de cible de cross-compilation dans l'option --host, par ex. pour la cross-compilation pour Windows 32 bits avec MinGW sur Debian :

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

Pour que pkg-config fonctionne correctement pour la cross-compilation, vous pourriez avoir besoin d'un script wrapper supplémentaire comme décrit sur https://autotools.io/pkgconfig/cross-compiling.html.

Ceci est nécessaire pour indiquer à pkg-config où chercher les bibliothèques cibles dont OpenOCD dépend. Alternativement, vous pouvez spécifier directement les variables d'environnement *_CFLAGS et *_LIBS, voir ./configure --help pour les détails.

Pour un script plus ou moins complet qui fait tout cela pour vous, voir contrib/cross-build.sh.

Dongles port parallèle

Si vous souhaitez accéder au port parallèle en utilisant l'interface PPDEV, vous devez spécifier à la fois --enable-parport et --enable-parport-ppdev, car la dernière option est une option du pilote parport.

La même chose est vraie pour l'option --enable-parport-giveio, vous devez utiliser à la fois l'option --enable-parport et --enable-parport-giveio si vous voulez utiliser giveio au lieu de la méthode d'accès au port parallèle ioperm.

Obtention d'OpenOCD depuis Git

Vous pouvez télécharger la version Git actuelle avec un client Git de votre choix depuis le dépôt principal : git://git.code.sf.net/p/openocd/code

Vous pouvez préférer utiliser un miroir :

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

En utilisant le client en ligne de commande Git, vous pouvez utiliser la commande suivante pour configurer une copie locale du dépôt actuel (assurez-vous qu'il n'y a pas de répertoire appelé 'openocd' dans le répertoire actuel) :

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

Ensuite, vous pouvez le mettre à jour à votre convenance en utilisant git pull.

Il existe également une interface gitweb, que vous pouvez utiliser soit pour parcourir le dépôt, soit pour télécharger des instantanés arbitraires en utilisant HTTP : http://repo.or.cz/w/openocd.git.

Les instantanés sont des archives compressées de l'arborescence source, d'environ 1,3 Mo chacun au moment de la rédaction.

Délégation des permissions

L'exécution d'OpenOCD avec des privilèges root/administrateur est fortement déconseillée pour des raisons de sécurité.

Pour les périphériques USB sur GNU/Linux, vous devez utiliser le fichier contrib/60-openocd.rules. Il appartient probablement quelque part dans /etc/udev/rules.d, mais consultez la documentation de votre système d'exploitation pour en être sûr. N'oubliez pas de vous ajouter au groupe 'plugdev'.

Pour les adaptateurs port parallèle sur GNU/Linux et FreeBSD, veuillez modifier les permissions de votre nœud de périphérique 'ppdev' (parport* ou ppi*) en conséquence.

Pour les adaptateurs parport sur Windows, vous devez exécuter install_giveio.bat (il est également possible d'utiliser 'ioperm' avec Cygwin à la place) pour donner aux utilisateurs ordinaires les permissions d'accéder directement aux registres 'LPT'.

Télécharger l’outil