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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ghostlock-myron-tw — GhostLock (CVE-2026-43499) REDMI K90 Pro Max 대만 펌웨어(myron, WPMTWXM)용 커널 익스플로잇 포트 — 오프셋, 빌드 가이드, 사전 빌드 바이너리 | Kitploit
도구/GitHubGitHub/jason5545/ghostlock-myron-tw
Android SecurityPrivilege EscalationExploitationReverse EngineeringMobile SecurityBinary Exploitation
GitHubjason5545/ghostlock-myron-tw

ghostlock-myron-tw

GhostLock (CVE-2026-43499) REDMI K90 Pro Max 대만 펌웨어(myron, WPMTWXM)용 커널 익스플로잇 포트 — 오프셋, 빌드 가이드, 사전 빌드 바이너리

저장소 보기
52개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

POCO F8 Ultra / REDMI K90 Pro Max용 GhostLock — 글로벌 및 대만 변형 (myron, WPMTWXM)

POCO F8 Ultra / REDMI K90 Pro Max(코드명 myron, Snapdragon 8 Elite Gen 5 / SM8850)의 글로벌/대만 펌웨어용 GhostLock(CVE-2026-43499) 커널 익스플로잇 포팅입니다.

대상: HyperOS OS3.0.6.0.WPMTWXM — 커널 6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k

아래에 영어 요약 있음 / 下方有英文摘要。


이 포트가 필요한 이유

같은 기기, 같은 코드명이지만 글로벌/대만 버전(WPMTWXM, 즉 POCO F8 Ultra)과 중국 버전(WPMCNXM)의 커널은 동일한 바이너리가 아닙니다:

ROMkernel release컴파일 시간
대만판 3.0.1.0.WPMTWXM...-ga5f232d1ead0-ab14083253-4k2025-09-11
대만판 3.0.6.0.WPMTWXM...-g5a0e85dd9db0-ab14499855-4k2025-11-26
중국판 3.0.306/308.WPMCNXM...-g16e473de48a3-abogki462654244-4k2025-11-19
  • 陸版追蹤 Google 官方 GKI 分支(abogki*),臺版是小米自己的整合分支
  • 兩邊 git commit 不同、config 差 7 個選項,而且全部 +pgo +bolt +lto 編譯—— 任何程式碼差異都會把符號配置整個洗亂
  • 實測:init_task/init_cred 差 0x10000,selinux_state 差 0x120c8(非固定位移)

GhostLock 같은 data-only exploit은 해당 빌드의 정확한 주소가 필요하므로, 중국판을 위해 계산된 모든 payload는 국제판에서 전부 무효입니다. 이 repo는 국제판에 빠져 있는 그 오프셋 표를 보완하는 것입니다.

내용

  • offsets/myron_tw/offsets.h — 대만 버전 3.0.6.0의 전체 타깃(JoinChang/ghostlock-oneplus에서 사용)
  • scripts/device_step1.sh — 루팅 후 ABL 백업 + unlock EFI 플래시 스크립트
  • Releases에 컴파일된 ghostlock 바이너리(arm64)가 있음

검증된 분석 결과

  1. kallsyms 정적 추출 정확성: _text를 기준으로 바이너리를 역으로 읽어 교차 검증 — init_task.comm="swapper", init_cred.usage=4, init_uts_ns.release가 uname과 문자 단위로 일치. 실기기 루팅 없이도 신뢰할 수 있는 오프셋을 얻을 수 있음.
  2. Struct 레이아웃이 중국 버전과 완전히 동일(BTF 검증): task_struct 5184 bytes, cred@0x900, pi_blocked_on@0xA18 등이 업스트림 STRUCT_OFFSETS_6_12와 일치.
  3. 스택 배치 실행 가능성: futex_wait_requeue_pi(frame 0x1c0, waiter@sp+0x80)와 core_sys_select(frame 0x1b0, stack_fds@sp+0x18)가 실행 가능성이 검증된 Xiaomi 17 (pudding)과 완전히 동일 → PSELECT_SHIFT=0.
  4. selinux_state.enforcing은 +0, policycap은 +2에 있어 단일 바이트 쓰기로 policycap이 손상되지 않음.
  5. Rust ashmem → Path B(직접 PI write)만 사용 가능, Path A (UMH)는 사용 불가.

컴파일

git clone https://github.com/JoinChang/ghostlock-oneplus.git
cd ghostlock-oneplus
cp /path/to/this-repo/offsets/myron_tw/offsets.h src/devices/myron_tw/offsets.h
# 在 src/devices/offsets.h 的 #include 清單加一行:
#   #include "myron_tw/offsets.h"
make NDK_CC=<你的 NDK>/toolchains/llvm/prebuilt/*/bin/aarch64-linux-android35-clang

사용

adb shell uname -r
# 必須是 6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k,否則程式會拒絕執行

adb push ghostlock /data/local/tmp/e
adb shell chmod 755 /data/local/tmp/e
adb shell /data/local/tmp/e
  • 成功 → root shell + SELinux permissive(軟 root,重開機失效)
  • 失敗重開機 = 沒搶到時序,重跑;連續 panic 可試 PSELECT_SHIFT=-1 等微調
  • 不要讓裝置 OTA——更新後核心更換,偏移即失效,且新版可能已修補漏洞

後續(BL 解鎖)

國際版機在 root 之後可以走 ABL 替換法解鎖(不需要官方名額):備份 abl_a/b → 刷入 unlock EFI → fastboot 刷出廠 ABL + spoof → 還原。出廠 ABL 從自己手上的 臺版 3.0.1.0 ROM 的 abl.img 取得(本 repo 不放小米專有韌體檔案)。 scripts/device_step1.sh 是這個流程的手機端部分。此流程不清使用者資料。

移植到其他區域版本(MIXM / EUXM / INXM…)

這個 repo 只覆蓋 WPMTWXM。小米每條區域分支各自編譯核心,偏移不能共用—— 但方法可以。tools/ 裡是我們實際用來產生臺版 target 的三支工具:

# 1. 從你的 OTA 包解出 boot.img(payload.bin 用 payload-dumper),然後:
python3 tools/extract_offsets.py boot.img          # 產生 OFFSETS_ENTRY + 交叉驗證
python3 tools/check_btf.py boot.img                # 驗證 struct 布局(決定 STRUCT_OFFSETS 能否沿用)
python3 tools/check_feasibility.py boot.img        # 驗證 pselect 棧配置(決定 SHIFT)
  • extract_offsets.py:抽 kallsyms、算全部偏移,並回讀 init_task.comm / init_cred.usage / init_uts_ns.release 做交叉驗證——不通過就不要用
  • check_btf.py:從核心內嵌 BTF 讀出 task_struct/cred/selinux_state 欄位偏移,跟 STRUCT_OFFSETS_6_12 逐項比對
  • check_feasibility.py:反組譯 futex_wait_requeue_pi 與 core_sys_select 的幀配置,跟已知可行的核心比對(需要 pip install capstone)

세 가지 모두 통과했으니, 당신의 버전도 대부분 문제없이 작동할 것입니다. 새 지역 버전의 target을 PR로 보내 추가해 주세요.

감사의 말

  • Nebula Security — GhostLock 원본 연구 및 PoC
  • JoinChang/ghostlock-oneplus — 이 포트의 기반
  • 쿨안 커뮤니티의 다양한 이식 경험

English Summary

POCO F8 Ultra(REDMI K90 Pro Max)의 글로벌 펌웨어는 CN 펌웨어와 다른 커널 빌드를 탑재하고 있습니다(브랜치, 구성, PGO/BOLT 레이아웃이 다름). 따라서 CN ogki 커널에서 계산된 커뮤니티 공개 GhostLock 오프셋은 모두 글로벌 기기에서 빗나갑니다. 이 저장소는 OS3.0.6.0.WPMTWXM(6.12.23-android16-5-g5a0e85dd9db0-ab14499855-4k)에 대해 누락된 타깃 오프셋을 제공하며, 공식 OTA 패키지에서 정적으로 추출하고 교차 검증(kallsyms + BTF + 이미지 내 읽기)했으며, Releases에 사전 빌드된 바이너리도 포함되어 있습니다. 구조체 레이아웃은 CN 빌드와 동일하며, 심볼 주소만 다릅니다. 스택 프레임 레이아웃은 검증된 Xiaomi 17(pudding)과 일치합니다.

본인 기기에서만 사용하십시오. 이 취약점은 공개되어 있으며(kernelCTF 의무 공개), 이 포트는 글로벌 변형 기기 소유자가 자신의 휴대폰을 루팅할 수 있도록 존재합니다.

면책 조항 / Disclaimer

자신의 기기에서만 수행하는 승인된 보안 연구용입니다. For authorized security research on your own devices only. 어떠한 결과도 보장하지 않으며, 사용에 따른 위험은 사용자 본인이 부담합니다.

도구 다운로드