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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
iomfb-exploit — iOS 14 커널 익스플로잇(CVE-2021-30807)으로, IOMobileFramebuffer를 대상으로 하며 A11+ 기기에서 탈옥 개발을 위한 조정 가능한 메모리 할당 기능을 제공합니다. | Kitploit
도구/GitHubGitHub/jsherman212/iomfb-exploit
iOS SecurityMemory ForensicsVulnerability AnalysisExploitationMobile SecurityBinary Exploitation
GitHubjsherman212/iomfb-exploit

iomfb-exploit

iOS 14 커널 익스플로잇(CVE-2021-30807)으로, IOMobileFramebuffer를 대상으로 하며 A11+ 기기에서 탈옥 개발을 위한 조정 가능한 메모리 할당 기능을 제공합니다.

저장소 보기
13330154년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

글 작성은 여기: https://jsherman212.github.io/2021/11/28/popping_ios14_with_iomfb.html

CVE-2021-30807 익스플로잇입니다. 이를 기반으로 탈옥을 실제로 구축하려면 기기와 iOS 버전에 맞게 조정이 필요합니다. 이를 위해 사용할 정보 유출(info leak)이 없기 때문입니다.

A11 이하에서 조정하려면 pongo를 사용하여 xnuspy를 로드하고 SAMPLING_MEMORY=1 make -B로 빌드하세요. 그러면 kernel_memory_allocate가 반환한 메모리를 수집하고, 해당 포인터들을 정렬한 다음, 범위를 출력하는 테스트가 활성화됩니다. 다음과 같은 결과가 표시됩니다:

root@kitploit:~
sample_kernel_map: 0xffffffe8ebe9c000 [0x10000 bytes from behind]
sample_kernel_map: to add to alloc_averager:
[0xffffffe8ce934000, 0xffffffe8ebf98000],

(그냥 출력되는 경고는 무시하세요)

이 테스트는 기기가 부팅된 후 30초 후에 실행되도록 설계되었습니다.

alloc_averager.py 안에는 제 휴대폰에서 이미 실행한 몇 가지 샘플이 있습니다. 각 범위의 평균을 모두 구해 그 평균을 취합니다. 기기용 "샘플 목록(samples list)"을 만들고 범위를 추가하세요. 테스트를 여러 번 반복하여 목록에 5~10개의 항목이 생길 때까지 진행하세요. alloc_averager.py는 목록을 기반으로 생성된 추측에 대한 성공률을 보고합니다. 마음에 드는 성공률이 나오면 추측 값을 가져와 IOMobileFramebufferUserClient.c 상단의 GUESSED_OSDATA_BUFFER_PTR 값을 대체하세요.

이 목록에 이상치(outlier)를 포함하지 않는 것이 매우 중요합니다. 테스트를 몇 번 실행하고 나면 이미 가지고 있는 범위와 확연히 다른 범위가 나올 가능성이 높습니다.

이 테스트를 실행하려면 기기/버전에 맞는 오프셋을 찾아야 합니다.

먼저, kernel_memory_allocate를 찾으려면 kernel_memory_allocate: VM is not ready를 크로스 레퍼런스(xref)하세요. 오프셋을 찾았으면 install_kernel_memory_alloc_hook 내부의 kma 값을 해당 값으로 설정하세요.

둘째, 테스트를 XNU가 수행하는 다른 할당과 분리하기 위해 특정 반환 주소를 테스트합니다. 그 주소는 OSData::initWithCapacity 안에 있습니다. "OSData" 문자열을 크로스 레퍼런스하면 OSData의 vtable을 쉽게 찾을 수 있습니다. 해당 문자열의 첫 번째 크로스 레퍼런스는 OSData::MetaClass의 vtable을 참조하는 함수에 있을 것입니다. 그 vtable 바로 위에 OSData의 vtable이 있으며, OSData::initWithCapacity는 +0x78에 있습니다.

OSData::initWithCapacity를 찾으면 kernel_memory_allocate로의 유일한 BL을 찾고, 그 명령어 바로 아래의 오프셋을 취하세요. kernel_hooks.c에서 해당 파일의 유일한 함수에 있는 유일한 if 문에 그 오프셋을 사용하세요.

A12 이상은 Correlium과 같은 것을 사용해야 합니다.

도구 다운로드