Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
wake-and-break — AMD navi31(RX 7900) GPU용 PSP 익스플로잇으로, 펌웨어 서명 검사를 비활성화하여 카드가 서명되지 않은 SMU, SDMA, MEC, IMU 및 RLC 펌웨어를 로드하도록 합니다. 콜드 부팅 후에는 지속되지 않습니다. | Kitploit
도구/GitHubGitHub/blasty/wake-and-break
Embedded Systems SecurityPrivilege EscalationExploitationReverse EngineeringHardware HackingHardware SecurityPapers & ResearchFirmware Analysis
GitHubblasty/wake-and-break

wake-and-break

AMD navi31(RX 7900) GPU용 PSP 익스플로잇으로, 펌웨어 서명 검사를 비활성화하여 카드가 서명되지 않은 SMU, SDMA, MEC, IMU 및 RLC 펌웨어를 로드하도록 합니다. 콜드 부팅 후에는 지속되지 않습니다.

6172일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

Wake and Break

Wake and Break

AMD navi31 카드(RX 7900 시리즈)를 위한 PSP(Platform Security Processor) 익스플로잇입니다. 인접한 다른 제품군에도 적용 가능할 것으로 보입니다.

이 익스플로잇은 PSP의 펌웨어 서명 검사를 비활성화하여, 카드가 원래는 거부하던 서명되지 않은 IP 펌웨어(SMU, SDMA, MEC, IMU, RLC)를 로드하도록 만듭니다. 커스텀 전원 관리, 클럭 제한, 또는 벤더가 서명하고 여러분은 서명하지 않는 펌웨어에 존재하는 그 밖의 무엇이든 생각해 보십시오.

아무것도 플래시되지 않습니다. 패치는 PSP 메모리에 상주하며 웜 부팅 중에 적용됩니다. 콜드 파워 사이클을 거치면 패치가 지워지고 카드는 다시 순정 상태가 됩니다. 이 웜 부팅이 바로 "Wake and Break"입니다. 카드가 깨어나면, 우리는 카드가 즉시 아주 높은 상태에 도달하도록 설득하고 서명 검사를 무력화하도록 강제합니다. :-)

RX 7900 XTX에서 카드 테스트를 완료했습니다. Status를 참조하십시오.

What you get

python3 wakebreak.py 25=/path/to/firmware.bin

그것은 패치를 심고, 카드를 웜 부팅하며, 이미지를 펌웨어 타입 25로 제출합니다. accepted가 출력되면, PSP가 정상적으로는 거부했을 이미지를 받아들인 것입니다.

시험해 볼 무언가가 필요하신가요? ipfw_images.py는 드라이버가 실제로 로드하는 펌웨어를 나열하고 테스트 쌍을 작성합니다. 즉, 정품 이미지와 서명에서 한 비트만 뒤집힌 사본으로, 펌웨어 자체는 바이트 단위로 동일합니다:

python3 ipfw_images.py             # what does this card load?
python3 ipfw_images.py 25          # -> /tmp/fw_25_{ok,bad}.bin
python3 wakebreak.py 25=/tmp/fw_25_bad.bin

Stock 펌웨어는 fw_25_bad.bin을 거부합니다. 패치가 적용되면 허용됩니다. 그것이 전체 시연입니다.

설정

python3 -m venv venv
venv/bin/pip install -r requirements.txt
make verify          # are the shipped artifacts intact?
make selftest        # offline sanity checks, no card touched

PCIe 또는 USB 브리지를 통해 tinygrad의 AMD 드라이버로 카드에 접근할 수 있는 Linux 호스트가 필요합니다. 호스트에 필요한 tinygrad 패치 하나는 requirements.txt를 참조하세요.

어떤 카드를 가지고 있나요?

알려진 navi31 펌웨어 빌드는 네 가지이며, 패치는 그중 하나와 일치해야 합니다. 프로필 a가 기본값이며 가장 흔한 빌드를 대상으로 합니다. 카드의 SPI 플래시 덤프가 있다면 identify.py가 알려줄 것입니다:

python3 identify.py FLASH.bin
# -> sos-build c: wakebreak.py --sos-build c

그렇지 않으면 그냥 시도해 보세요. 잘못 추측해도 무해합니다: 패치는 수정하려는 대상을 확인하고, 인식할 수 없는 것을 발견하면 아무것도 쓰지 않으며, 카드는 정상적으로 부팅됩니다.

python3 wakebreak.py --sos-build c 25=/tmp/fw_25_bad.bin

상태

테스트한 카드(RX 7900 XTX, 프로파일 a)에서 확인됨:

변조된 펌웨어, 순정 카드거부됨
변조된 펌웨어, 패치됨허용됨
콜드 파워 사이클 후다시 거부됨 — 카드는 순정 상태

참고: 프로파일 b, c, d는 빌드되고 오프라인에서 검증되었지만 하드웨어에서 실행된 적은 없습니다. 프로파일 b, c, d에 해당하는 카드를 가지고 계시다면 작동 여부를 알려주세요!

재빌드

패치 자체는 hook/*.S에 있는 수백 바이트의 ARM 어셈블리입니다. 빌드된 blob이 저장소에 포함되어 있으므로 사용하는 데 크로스 컴파일러가 필요하지 않습니다. 그래도 재빌드하려면:

make rebuild                                  # needs arm-none-eabi binutils
make rebuild CROSS=/path/to/arm-none-eabi-

빌드는 카드에서 테스트된 바이트와 해시가 일치하지 않는 것은 무엇이든 설치를 거부하므로, 다른 툴체인이 PSP에 기록되는 내용을 조용히 바꿀 수 없습니다.

포함된 내용

wakebreak.py        the exploit
identify.py       which --sos-build does this card need?
ipfw_images.py    build a signed/tampered firmware pair to test with
selftest.py       offline checks
hook/             the patch: ARM sources and built blobs
firmware/         two stock AMD firmware images the exploit needs to get in

firmware/에는 수정되지 않은, 공개적으로 배포된 AMD 이미지가 들어 있습니다. 이들은 오래된 버전이며, 침투 경로가 이들을 거쳐 가기 때문에 보관되어 있습니다.

작동 방식

여기서 의도적으로 다루지 않는 부분: 코드를 읽으십시오. wakebreak.py는 주석이 달린 약 600줄이며, 주석이 메커니즘, 안전 검사, 그리고 각 단계가 왜 그 순서로 진행되는지를 설명합니다. TL;DR: AMD의 정품 신뢰 애플리케이션 두 개가 로드되고, 그중 하나가 PSP 메모리에 쓸 수 있는 체인을 실행하도록 설득되며, 패치가 부트로더의 상주 복사본에 배치된 다음, 카드가 그것으로 웜 부팅됩니다.

라이선스

MIT, LICENSE를 참조하십시오. 원하는 대로 사용하십시오.

면책 조항

이 작업물을 제작하는 데 상당한 LLM 지원이 사용되었습니다. 그렇다고 해서 저자가 여기서 실제로 무슨 일이 일어나고 있는지 전혀 모른다는 뜻은 아닙니다. 여기까지 오는 데에도 많은 반발과 수작업이 필요했습니다. 여러분은 엉성한 파이썬 산출물 따위가 마음에 들지 않을 수 있지만, 여러분의 Navi31 카드가 갑자기 서명되지 않은 펌웨어 컴포넌트 블롭을 로드한다는 사실과는 논쟁할 수 없을 것입니다. 관심을 가져주셔서 감사합니다.

도구 다운로드