Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
openocd — 공식 OpenOCD 읽기 전용 미러 (풀 리퀘스트 불가) | Kitploit
도구/GitHubGitHub/openocd-org/openocd
Embedded Systems SecurityReverse EngineeringDebuggersHardware HackingHardware SecurityHardware & IoT SecurityFirmware Analysis
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 (via Homebrew)

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

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

이러한 패키지는 활발한 개발이 이루어지는 최신 Git 메인라인보다 종종 더 안정적입니다. '패키저'는 개발자가 새로운 소스 코드 릴리스를 발표한 후 OpenOCD의 바이너리 릴리스를 생성합니다. 이전 OpenOCD 버전은 현재 릴리스의 문제를 진단하는 데 적합하지 않습니다. 사용자는 배포판 관리자 또는 인터페이스 공급업체와 연락을 유지하여 적절한 업데이트가 정기적으로 제공되도록 해야 합니다.

이러한 바이너리 패키지 중 하나를 사용하는 경우 지원이나 최신 바이너리 버전에 대해 패키저에게 문의해야 합니다. OpenOCD 개발자는 패키징된 바이너리에 대한 직접적인 지원을 제공하지 않습니다.

OpenOCD 패키저를 위한 참고 사항

다음에 해당한다면 귀하는 OpenOCD의 패키저(PACKAGER)입니다:

  • 동글을 판매하고 사전 빌드된 바이너리를 포함하는 경우;
  • 도구 또는 IDE(OpenOCD를 통합한 개발 솔루션)를 제공하는 경우;
  • 패키지(예: GNU/Linux 배포판용 RPM 또는 DEB 파일)를 빌드하는 경우.

패키저로서 대부분의 문제에 대한 첫 번째 보고를 경험하게 될 것입니다. 사용자를 위해 이러한 문제를 해결할 때, 귀하의 해결책은 다른 사용자들의 수백(어쩌면 수천) 개의 질문을 예방하는 데 도움이 될 수 있습니다.

무언가 제대로 작동하지 않는다면, OpenOCD 개발자에게 시스템이나 문서를 개선하여 향후 문제를 방지할 수 있는 방법을 알려주시고, 이후에도 문제가 향후 릴리스에서 완전히 해결될 수 있도록 협력해 주시기 바랍니다.

그렇지만, OpenOCD 개발자들은 다음 몇 가지 제안을 따르시기를 바랍니다:

  • 설정 파일을 포함한 패치를 상류(upstream)로 보내고 토론에 참여하십시오;
  • 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 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.

스냅샷은 소스 트리의 압축된 타르볼이며, 현재 각각 약 1.3MB입니다.

권한 위임

보안상의 이유로 OpenOCD를 root/관리자 권한으로 실행하는 것은 강력히 권장되지 않습니다.

GNU/Linux에서 USB 장치의 경우 contrib/60-openocd.rules 파일을 사용해야 합니다. 이 파일은 아마 /etc/udev/rules.d에 위치해야 하지만, 확실히 하려면 운영 체제 문서를 참조하십시오. "plugdev" 그룹에 자신을 추가하는 것을 잊지 마십시오.

GNU/Linux 및 FreeBSD에서 병렬 포트 어댑터의 경우 "ppdev"(parport* 또는 ppi*) 장치 노드 권한을 적절히 변경하십시오.

Windows에서 parport 어댑터의 경우 일반 사용자가 "LPT" 레지스터에 직접 액세스할 수 있는 권한을 부여하려면 install_giveio.bat을 실행해야 합니다(Cygwin과 함께 "ioperm"을 대신 사용할 수도 있습니다).

도구 다운로드