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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/therealdreg/hcon2026hwctf
Embedded Systems SecurityExploitationReverse EngineeringHardware HackingCTFLearning & EducationFirmware AnalysisBinary ExploitationLabs & Practice
GitHubtherealdreg/hcon2026hwctf

hcon2026hwctf

하드웨어 해킹 CTF hcon2026hwctf - RISCV Hazard3 (@Wren6991) 익스플로잇: @b1n4ri0 @antoniovazquezblanco & @therealdreg

252245개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기웹사이트

Hardware Hacking CTF hcon2026hwctf

하드웨어 CTF에 관심이 있다면, RISC-V RP2350 익스플로잇 챌린지(로우 레벨)를 다루는 HC0N CTF 2026의 첫 번째 공개 챌린지가 여기 있습니다.

우리는 이 챌린지를 너무 엘리트적이거나 어렵지 않게 만들려고 노력했습니다. 수백 명의 컨퍼런스 참가자들이 문제를 풀 기회를 가질 수 있도록요. 그 목표를 달성했기를 바랍니다.


CTF를 집에서 실행하고 싶다면 Raspberry Pi Pico 2를 하나 준비해서 이 펌웨어를 플래시하고, 라이트업은 읽지 마세요! -> ctf.uf2

CTF에 사용된 보드와 다른 보드(RP2350/RP2354...)를 사용하는 분들을 위한 참고 사항:
CTF PCB에는 GPIO 25에 SMD LED가 있습니다. 해당 GPIO에 LED가 반드시 있어야 합니다

LED25


이 CTF를 마친 후 마음에 들었다면, 다른 챌린지로 구성된 비슷한 CTF가 여기 있습니다: https://github.com/therealdreg/ctfhardwarehackingcon2026

라이트업

경고: 아래 라이트업에는 챌린지에 대한 스포일러가 포함되어 있습니다. 직접 문제를 풀고 싶다면 CTF를 완료할 때까지 읽지 않는 것을 권장합니다.

1등 수상자: @mrexodia (Duncan Ogilvie) writeups/first_winner.md

mrexeodia

상품: okhi 하드웨어 키로거 USB/PS2 키트 + CWP(Certified WifiChallenge Professional) https://github.com/therealdreg/okhi


2등 수상자: @M3RINOOOOO (Cristobal Merino Saez) writeups/second_winner.md

m3rino

상품: Pimoroni PGA2350, PICO2 WH, Pimoroni PICO PLUS 2W, PICO2 H, CWP(Certified WifiChallenge Professional)


3등 수상자: @p4bl0vx (Pablo Moya Lopez) writeups/third_winner.md

p4bl0vx

상품: Pimoroni PGA2350, PICO2 WH, Pimoroni PICO PLUS 2W, CWP(Certified WifiChallenge Professional).

@b1n4ri0 @antoniovazquezblanco & @therealdreg의 팁 & 트릭

여기서는 HCON 2026의 Hardware Hacking CTF를 더 쉽게 풀 수 있도록 몇 가지 도움을 드리겠습니다.

https://www.h-c0n.com

boardphoto

OS

Linux 호스트를 첫 번째 옵션으로 두세요 ;-), 디버깅이 더 잘 작동합니다.

시리얼 설정

TeraTerm: Setup -> Terminal -> Transmit: CR+LF & [x] Local echo

기타:

  • Transmit: CR+LF
  • Local echo
  • RTS
  • DTR

Linux용 GUI

