• Stars
    star
    3,533
  • Rank 12,580 (Top 0.3 %)
  • Language
    Python
  • License
    Other
  • Created over 1 year ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

[being rewritten] Cross-platform iMessage POC

pypush

pypush is a POC demo of my recent iMessage reverse-engineering. It can currently register as a new device on an Apple ID, set up encryption keys, and send and receive iMessages!

pypush is completely platform-independent, and does not require a Mac or other Apple device to use!

Installation

It's pretty self explanatory:

  1. git clone https://github.com/JJTech0130/pypush
  2. If on a Mac, ensure cmake is installed. Otherwise, run brew install cmake
  3. pip3 install -r requirements.txt
  4. python3 ./demo.py

Troubleshooting

If you have any issues, please join the Discord and ask for help.

Operation

pypush will generate a config.json in the repository when you run demo.py. DO NOT SHARE THIS FILE. It contains all the encryption keys necessary to log into you Apple ID and send iMessages as you.

Once it loads, it should prompt you with >>. Type help and press enter for a list of supported commands.

Special Notes

Unicorn dependency

pypush currently uses the Unicorn CPU emulator and a custom MachO loader to load a framework from an old version of macOS, in order to call some obfuscated functions.

This is only necessary during initial registration, so theoretically you can register on one device, and then copy the config.json to another device that doesn't support the Unicorn emulator. Or you could switch out the emulator for another x86 emulator if you really wanted to.

"data.plist" and Mac serial numbers

This repository contains a sample data.plist, which contains the serial number and several other identifiers from a real Mac device. If you run into issues related to rate-limiting or messages failing to deliver, you may regenerate this file by cloning nacserver and running build.sh on a non-M1 Mac. It should place the generated file in the current directory, which you can then copy to the emulated/ folder in pypush.

Licensing

This project is licensed under the terms of the SSPL. Portions of this project are based on macholibre by Aaron Stephens under the Apache 2.0 license.

This project has been purchased by Beeper, please contact them with any questions about licensing.

More Repositories

1

grandslam

Python
22
star
2

nacserver

Objective-C
20
star
3

XRGyroControls

Input plugin for the visionOS Xcode simulator to allow control with an external gyro (WIP)
Swift
17
star
4

ValidationRelay

TrollStore app to relay "Validation Data" for Beeper Mini
Swift
17
star
5

devimages

Developer Disk Images
16
star
6

textfree

Fork of http://rexw3wrz5pldtadf3hy4vqnuzokhco4l32kyntj36fcgpjuy3nvxidid.onion/_xeroxz/textfree
Python
9
star
7

kodobe

[WIP] Adobe DRM plugin for KOReader
Lua
6
star
8

swift-raw-syscall

Raw syscalls, in pure Swift!
Swift
5
star
9

jelly

Just Enough (Dy)Ld LY - now integrated into pypush by default
Python
4
star
10

SideServer

Swift
4
star
11

MultiMC-Patcher

DEPRACATED Patches MultiMC Instances for ARM64
Shell
4
star
12

llfp

๐Ÿ’ก Lutron LEAP protocol (for Python)
Python
4
star
13

smart-servo

Use of "smart" servos in FTC. Will eventually include a library, as well as protocol documentation.
3
star
14

life-support

CMake
3
star
15

CustomFlight

Swift
2
star
16

swift-xcframework

Template for a self-updating wrapper for binary XCFrameworks
Swift
1
star
17

xcframework-template

This template allows you to generate a XCFramework for iOS from a Rust crate.
Makefile
1
star
18

Aarch64-Natives

LWJGL 2 natives for Aarch64
1
star
19

natives

Minecraft ARM64 Natives
1
star
20

JJTech0130

1
star
21

multimc-arm

MultiMC builds for ARM
CSS
1
star
22

bibliotheca

๐Ÿ“š Unofficial Bibliotheca cloudLibrary API - in Go!
Go
1
star
23

easycap-rs

Rust
1
star
24

cs3065cl

OpenCore EFI for the HP Pavilion 15-cs3065cl
C
1
star
25

repo

1
star
26

jjtech0130.github.io

My Website (why do I have to name it jjtech0130.github.io when it's not on github.io...)
Ruby
1
star