's Avatar

@garyodernichts.bsky.social

314 Followers  |  33 Following  |  21 Posts  |  Joined: 13.10.2023
Posts Following

Posts by (@garyodernichts.bsky.social)

Preview
Privileged Arbitrary Code Execution on STM32H73XXX microcontrollers This is somewhat of a follow-up to the Nintendo Alarmo blog post from last year. This time the blog post is about the security of the STM32H...

I wrote a blog post about the security of the STM32H730 microcontroller used in the Nintendo Alarmo. There's a vulnerability that allows dumping the protected secure bootloader of the STM32H730.
You can read more about it here: garyodernichts.blogspot.com/2025/11/priv...

13.11.2025 17:25 β€” πŸ‘ 20    πŸ” 1    πŸ’¬ 0    πŸ“Œ 0
Video thumbnail

now with sound!!!!!

I had to change the audio amplifier's config to make it run at 32KHz (instead of the standard 48KHz). heh

03.09.2025 01:25 β€” πŸ‘ 13    πŸ” 1    πŸ’¬ 3    πŸ“Œ 0
Video thumbnail

here's a framebuffer graphics demo (this has no practical purpose and I can't prove I'm not just like, playing a youtube video or something)

05.06.2025 16:26 β€” πŸ‘ 1285    πŸ” 269    πŸ’¬ 31    πŸ“Œ 57
Preview
Nintendo’s Alarmo will be available for everyone starting in March Alarming news.

www.theverge.com/2025/1/13/24...

24.03.2025 20:35 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

I spoke too soon heh...
Nintendo released a new Alarmo update a few hours ago. The new update contains a new 2ndloader where the signature is properly checked in USB mode. If you want to modify your Alarmo without soldering, stay on v2.0.0!

24.03.2025 07:43 β€” πŸ‘ 79    πŸ” 13    πŸ’¬ 0    πŸ“Œ 3

Thanks for the support!

17.03.2025 18:44 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Nintendo is still shipping Alarmos without signature checks in the 2ndloader. I assumed they might do something for the wide retail release, but it looks like they don't really care (for now).

08.03.2025 10:41 β€” πŸ‘ 16    πŸ” 0    πŸ’¬ 1    πŸ“Œ 1

If you set the bLength field of an interface or endpoint descriptor to zero, the parser will get stuck in an endless loop.
This causes the entire console to freeze when encountering a malformed configuration. Also not a big issue, but this was one of the things which lead me to discovering UDPIH :P

27.02.2025 17:19 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

When reading multiple configurations, UHS doesn't change the size of the next configuration to be read.
So the initial read of the next configuration ends up being the full size of the previous configuration.
In practice this also isn't an issue, the device will simply respond with a short packet.

27.02.2025 17:19 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

wIndex contains the Language ID for string descriptors.
This causes UHS to retrieve the first configuration multiple times if the device has multiple configurations.
In practice this is not a big issue though, most devices only have a single configuration and UHS will only use the first one anyway.

27.02.2025 17:19 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Screenshot of the USB 2.0 specification. Shows the "Get Descriptor" section which mentions that wValue contains the "Descriptor Type" and "Descriptor Index". wIndex should be zero or contain the Language ID for string descriptors.

Screenshot of the USB 2.0 specification. Shows the "Get Descriptor" section which mentions that wValue contains the "Descriptor Type" and "Descriptor Index". wIndex should be zero or contain the Language ID for string descriptors.

A USB device can have multiple configurations, which are retrieved using the GET_DESCRIPTOR request.
The index of the descriptor to be retrieved is stored in the lower byte of the wValue field.
UHS keeps this field as 0 and uses the wIndex field instead to retrieve multiple configurations.

27.02.2025 17:19 β€” πŸ‘ 5    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Wii U fun facts:
While reverse engineering the Wii U's USB Host Stack (UHS) I noticed several fun quirks in their descriptor code.
One of them was even exploitable (UDPIH), but there are some others that I have never mentioned before. This thread contains some of the minor ones I still remember.

27.02.2025 17:19 β€” πŸ‘ 20    πŸ” 2    πŸ’¬ 2    πŸ“Œ 0

Hey, sorry I just saw this. I've replied to the issue and updated the script.

16.02.2025 13:05 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Hi, feel free to send a DM. My DMs should be open now.

11.02.2025 08:26 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Preview
GitHub - GaryOderNichts/alarmo_doom: Doom for the Nintendo Alarmo Doom for the Nintendo Alarmo. Contribute to GaryOderNichts/alarmo_doom development by creating an account on GitHub.

The source code and instructions can be found here: github.com/GaryOderNich...
Big shoutout to STM32Doom and Chocolate Doom for making this possible!

02.11.2024 16:53 β€” πŸ‘ 4    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
GitHub - GaryOderNichts/alarmo_doom: Doom for the Nintendo Alarmo Doom for the Nintendo Alarmo. Contribute to GaryOderNichts/alarmo_doom development by creating an account on GitHub.

There's currently no audio support. To avoid the USB loader memory size restrictions, the .wad needs to be compressed and then uncompressed to external memory on boot.
However, it's possible to load the shareware version of Doom entirely from USB, without modifying the Alarmo.

02.11.2024 16:53 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Video thumbnail

After my last post, it was pretty clear what everyone wanted to see on the Alarmo. So, here it is - Doom running on the Nintendo Alarmo!

02.11.2024 16:52 β€” πŸ‘ 104    πŸ” 46    πŸ’¬ 4    πŸ“Œ 7
Video thumbnail

It's possible to run custom code on the Nintendo Alarmo via USB - without opening it up!
More details in the blog post here: garyodernichts.blogspot.com/2024/10/look...
#nintendo #hacking

30.10.2024 00:33 β€” πŸ‘ 34    πŸ” 14    πŸ’¬ 1    πŸ“Œ 1

All content files on the Alarmo eMMC are stored as 'CIPH'-files. These files are AES-128-CTR encrypted and have a RSA-2048 signature (PKCS#1 v1.5 with SHA256) at the end.

20.10.2024 20:18 β€” πŸ‘ 8    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Diagram which shows the Nintendo Alarmo boot process

Diagram which shows the Nintendo Alarmo boot process

Here's a simplified overview of what I figured out about the Nintendo Alarmo boot process so far.

20.10.2024 20:18 β€” πŸ‘ 15    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

I kind of forgot about Bluesky and now I have over 50 followers out of nowhere. I guess I should start posting some more things over here!

20.10.2024 19:39 β€” πŸ‘ 13    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
Exploiting DNS response parsing on the Wii U It's annual Wii U exploit time! πŸ˜„ Image of the Wii U connection test screen on the GamePad. After reverse engineering parts of the Wii Us' ...

Ever wanted to exploit DNS response parsing on the Wii U? I have just released DNSpresso!
You can find the technical write-up here: garyodernichts.blogspot.com/2023/10/expl...

28.10.2023 11:02 β€” πŸ‘ 6    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0

wii u

14.10.2023 08:17 β€” πŸ‘ 15    πŸ” 5    πŸ’¬ 3    πŸ“Œ 0