cutecom:``` sudo apt-get update sudo apt-get install cutecom

# 경고

챌린지 중 하나는 하드웨어 디버깅을 요구합니다. 집에서 (다른 보드를 가진 팀원 없이) 챌린지를 수행하는 경우, 해당 챌린지를 해결하려면 다음 두 가지 항목도 구매해야 합니다. (구매하지 않아도 걱정하지 마세요—하지만 해당 특정 챌린지는 해결할 수 없습니다.)

- https://www.tiendatec.es/raspberry-pi-pico/2025-raspberry-pi-debug-probe-5056561803265.html
- https://www.tiendatec.es/raspberry-pi-pico/1979-cable-depuracion-pico-jtag-jst-sh-1-0-a-dupont-hembra-15cm-8472496024846.html

# 스크립트 정보

이 저장소에 포함된 도구는 @b1n4ri0이 커뮤니티를 위해, 특히 2026 HCON 하드웨어 해킹 챌린지를 위해 개발했습니다.


# 디버그 지원 RP2350 RISCV Hazard3 (@Wren6991) 3-스테이지 RV32IMACZb* 프로세서 악용

RISCV Hazard3는 디버그 지원이 포함된 3-스테이지 RV32IMACZb* 프로세서입니다. HCON2026HWCTF 보드에 탑재된 RP2350 마이크로컨트롤러에 사용됩니다.

# picotool을 사용하여 RISCV Hazard3 펌웨어 덤프하기

`picotool`로 RP2350 장치에서 펌웨어를 덤프하는 것은 간단한 과정입니다. 이 섹션에서는 이를 효과적으로 수행하는 방법을 배우게 됩니다.

참고: `picotool`은 RP2350(및 RP2040) 장치가 BOOTSEL 모드이거나 실행 중인 펌웨어에 Pico SDK의 USB stdio 지원이 포함된 경우에만 상호 작용합니다.

## picotool 빌드하기

선호하는 패키지 관리자를 통해 필요한 빌드 도구와 라이브러리를 설치하세요.```bash
sudo apt-get update
sudo apt install build-essential pkg-config libusb-1.0-0-dev cmake -y

도구를 정리하기 위해 전용 디렉터리를 생성하세요. 이렇게 하면 이후 단계에서 사용되는 경로가 올바르게 유지됩니다.```bash cd $HOME mkdir rptools cd rptools

`picotool` 및 `pico-sdk` 프로젝트를 클론하세요. 도구 자체와 SDK가 모두 필요합니다. 참고로 `picotool`이 올바르게 컴파일되려면 `pico-sdk`가 필요합니다.```bash
git clone https://github.com/raspberrypi/picotool.git
git clone https://github.com/raspberrypi/pico-sdk.git
cd picotool

빌드 디렉터리를 만들고 CMake를 실행합니다.

중요: 이전 단계에서 SDK를 다운로드한 위치를 CMake에 정확히 알려주려면 -DPICO_SDK_PATH 플래그를 사용해야 합니다. 또는 환경 변수에 PICO_SDK_PATH를 설정할 수도 있습니다.```bash mkdir build cd build cmake -DPICO_SDK_PATH=$HOME/rptools/pico-sdk .. sudo make install

기본적으로 USB 장치에 접근하려면 root 권한이 필요합니다. `sudo`를 사용하지 않고 `picotool`을 실행할 수 있도록 udev 규칙 파일을 복사하십시오.```bash
sudo cp ../udev/60-picotool.rules /etc/udev/rules.d/ 

udev 규칙을 다시 로드하고(또는 장치를 뽑았다가 다시 꽂은 후) picotool version을 실행하여 버전을 확인해 모든 것이 제대로 작동하는지 확인하십시오:```bash $ ./picotool version picotool v2.2.0-a4 (Linux, GNU-15.2.0, Release)

## 사전 빌드된 바이너리 사용

빌드 과정을 건너뛰고 싶다면 [공식 저장소](https://github.com/raspberrypi/pico-sdk-tools/releases)에서 사전 컴파일된 바이너리를 다운로드할 수 있습니다.```bash
gunzip picotool-2.2.0-a4-x86_64-lin.tar.gz
tar -xf picotool-2.2.0-a4-x86_64-lin.tar
cd picotool

picotool version을 실행하면 예상대로 작동해야 합니다:```bash $ ./picotool version picotool v2.2.0-a4 (Linux, GNU-11.4.0, Release)

## RP2350에서 BOOTSEL 모드 활성화

펌웨어 덤프와 같은 작업을 수행하려면 `picotool`은 장치가 BOOTSEL 모드에 있을 것을 필요로 합니다. 그러나 현재 실행 중인 펌웨어에 Pico SDK의 USB stdio 지원이 포함되어 있다면, `picotool`은 장치와 상호작용할 수도 있습니다.

아래에서 이 모드를 활성화하는 몇 가지 방법을 언급하겠습니다. 자신의 경우에 가장 적합해 보이는 방법이나, 단순히 자신에게 맞는 방법을 선택하세요.

보드가 **BOOTSEL 모드에 있지 않지만**, USB stdio 지원을 포함한다면**,** `picotool` 명령을 실행하려 할 때 다음과 같은 출력이 표시될 것입니다:```bash
$ ./picotool info
No accessible RP-series devices in BOOTSEL mode were found.

