Tursiops: Universal trainer for Linux

Tursiops screenshotOne of the things I do miss about Windows is the abundance of universal trainers for it. If you don’t know what a trainer is, it’s a program that writes over the memory of another process, typically a game, to confuse the program into doing something it wouldn’t normally do. Trainers are often used to get infinite lives/money/ammo in games. However, they must know where in memory these variables are being stored.

A universal trainer is the most generic trainer: it allows the user to search a process’ memory space for a certain value, and further refine the search until the variable’s location in memory is isolated. Then the user may modify that memory to change that variable while the program is running.

Kcheat is the only similar program I’ve seen for Linux. Unfortunately, it requires KDE 1… which nobody is going to install just to use this program.

Well, Wednesday I decided it might be cool to design a new one. So I did, using portions of Kcheat (mainly the lower level stuff). It’s implemented in C# with Gtk# as the UI, and a small C library to take care of the nasty work. As of last night it’s almost done — already! It can search the memory of a process for six different data types (signed/unsigned 8/16/32-bit integers) and allow their contents to be tweaked. It’s a little unstable as I haven’t done any exception handling yet (except where necessary) but the stable release will be pretty slick. The UI is uncluttered and simple, though demand may see the addition of new features.

The only drawback is that the project is generally pointless: most Linux games that people care about are either network games, which prevent clients from tampering with the data on the server, and the others are open source anyway, so you can just comment out the “if (lives == 0)” line and recompile.

On the other hand, this is easier than recompiling, if a bit hackish.

10 Responses to “Tursiops: Universal trainer for Linux”

  1. Avinash says:

    Is this done? Could you please release this app? i need to cheat flash games…

  2. Paradox says:

    Do you have a binary for this or source? can not seem to find anything like it out there and want to mess with some of my programs. Thank’s in advance.

  3. Anonymous says:

    When will this be finished!??

  4. Chris says:

    I’ll release the source when I have the time and motivation to go back and clean it up. It’s a pretty hackish thing right now and I’d like to make it presentable before releasing it.

  5. Chris Rocks says:

    Oh, thank god Chris is still active especially with Tursiops!! I sincerely hope Chris releases this soon!! This application with or without the source code is currently my heart’s deepest desire and dream! I really don’t think anybody will care how messy it’s code is. I have much respect for you, Chris!! My head will be out of space when this is released!! Thank you again if you can Chris!!!!

  6. Anonymous says:

    I am very interested in Tursiops. Do you have any idea when this will be released?? As for the messy code, I am, in fact, an experienced C/C++ programmer. I could help you clean it up. I’ve made four 2D games, a multi-platform user-friendly “file locker,” and a few other applications. I wish to remain anonymous, so I will refrain from publicly giving links and names. If Turiops is already finished, why not release it? I doubt any of my code is any nicer than yours. One project, in fact, was only based on a single main.cpp with over three thousand lines of code! That messy code was the obsoleted DOS file locker/unlocker now inoperable on the newer win32 Windows and has no support for *nix based operating systems. It’s been years since I’ve worked on that, but now that I remember it, I’ll rework it for Linux and the newer win32 Windows.

    I do hope you have no regret posting this blog if Tursiops was intended for private use. I would greatly appreciate you if the binary or source would be released. Unpresentable code isn’t a major issue and readable code could be improved and released to future version, even without any improvements. Again, I insist on the whole point of this comment: I would greatly appreciate you if the binary or source would be released, in any matter of time.

  7. Ryan says:

    I’d love to see this aswell; awaiting a beta, even if it is “ghetto”.

  8. [...] I wrote a while ago about a project I had started to develop a universal trainer for Linux. I’ve been intentionally delaying the public release because I wrote it as one of my first C# projects and the codebase was less than maintainable, and probably had a lot of memory leaks. Additionally, the UI was created using Glade and instantiated using Glade#. [...]

  9. blah says:

    Is this still active?

  10. Chris says:

    Yes, in fact there has since been a public release: http://www.chrishowie.com/2007/12/03/tursiops-01-released/

Leave a Reply