Katten is a reverse engineering and reimplementation of the server software for the Plus+ social gaming network and the Touch Pets series of games.
If you want to discuss or help with reverse engineering Plus+, please consider joining the Plus+ Discord server.
Katten is currently in its early stages. See the project news and the Plus+ server readme for status updates and what works.
These games are tested. Other games may work, but YMMV.
- Touch Pets Dogs 21 (2010)
- Touch Pets Cats (2010)
- Touch Pets Dogs1 (2009)
- Rolando 2 (2009)
- Topple 2 Plus (2009)
- Rolando (2008)
1 Not actually tested, but very similar to supported games and should work with minor tweaking.
- Up to date Linux distro
- Jailbroken iPhone running iOS 7 or older with AppSync Unified installed
- Newer iOS versions are not generally compatible with Plus+ games
- Plus+ games don't run on touchHLE (yet)
- An IPA for the game you want to play, if it's not already installed
- You will also need the Terminal and the command line version of
installipa
installed - You may also want to use iFile to upload the APK
- You will also need the Terminal and the command line version of
Firstly, in a terminal, clone the Katten repo and enter the directory:
git clone https://github.com/knot126/Katten
cd Katten
Install:
- MongoDB
- mitmproxy
- Flask
- pymongo
- argon2-cffi (for Python, optional)
Note: MongoDB is not generally available in most distros' repos. It's fine to use a "portable" version that has been extracted from one of the tarballs instead of properly installing it. (We will probably switch away from MongoDB soon anyway.)
On Arch Linux, you can run:
sudo pacman -Syu mitmproxy python-flask python-pymongo python-argon2_cffi
Then download MongoDB and extract it somewhere.
The is a script (run.py
) which starts all of the needed servers automatically. It needs runconfig.toml
to tell it where mongod
is, where the database is, and which mitmproxy
command to use.
mongo_exec = "mongod"
mongo_db = "/home/dragon/Documents/katten-data"
mitmproxy_exec = "mitmweb"
mongo_exec
is the command (or path) formongod
(the MongoDB server)mongo_db
is the path to the MongoDB databasemitmproxy_exec
is the command (or path) formitmproxy
To start the server, just run:
./run.py
... in the Katten directory.
Games need to have a slight patch applied so they don't use HTTPS. There is a generic patch script provided in the tools directory that can do this. To patch a game:
- Extract your game's main binary from the IPA; this is usually a file with the same name as the
.app
folder with no extension - Open a terminal in the
tools
folder - Run the patch script on your game's binary:
./nohttpspatch.py <path to game binary>
- This puts out one file for each architecture the game binary supports. Choose the one that matches what your phone has.
- Either:
- Replace the binary in the IPA with the patched one and install it
- Upload the binary directly to the installed app dir using iFile (just make sure it's correctly named and has the execute bit set after uploading)