but:

RP2350 device at bus 1, address 23 appears to have a USB serial connection, so consider -f (or -F) to force reboot in order to run the command.

BOOTSEL 물리적으로 활성화하기

다음은 표준 하드웨어 방법입니다:

  1. RP2350 보드를 컴퓨터에서 분리하세요.
  2. BOOTSEL 또는 BOOT 버튼을 길게 누르세요.
  3. 버튼을 누른 채 보드를 다시 컴퓨터에 연결하세요.
  4. BOOTSEL 버튼을 놓으세요.

대안 (보드를 분리하고 싶지 않은 경우):

  1. BOOTSEL 버튼을 길게 누르세요.
  2. RESET 또는 RST 버튼을 눌렀다가 놓으세요.
  3. BOOTSEL을 놓으세요.

이제 picotool 명령을 실행할 수 있습니다:```bash $ ./picotool info Program Information name: hello_usb features: USB stdin / stdout binary start: 0x10000000 binary end: 0x10011d50 target chip: RP2350 image type: RISC-V

### BOOTSEL을 활성화하는 소프트웨어

장치 펌웨어가 실행 중이고 USB stdio 지원이 있는 경우, 보드를 건드리지 않고도 BOOTSEL 모드로 강제 전환할 수 있습니다.```bash
./picotool reboot -uf

이 명령은 -u 플래그를 사용하여 BOOTSEL 모드로 재부팅하도록 지정합니다. 그러나 장치가 현재 사용자 코드를 실행 중이므로 picotool은 기본적으로 이를 무시합니다. 따라서 실행 중인 애플리케이션이 리셋 명령을 수락하도록 강제하려면 -f 플래그를 추가해야 합니다.

-f가 없으면 도구가 장치가 이미 BOOTSEL 모드에 있을 것으로 기대하기 때문에 작업은 단순히 실패합니다.```bash $ ./picotool info Program Information name: hello_usb features: USB stdin / stdout binary start: 0x10000000 binary end: 0x10011d50 target chip: RP2350 image type: RISC-V

**팁:** 수동으로 먼저 재부팅하지 않고도 실행 중인 장치에서 직접 명령을 실행하려면 명령에 `-f` 플래그를 추가하세요. `picotool`이 재부팅을 처리하고 명령을 실행한 후 애플리케이션으로 다시 재부팅합니다.```bash
$ ./picotool info -f
Tracking device serial number XXXXXXXXXXXXXXXX for reboot
The device was asked to reboot into BOOTSEL mode so the command can be executed.

Program Information
 name:          hello_usb
 features:      USB stdin / stdout
 binary start:  0x10000000
 binary end:    0x10011d50
 target chip:   RP2350
 image type:    RISC-V

The device was asked to reboot back into application mode.

RP2350 펌웨어 덤프

이 CTF 챌린지에서는 BOOTSEL 모드로 진입하지 않고도 펌웨어를 직접 추출할 수 있습니다.

실행 중인 프로그램에 대한 정보를 수집하는 것을 권장합니다. 기본적으로 "Program Information" 섹션을 표시하는 info 명령을 사용하면 됩니다. 현재 장치가 코드를 실행 중이므로 연결을 강제하기 위해 -f 플래그를 추가합니다.```bash $ ./picotool info -f Tracking device serial number XXXXXXXXXXXXXXXX for reboot The device was asked to reboot into BOOTSEL mode so the command can be executed.

Program Information name: hello_usb features: USB stdin / stdout binary start: 0x10000000 binary end: 0x10011d50 target chip: RP2350 image type: RISC-V

도구 다운로드