Skip to content

knot126/Katten

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Katten Project

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.

Status

Katten is currently in its early stages. See the project news and the Plus+ server readme for status updates and what works.

Game Status

These games are tested. Other games may work, but YMMV.

Game Notes
Touch Pets Cats (2010)
Touch Pets Dogs 21 (2010)
Touch Pets Dogs1 (2009)
Relies on touchpet server
Rolando 2 (2009)
Topple 2 Plus (2009)
Rolando (2008)
Only needs Plus+ server, mostly working

1 Not actually tested, but very similar to supported games and should work with minor tweaking.

Setup

Requirements

  • 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

Server

Clone repo

Firstly, in a terminal, clone the Katten repo and enter the directory:

git clone https://github.com/knot126/Katten
cd Katten

Install dependencies

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.

Configuration

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) for mongod (the MongoDB server)
  • mongo_db is the path to the MongoDB database
  • mitmproxy_exec is the command (or path) for mitmproxy

Starting the server

To start the server, just run:

./run.py

... in the Katten directory.

Game

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)

Releases

No releases published

Packages

 
 
 

Contributors

Languages