beeper / mac-registration-provider

A small service that generates iMessage registration data on a Mac
GNU Affero General Public License v3.0
138 stars 29 forks source link

No offsets for macOS 13.3 #5

Closed broskees closed 10 months ago

broskees commented 10 months ago

Appologizes ahead of time for the redacted information. I'm not sure what specifically is safe to share.

After fussing around with mac not wanting to run the binary due to it being an "unidentified developer" - I got it to run and generate somethngs.

Here's what my terminal output looked like: ./mac-registration-provider 2023/12/21 11:18:00 Starting mac-registration-provider [Redacted] 2023/12/21 11:18:00 Loading identityservicesd 2023/12/21 11:18:00 No offsets found for 13.3/22E252/arm64 (hash: [Redacted])

I then tried to use this hash in Beeper Cloud for my mac and got this: "Invalid registration code or provider not reachable"

I used this repo because originally I just tried the "Generate one from this Mac" and I got this error: "Error: spawn /Applications/Beeper.app/Contents/Resources/mac-registration-provider/mac-registration-provider-universal ENOENT"

So it looks like the binary is included in the download of the app, but for whatever reason wasn't able to run on my machine through Beeper.

Finally, I tried running the binary from the application directly via the terminal as well, which gave me the same output as the downloaded binary from this repo. However, that registration code also didn't work. I believe it's the same registration code as the one from the first binary, but I didn't compare.

Can I provide any more information to help debug this? I'm happy to do so.

EDIT: I just realized that the first redacted string was just the commit hash, here it is: 5789044a

msiejak commented 10 months ago

Same exact issues happened to me as well. Running macOS Catalina (10.15.7 (19H2026))

JJTech0130 commented 10 months ago

The reason you're having an issue is because you're on a macOS version not supported by this tool. Since we're calling a function that doesn't have a symbol in the binary, the offset of the instructions to run in the binary is hardcoded by the hash of the binary on your OS.

Hopefully we'll have a better method soon, or if you upload a copy of /System/Library/PrivateFrameworks/IDS.framework/identityservicesd.app/Contents/MacOS/identityservicesd from your mac then I should be able to analyze it and give you the offsets.

JJTech0130 commented 10 months ago

(The supported versions are listed here: https://help.beeper.com/how-to-setup-imessage-with-a-mac/)

broskees commented 10 months ago

Yeah, realized that after looking at the source code for outputs that the version wasn't supported. I upgraded my Mac OS to 13.6.3 and everything worked as expected. Thanks for the help!

0xdevalias commented 10 months ago

FYI, I added the offsets for 13.3.1 in this PR: