Posts

This profile is from a federated server and may be incomplete. Browse more on the original instance.

Rairii, to random
@Rairii@haqueers.com avatar

due to the admin of this server being out of contact for a few months, and the various mastodon security issues, i'm about to move servers.

see you on the akkoma side :)

Rairii, to random
@Rairii@haqueers.com avatar

i just found by a google search some old internal apple documentation about the OF ROM of the blue&white powermac G3

...it defines "MacOS-X" as: UNIX-based MacOS; think of it as "Mac OS NT".

it also mentions putting the macio MMIO physical address at 0x80800000 "to boot NT just in case" haha

it also mentions that OF's little endian mode "actually works in OF"

looking at the disassembly of the B&W's init code i have, it actually should work!

basically, when little-endian is set, after setting MSR[LE] it will set bit 5 (LE_MODE bit, turns on little endian) to PICR1, by using CONFIG_ADDR/CONFIG_DATA writes, and only uses every second instruction to do that (with each other instruction being a nop mainly) because of how MSR_LE works

in fact it seems the bootrom of every ppc mac after this has the exact same code, even those that use a different memory controller, no WONDER little-endian? is notorious for bricking lol

Rairii,
@Rairii@haqueers.com avatar

i think an error in that documentation is why the COFF with PE optional header loader stuck around, though:

it's described in the documentation as a PEF loader, the PPC classic mac os executable format!

Rairii, to random
@Rairii@haqueers.com avatar

decided to throw securebootai.dll (from latest germanium build) into IDA, was not disappointed

there's a list of systems where db/dbx updates aren't attempted, that being:

  • any (amd64) apple system (those with secure boot just hardcodes db/dbx, without the ability to update it, right?)
  • fujitsu FJNBB38
  • a big list of HP systems: 83D5, 83DA, 83DD, 83E7, 83E8, 83E9, 8401, 8460, 8461, 8462, 8463, 8464, 8584, 8589, 8617, 8618, 8619, 8620, 869B, 86A3, 86A5, 86A8, 870B, 870C, 870F, 8710, 8711, 8712, 8713, 8714, 8715, 8717, 8718, 8719, 871A, 871B, 871C, 8723, 8724, 8725, 872B, 872C, 872D, 872E, 8736, 874D, 874E, 874F, 8750, 8751, 8752, 8753, 8754, 8755, 8760, 876D, 8779, 877D, 8780, 8783, 87EC, 880F, 8810, 882C, 882D, 8830, 8835, 8836, 885C, 887E
  • and any HP system where its custom protection against performing db/dbx updates is enabled

also:

the file doesn't exist right now, but there's code (behind a registry(?) flag) to apply "dbxupdate2024.bin", and debug strings imply that would revoke the PCA 2011 cert entirely!(GetSecureBootUpdateFilePathPCA2011RevokeDBX)

