Create README.md

This commit is contained in:
JJTech 2023-07-31 15:08:34 -04:00 committed by GitHub
parent be9a278fb6
commit 7347de14d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

30
README.md Normal file
View file

@ -0,0 +1,30 @@
# 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 recieve 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. `pip3 install -r requirements.txt`
3. `python3 ./demo.py`
## 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 emualtor if you really wanted to.
### Public key caching
iMessage will cache public keys. If you get decryption errors in pypush or can only send and not recive messages from another device,
try logging out and back into iMessage on that device, forcing it to refresh it's key cache. Alternatively, you can wait and the cache should
expire eventually.