Skip to content

fix: off_proc_p_name - XPF-verified values for 17.1-17.3 and 26.0.x - #323

Open
kaffeindecaf wants to merge 1 commit into
rooootdev:mainfrom
kaffeindecaf:fix/off-proc-p-name-xpf-verified
Open

fix: off_proc_p_name - XPF-verified values for 17.1-17.3 and 26.0.x#323
kaffeindecaf wants to merge 1 commit into
rooootdev:mainfrom
kaffeindecaf:fix/off-proc-p-name-xpf-verified

Conversation

@kaffeindecaf

Copy link
Copy Markdown

proc.p_name is per-xnu-build, not per-SoC — the previous values were KDK approximations. These come from real kernelcache pulls (libgrabkernel2 + XPF) in the W0lfSword project:

  • 17.1–17.3 → 0x520: XPF-verified on iPhone14,6 (A15/T8110) 17.1 (21B74), xnu-10002.42.9~2. The old 0x579 was KDK-approx and wrong on that range.
  • 26.0–26.0.1 → 0x6A0: XPF-verified on iPhone14,7 (A15/T8110) 26.0.1 (23A355). Per-build: 26.6 resolves 0x488, 17.4+/18.x = 0x57d (0x57D was KDK-approx).

Unchanged: 17.0 keeps 0x579, 17.4+ keeps the 0x57d already set in the 17.4 block, 18.x keeps 0x57d.

Related: #299 (iOS 16.2 p_name should be 0x381 per IDA). This PR doesn't touch 16.x — the value needs confirmation against a 16.x kernelcache — but the same class of KDK-vs-real divergence is at play.

Follow-ups worth a separate PR (not included to keep this one reviewable):

  • XPF kstackptr anchor: Apple renamed the panic string to "Invalid kernel stack pointer (probable overflow)." on 26.x — the prebuilt libxpf.dylib still anchors on the old "probable corruption." string, so the kstackptr finder goes dark on 26.x.
  • apfs fsnode field offsets as globals (0x70 flags / 0x80 uid / 0x84 gid / 0x88 mode, XPF-verified) if the struct-based access in pe/apfs.m ever drifts.

proc.p_name is per-xnu-build, not per-SoC: the 0x579 (17.x base) and
0x57D (26.0) values were KDK approximations. Corrected from real
kernelcache pulls (libgrabkernel2 + XPF):

- 17.1-17.3: 0x520, verified on iPhone14,6 (A15/T8110) 17.1 (21B74),
  xnu-10002.42.9~2
- 26.0-26.0.1: 0x6A0, verified on iPhone14,7 (A15/T8110) 26.0.1
  (23A355). per-build notes: 26.6 resolves 0x488, 17.4+/18.x = 0x57d

17.4+ already set 0x57d (kept). iOS 16.x untouched - issue rooootdev#299
(16.2 should be 0x381 per IDA) is outside this XPF dataset; flagging
it here so it can be confirmed against a 16.x kernelcache.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant