*적용중인 도장
이 섹션은 "런타임 영역을 할당 할 수 없습니다"오류를 이해하고 수정하려는 사용자를위한 것입니다.
이것은 Z390, X99 및 X299에서 가장 일반적입니다. 이 섹션에서는 클로버도 지원합니다.
KASLR은 커널 주소 공간 레이아웃 무작위 화를 의미하며 보안 목적으로 사용됩니다. 특히, 공격자들이 중요한 개체가 메모리에서 어디에 있는지 파악하기가 더 어려워집니다.
이것이 문제가되는 곳은 메모리 맵이 작거나 너무 많은 장치가있는 장치를 소개 할 때입니다. 커널이 작동 할 공간이 있지만 커널이 완전히 맞지 않는 여유 공간도 있습니다.
앞에서 언급했듯이 이것은 커널을위한 공간이 충분하지 않거나 너무 작은 곳으로 이동하는 사용자를위한 것입니다. 부팅 할 때 일반적으로 이와 비슷한 오류가 발생합니다.
Error allocating 0x1197b pages at 0x0000000017a80000 alloc type 2
Couldn't allocate runtime area
Only 244/256 slide values are usable!
panic(cpu 6 caller 0xffffff801fc057ba): a freed zone element has been modified in zone kalloc.4096: expected 0x3f00116dbe8a46f6 but found 0x3f00116d00000000
재미있는 사실 : 작동 할 영역을 찾는 데 약 31ms가 소요되며, 평균 슬라이드 값을 수동으로 설정하면 부팅 시간이 0.207 % 단축 될 수 있습니다 !!!
이것에 대한 실제 수정은 실제로 매우 간단합니다. 프로세스는 Clover와 OpenCore 사용자 모두 동일합니다.
필요한 것 :
클로버 사용자 :
OpenCore 사용자 :
또한 config.plist-> Booter (OpenCore) 또는 OcQuirks.plist (Clover)를 아래와 같이 구성해야합니다.
위 처럼 조정 된 EFI, config.plist 및 BIOS 설정을 사용하여 새로운 설정을 시도 할 차례입니다. 여전히 문제가있는 경우 심층 다이빙을 수행하고 슬라이드 값을 계산해야합니다.
이제 부팅 관리자에서 EFI 셸을 실행하면 memmap됩니다. 그러면 모든 페이지와 크기 목록이 표시됩니다. 재미가 시작되는 곳입니다.
당신이 볼 것의 예 :
유형 | 스타트 | 종료 | # 페이지 | 속성 |
---|---|---|---|---|
RT_Data | 0000000000000000 | 0000000000000FFF | 0000000000000001 | 800000000000000F |
유효한 | 0000000000001000 | 0000000000057FFF | 0000000000000057 | 000000000000000F |
예약석 | 0000000000058000 | 0000000000058FFF | 0000000000000001 | 000000000000000F |
유효한 | 0000000000059000 | 000000000008FFFF | 0000000000000037 | 000000000000000F |
RT_ 코드 | 0000000000090000 | 0000000000090FFF | 0000000000000001 | 800000000000000F |
유효한 | 0000000000091000 | 000000000009DFFF | 000000000000000D | 000000000000000F |
예약석 | 000000000009E000 | 000000000009FFFF | 0000000000000002 | 000000000000000F |
유효한 | 0000000000100000 | 000000005B635FFF | 000000000005B536 | 000000000000000F |
BS_Data | 000000005B636000 | 000000005B675FFF | 0000000000000040 | 000000000000000F |
유효한 | 000000005B676000 | 000000006AF77FFF | 000000000000F902 | 000000000000000F |
로더 코드 | 000000006AF78000 | 000000006B155FFF | 00000000000001DE | 000000000000000F |
BS_Data | 000000006B156000 | 000000006B523FFF | 00000000000003CE | 000000000000000F |
ACPI_NVS | 000000006B524000 | 000000006B524FFF | 0000000000000001 | 000000000000000F |
BS_Data | 000000006B526000 | 000000006B625FFF | 0000000000000100 | 000000000000000F |
유효한 | 000000006B626000 | 000000006B634FFF | 000000000000000F | 000000000000000F |
이제 우리가 이것을 어떻게 슬라이드 값으로 변환하는지 궁금 할 것입니다. 아주 간단합니다. 관심이있는 것은 Start열 에서 사용할 수있는 가장 큰 값 입니다.
이 예에서 우리 000000006B626000가 가장 큰 것을 알 수 있습니다. 이 값은 16 진수로되어 있으므로 서로 가까운 값이 여러 개인 경우 10 진수로 변환해야합니다.
슬라이드 값 계산 (macOS의 내장 계산기에는 ⌘ + 3을 눌러 계산) :
000000006B626000 = 0x6B626000
( 0x6B626000- 0x100000) / 0x200000=0x35A
그리고 이것이 올바른지 재확인
0x100000+ ( 0x35A* 0x200000) =0x6B500000
반환 된 값이 원본 이 아닌 경우 ( 0x6B500000vs 0x6B626000) 최종 슬라이드 값에 +1을 추가하십시오.
반올림 때문입니다. 예를 들어 0x35A10 진수로 변환 된 858 다음 +1이 표시됩니다 slide=859.
그러나 잠시만 256보다 높습니다!
맞습니다. 이것은 Above4GDecoding사용할 수없는 섹터를 포함하는 메모리 맵으로 인해 발생합니다 .
따라서 충분히 작은 값을 찾을 때까지 목록을 계속 내려 가야합니다 -> 0000000000100000
(HEX- 0x100000) / 0x200000= HEX의 슬라이드 값
0x100000 + (HEX의 슬라이드 값 * 0x200000) = 원래 HEX 값 (그렇지 않으면 슬라이드 값에 +1을 더함)
이제 config.plist로 이동하여 나머지 부팅 인수와 함께 슬라이드 값을 추가하십시오
(우리를 위해 사용할 slide=0때 0x100000). 이 값으로 여전히 오류가 발생하면 두 번째로 큰 Start값으로 진행할 수 있습니다 .
때로는 슬라이드를 계산할 slide=-0.379150390625때 와 같은 숫자가 나오면 반올림 한 값은 slide=0
DevirtualiseMmio는 매우 흥미로운 데이터입니다. 특히 Z390 보드와 같은 많은 PCI 장치 시스템과 X99 및 X299와 같은 HEDT 보드들은 큰 장애물이 생깁니다.
이 방법은 MMIO 영역이 필요하고 런타임 속성을 제거하여 커널이 편안하게 앉을 수있는 공간으로 사용할 수 있도록합니다
.이 기능을 ProvideCustomSlide기발한 기능과 함께 사용하면 부팅 가능한 시스템을 얻는 동안 슬라이드의 보안 기능을 유지할 수 있습니다.
Threadripper TRX40 19H와 같은 매우 문제가있는 시스템의 경우 올바른 작동에 필요하지 않은 특정 리즌을 찾아야합니다.
그것이 mmioWhitelist 이며 대부분의 시스템에는 화이트 리스팅이 필요하지 않습니다.
DevirtualiseMmio와 함께 OpenCore의 디버그 버전을 실행하면 로그에서 이를 확인할 수 있습니다.
21:495 00:009 OCABC: MMIO devirt start
21:499 00:003 OCABC: MMIO devirt 0x60000000 (0x10000 pages, 0x8000000000000001) skip 0
21:503 00:003 OCABC: MMIO devirt 0xFE000000 (0x11 pages, 0x8000000000000001) skip 0
21:506 00:003 OCABC: MMIO devirt 0xFEC00000 (0x1 pages, 0x8000000000000001) skip 0
21:510 00:003 OCABC: MMIO devirt 0xFED00000 (0x1 pages, 0x8000000000000001) skip 0
21:513 00:003 OCABC: MMIO devirt 0xFEE00000 (0x1 pages, 0x800000000000100D) skip 0
21:516 00:003 OCABC: MMIO devirt 0xFF000000 (0x1000 pages, 0x800000000000100D) skip 0
21:520 00:003 OCABC: MMIO devirt end, saved 278608 KB
가장 좋은 아이디어는 하나를 제외한 모든 MMIO 섹션을 차단 하고 각 지역을 시도하여 올바른 리즌 목록을 얻는 것입니다
위의 예를 들어서 자신의 MmioWhitelist를 만들기 위해선 먼저 주소를 16 진수에서 10 진수로 변환해야합니다.
예시.
https://dortania.github.io/OpenCore-Desktop-Guide/extras/kaslr-fix.html
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
macOS Sequoia 15.0.1 24A348 정식버젼 고스트 이미지 OC 1.0.2 ft: 전체공개 +29 | 941 | 24.10.1121:10 | 좌절금지 |
오픈코어 1.0.2 +23 | 578 | 24.10.0900:22 | 줌바이퍼 |
[중급편] 노트북 해킨 +16 | 1406 | 24.07.1219:19 | Stultus |
macOS Ventura 13.7 22H123 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체 공개 +17 | 575 | 24.09.1917:09 | 좌절금지 |
macOS Sonoma 14.7 23H124 정식버젼 고스트 이미지 OC 1.0.1 ft: 전체공개 +31 | 910 | 24.09.1723:58 | 좌절금지 |
[초급편] 문제 스스로 해결하기 +20 | 4003 | 24.03.2920:07 | Stultus |
[입문편] 첫 해킨 길라잡이 +40 | 5087 | 24.01.1218:54 | Stultus |
[필독 - 안정화] macOS 해킨토시 설치 후 안정화 작업 목록 및 글타래 모음 총정리 📋 +67 | 5.1만 | 23.01.0913:39 | shl628 |
Hot AMD Sequoia용 AppleALC 1.9.2 +3 | 109 | 24.10.2319:04 | 사노라맨 |
Hot [Sequoia 15.0.1, OC r1.0.2] ASUS TUF B550-PLUS / RYZEN 5 5600X / RX470 +2 | 106 | 24.10.2322:26 | 뿌엥 |
Hot OCLP로 지원되지 않는 기기/dGPU를 사용하는 해킨토시의 사이드카 품질 문제 해결방법 +1 | 122 | 24.10.2321:29 | 해킨도전자 |
106 | 24.10.2322:26 | 뿌엥 | |
122 | 24.10.2321:29 | 해킨도전자 | |
109 | 24.10.2319:04 | 사노라맨 | |
787 | 24.10.1412:27 | shl628 | |
673 | 24.10.1316:00 | 수박 | |
346 | 24.10.1222:56 | Stultus | |
941 | 24.10.1121:10 | 좌절금지 | |
734 | 24.10.1115:53 | 수박 | |
578 | 24.10.0900:22 | 줌바이퍼 | |
1406 | 24.07.1219:19 | Stultus | |
1214 | 24.10.0500:31 | 줌바이퍼 | |
569 | 24.10.0410:49 | Tamy | |
749 | 24.09.2923:48 | 머트 | |
629 | 24.09.2822:28 | 머트 | |
463 | 24.09.2808:22 | Tamy | |
894 | 24.09.2321:32 | Stultus | |
995 | 24.09.2210:59 | 좌절금지 | |
644 | 24.09.2203:23 | 누림어멈 | |
1191 | 24.09.1919:17 | 좌절금지 | |
575 | 24.09.1917:09 | 좌절금지 | |
498 | 24.09.1813:37 | Stultus | |
910 | 24.09.1723:58 | 좌절금지 | |
601 | 24.09.1722:40 | 좌절금지 | |
453 | 24.09.1717:13 | 맥가즈아 | |
562 | 24.09.1708:13 | 김경석 | |
234 | 24.09.1617:47 | Panictosh | |
768 | 24.09.1504:35 | Tamy | |
584 | 24.09.1319:18 | Stultus | |
706 | 24.09.1019:44 | 치토 | |
484 | 24.09.0118:13 | 머핀X | |
462 | 24.09.0112:54 | 해킨도전자 | |
546 | 24.08.3115:34 | 머핀X | |
306 | 24.08.2601:42 | 화정큐삼 | |
305 | 24.08.2422:59 | 하나브 | |
318 | 24.08.2316:25 | 화정큐삼 | |
415 | 24.08.1810:56 | CanBe | |
363 | 24.08.1800:04 | 화정큐삼 | |
300 | 24.08.1722:03 | 화정큐삼 | |
201 | 24.08.1710:14 | jbhlyk | |
312 | 24.08.1622:06 | Stultus | |
218 | 24.08.1511:16 | hackillious | |
169 | 24.08.1421:30 | 세유니 | |
419 | 24.08.1419:58 | Stultus | |
377 | 24.08.1311:26 | 오디세이 | |
270 | 24.08.1115:46 | 좌절금지 | |
186 | 24.08.1111:21 | 티타보르 | |
233 | 24.08.1022:46 | Stultus | |
539 | 24.08.1022:10 | 오디세이 | |
168 | 24.08.1019:05 | jbhlyk | |
200 | 24.08.0923:20 | RogerT |
❝오픈코어로 넘어가기_vesa모드로도 부팅에러(설치화면 보지 못하네요)❞