From 7347de14d7340293e04529b52eb7b2af8a23da2d Mon Sep 17 00:00:00 2001 From: JJTech Date: Mon, 31 Jul 2023 15:08:34 -0400 Subject: [PATCH 1/4] Create README.md --- README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..7684e47 --- /dev/null +++ b/README.md @@ -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. From 84f9c114f773ecf0cdcaf8dda8e520d2f6c1bce0 Mon Sep 17 00:00:00 2001 From: JJTech Date: Mon, 31 Jul 2023 15:11:20 -0400 Subject: [PATCH 2/4] Add note about Discord --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 7684e47..29a50e3 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,9 @@ It's pretty self explanatory: 2. `pip3 install -r requirements.txt` 3. `python3 ./demo.py` +## Troubleshooting +If you have any issues, please join [the Discord](https://discord.gg/BVvNukmfTC) 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. From 31102d6b53d4b77ed41c518745803014b34a8710 Mon Sep 17 00:00:00 2001 From: JJTech Date: Mon, 31 Jul 2023 15:12:47 -0400 Subject: [PATCH 3/4] fix spelling lol --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 29a50e3..cda11af 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 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***! +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! @@ -28,6 +28,6 @@ This is only necessary during initial registration, so theoretically you can reg 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, +iMessage will cache public keys. If you get decryption errors in pypush or can only send and not receive 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. From eedefbab8a55adf3a088dbe076bfc54d085eeee1 Mon Sep 17 00:00:00 2001 From: JJTech Date: Mon, 31 Jul 2023 15:13:42 -0400 Subject: [PATCH 4/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cda11af..423611c 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Once it loads, it should prompt you with `>>`. Type `help` and press enter for a 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. +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. ### Public key caching iMessage will cache public keys. If you get decryption errors in pypush or can only send and not receive messages from another device,