Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
openocd — Официальное зеркало OpenOCD только для чтения (без pull-запросов) | Kitploit
Инструменты/GitHubGitHub/openocd-org/openocd
Безопасность встроенных системОбратная инженерияОтладчикиАппаратный ХакингАппаратная БезопасностьБезопасность оборудования и IoTАнализ Прошивок
GitHubopenocd-org/openocd

openocd

Официальное зеркало OpenOCD только для чтения (без pull-запросов)

Репозиторий
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);
  • Собираете пакеты (например, файлы RPM или DEB для дистрибутива GNU/Linux).

Как упаковщик, вы первыми будете получать сообщения о большинстве проблем. Когда вы исправляете эти проблемы для своих пользователей, ваше решение может помочь предотвратить сотни (если не тысячи) других вопросов от других пользователей.

Если что-то не работает, пожалуйста, сообщите разработчикам 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 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.

Цели отладки

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 для 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 генерирует Make-файлы, необходимые для сборки OpenOCD, обычно с одной или несколькими переданными опциями. Первый шаг 'make' собирает OpenOCD и помещает итоговый исполняемый файл в './src/'. Финальный (необязательный) шаг, make install, помещает все файлы в нужное место.

Чтобы увидеть список всех поддерживаемых опций, выполните ./configure --help

Опции кросс-компиляции

Кросс-компиляция поддерживается стандартным способом autotools: вам нужно указать триплет цели кросс-компиляции в опции --host, например, для кросс-сборки для Windows 32-bit с MinGW на Debian:

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

Чтобы pkg-config корректно работал при кросс-компиляции, вам может понадобиться дополнительный скрипт-обёртка, как описано на https://autotools.io/pkgconfig/cross-compiling.html.

Это необходимо, чтобы указать pkg-config, где искать целевые библиотеки, от которых зависит OpenOCD. Альтернативно, вы можете напрямую указать переменные окружения *_CFLAGS и *_LIBS, подробнее см. ./configure --help.

Более-менее полный скрипт, который делает всё это за вас, см. в contrib/cross-build.sh.

Ключи параллельного порта

Если вы хотите получить доступ к параллельному порту через интерфейс PPDEV, вам нужно указать как --enable-parport, так и --enable-parport-ppdev, поскольку последняя опция является опцией драйвера parport.

То же самое верно для опции --enable-parport-giveio: вам нужно использовать как --enable-parport, так и --enable-parport-giveio, если вы хотите использовать giveio вместо метода доступа к параллельному порту ioperm.

Получение OpenOCD из Git

Вы можете загрузить текущую версию 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 Мбайт на момент написания.

Делегирование прав доступа

Запуск OpenOCD с правами root/администратора настоятельно не рекомендуется по соображениям безопасности.

Для USB-устройств в GNU/Linux следует использовать файл contrib/60-openocd.rules. Вероятно, он должен находиться где-то в /etc/udev/rules.d, но для уверенности обратитесь к документации вашей операционной системы. Не забудьте добавить себя в группу "plugdev".

Для адаптеров параллельного порта в GNU/Linux и FreeBSD измените соответствующим образом права доступа к узлам устройств "ppdev" (parport* или ppi*).

Для адаптеров параллельного порта в Windows необходимо запустить install_giveio.bat (также можно использовать "ioperm" с Cygwin), чтобы предоставить обычным пользователям права на прямой доступ к регистрам "LPT".

Скачать инструмент