i expected that to be done, but only on new systems, fun (given that it's behind a flag it may well happen only on new systems)

Rairii,
@Rairii@haqueers.com avatar

@wolf480pl don't know yet.

Rairii,
@Rairii@haqueers.com avatar

@wolf480pl IF older systems get the cert revoked it should be able to be reverted in the uefi firmware setup, which has an option to revert db/dbx back to the default (in the uefi firmware)

Rairii, to random
@Rairii@haqueers.com avatar

ok, this is going to be interesting

i obviously need to be able to map physmem at 0x80000000

but OF puts keylargo and the usb controllers there

Rairii,
@Rairii@haqueers.com avatar

<some experimentation later>

unmapping 0x80000000 to 0x80010000 works, but obviously breaks any accesses to hardware that happens to be there

which includes the IDE controller

BUT, for booting NT I only really care about 0x80004000 - and binaries load far above there anyway (so I can map physmem starting at 0x80082000 and mark physmem before that as firmware temporary etc and use the other mapping for needing to touch low memory before NT kernel init)

unmapping 0x80004000 to 0x80010000 works, that should be more than enough space for the ARC system table etc

and everything i care about still works, i don't know what MMIO is there but i wouldn't be surprised if it's just address mirrors there

Rairii, to random
@Rairii@haqueers.com avatar

ok

so asking OF to set the framebuffer to 16 or 32bpp works

although it breaks the console because it still uses the old 8bpp framebuffer, I did a framebuffer fill and it worked...

Rairii, to random
@Rairii@haqueers.com avatar

current status: so the open firmware framebuffer is set to use a colour lookup table

I'M GOING TO NEED TO KNOW WHERE THAT TABLE IS IN MEMORY

jernej__s,

@Rairii Can you post the palette?

Rairii,
@Rairii@haqueers.com avatar

@jernej__s I tried dumping the palette but I think that register is write-only.

I ended up filling the framebuffer and observing the colours appeared to be similar to the VGA ones.

Rairii, to random
@Rairii@haqueers.com avatar

if the flipper zero is so good where's the flipper one

Rairii,
@Rairii@haqueers.com avatar

@jordan my question still stands

Rairii,
@Rairii@haqueers.com avatar

flipper one? what am i saying, the next iteration would surely have to be the vegas zero or hollywood zero!

Rairii, to random
@Rairii@haqueers.com avatar

it begins

Rairii, to random
@Rairii@haqueers.com avatar

OF really takes forever to scroll the console (on framebuffer) up

so i just found the clear screen equivalent:

-1 to line#

Rairii, to random
@Rairii@haqueers.com avatar

additional blank CD-Rs GET

burned osx 10.2.4 install cd specifically for that system

and it DOES have the correct driver for the radeon 7500

...why was it so awkward to find OS9/OSX install media with the correct driver lol

Rairii, to random
@Rairii@haqueers.com avatar

current status: used all my remaining blank CDs on powerpc mac related things, everything classic mac or osx i've burned so far (and that includes the one already installed on the 20GB hd, which is ja-jp 9.2.2) reconfigures the framebuffer to 640x480

...i know the radeon 7500s in these ibook G3s are notorious for dying, but OF's setting up the initial 1024x768 framebuffer fine...

i would burn disc 1 of 10.2.4 for ibook g3, but as just said i'm out of blank CDs

oh well, if I port NT to this thing I'll only care about the OF framebuffer anyway

wamwoowam,

@Rairii as in, reconfigures and there's no way to change it back? that sounds like very normal Mac OS behaviour if the OS was set to 640x480 in software

Rairii,
@Rairii@haqueers.com avatar

@wamwoowam display config in OS9 claims it's 1024x768 lol

Rairii, to random
@Rairii@haqueers.com avatar

so i messed around with the uninorth registers a bit, the ones at 0xF8000000 and noticed some things, but those things are mainly about how the address space mirroring works there

Rairii, to random
@Rairii@haqueers.com avatar

woo

i ordered an ibook G3 (with charger) from yahoo auctions

it just arrived

ozzelot,
@ozzelot@mstdn.social avatar

@Rairii
What magic will we see upon it
(Also, they're delightful, congrats on your purchase)

jernej__s,

@ozzelot @Rairii I'm guessing Windows NT?

Rairii, to random
@Rairii@haqueers.com avatar

bootmgr in 26052 updated the revocation version to 2.0 (from 1.0) and also changed the checks for said revocation version (early in main() and when boot application loads bootmgr) to parse dbx (using a new GUID for that) instead of just checking a NV|BS variable

Rairii,
@Rairii@haqueers.com avatar

the way the new dbx parameter was implemented is "interesting" (blame OEM's implementations for this i guess):

dbx is walked through looking for EFI_CERT_SHA256_GUID entries with signature owner EFI_IMAGE_DBX_SVN_GUID (9D132B6C-59D5-4388-AB1C-185CFCB2EB92)

when such an entry is found, the 0x20 bytes of "revoked hash" is instead the following structure:

BYTE Unused; // (version? accidentially using the wrong offset? whatever)
GUID BinaryIdentifier; // Identifies the binary being revoked by GUID. bootmgr's is 9D132B61-59D5-4388-AB1C-185CFCB2EB92
DWORD VersionNumber; // Identifies the minimum version of this binary that is allowed to run.
BYTE Padding[11];

where multiple entries exist for the same BinaryIdentifier, the largest VersionNumber is used.

this is basically the same as a proposal I gave MS some time ago (use an authenticated variable with updates, use the largest version for multiple entries), but using dbx for it and extended to support an arbitrary number of binaries.

Rairii, to random
@Rairii@haqueers.com avatar

mpeg layer π

  • All
  • Subscribed
  • Moderated
  • Favorites
  • normalnudes
  • rosin
  • ngwrru68w68
  • tacticalgear
  • DreamBathrooms
  • mdbf
  • magazineikmin
  • thenastyranch
  • Youngstown
  • Durango
  • slotface
  • everett
  • vwfavf
  • kavyap
  • megavids
  • khanakhh
  • Leos
  • cisconetworking
  • cubers
  • InstantRegret
  • ethstaker
  • osvaldo12
  • modclub
  • anitta
  • provamag3
  • GTA5RPClips
  • tester
  • JUstTest
  • All magazines