Cheat Engine

Your feeling about that?


  • Total voters
    25

Klaue

Member
Joined
Aug 4, 2009
Messages
240
Hokay, before I even begin, let me explain my stance on cheating in games to keep flaming low :)


Im my opinion, there are two main types of cheating: Cheating offline and cheating online. The latter means cheating in multiplayer games (or cheating to push up your score and submit it in flash games) and is something I'm really against. When you cheat to put yourself above other players, ruining their enjoyment of a game in any way, then you suck more than a vacuum cleaner. This is NOT the type of cheating I mean in this thread.


In the other form of cheating, the offline one, you cheat no one but the game. Many people think that even offline cheating is bad because it robs you the enjoyment of the game. While this is true in some cases, my POV is that there are many cases where cheating can improve your enjoyment of the game. I'm not one to go running for cheats the time the first obstacle is showing up (for example, I played the infamous meat circus level in Psychonauts until I finally managed to beat it, without using cheats), but there are many games that either have an outlandish difficulty or justannoying parts in them.


As an example, the difficulty in Incewind Dale was, in my opinion, so out there that I only managed to beat the first group of enemies after reading multiple char building guides and it still was unbearably difficult, enough to suck any enjoyment out of the game. So I used cheats to see where the story was going and making the game (slightly) enjoyable again. Another example: The low weight the player was able to carry in Stalker and the resulting endless walks to the merchant were so annoying that I was only able to enjoy the game after doubling the weight the player was able to carry.


In such cases, my opinion is that cheating is not only not bad, but even preferable to not-cheating.


Soo.. now why I opened that thread..


In windows, you have various Programs for cheating (basically setting or freezing memory areas that contain values like money, health and so on), like, for example, Cheat Engine. In linux, nothing that is really comparable exists, as far as I know. The only thing there is is scanmem, a console program that allows for searching and holding of a single value. Better than nothing, but not really that great.


Now, some time ago I started making a Program in C++/Qt with a GUI similar to Cheat Engine using scanmem as a code base, basically a (low featured) linux-version of Cheat Engine.


I abandoned that project some time ago because I must confess that I diddn't fully understand scanmem's C code and the way linux stores the memory values. I also diddn't see much of a need for a prog like this.


Now, while thinking about what prog I could maybe make for the pandora, that old project came back to mind. As far as I know, QT should work on the pandora and the memory is probably managed similar to the way it's in normal systems (I could be dead wrong with this one though).


Basically, what I would like to know is if anyone here would think such a program would be good or if anyone would hate such a prog. Just getting to know the general feeling of the community about this, to know if it's even worth to dig in my pile of unfinished code for this.
 
If it's like cheat engine for the pc it would be great to have.
 
Editing memory is way beyond the amount of effort I want to put into playing a game.


I would never use it, but I don't think I would care if someone else used it on something I made.
 
eh that's pretty sweet, I didn't think that it was possible to read other program's memory in Linux!


I guess you need to be root though - or hell maybe you need a kernel driver? Don't bother answering this question, I c ould ook it up myself but am just too lazy atm :|.


edit: Oh and I love the idea :D . Very good work if you can pull this off nice. I loved cheatengine and my Gameboy Color/Pocket gameshark - they pwned :) . btw, Map corruption is always fun, as is undefined memory when used as legitimate memory - that's it, i'm going to fill my games with some dody pointers for array IDs that can't normally be accessed in game :) . Then you can use this to gain the glitches :) (or just use shed lol, save hacking ftw).
 
Last edited by a moderator:
You can, using the maps file at /proc/<pid>/maps


I don't remember if you have to be root as I diddn't look into it for a year or so, but I think you won't
 
I'd say you'd at least have to be root to edit programs run by root/init. Otherwise you could put shellcode into a function or some buffer that would otherwise be harmless - nevertheless trying some stuff with that now - thanks for the tip!


It seems the maps file is like a list of allocated memories, and to make the program behave differently you gotta change the locations to your own allocated memory - don't reply, I gotta do my own research :) . And I will right now.


May I add a request?


Check if the program you're trying to inject data to is using the network(lsof or fuser? Htere's probably a better way to do it from a program but I can't think of one at the moment) - if it is, don't allow injection. That should stop most people trying to cheat online. Of course you could mod the source to ignore that - or just use scanmem - but it stops noobs doing it.
 
I'd say you'd at least have to be root to edit programs run by root/init.
That may very well be, but who runs games as root? ;)

It seems the maps file is like a list of allocated memories, and to make the program behave differently you gotta change the locations to your own allocated memory - don't reply, I gotta do my own research :) . And I will right now.
I think it was possible to change the value directly, or else the pointers in the game woul probably still point at the old value - but do your research, as I don't really remember it anyway :) If I do pick this old project up, I'll probably have to do lots of research myself, as I have no idea how linux memory allocation works :) (it's just a Qt guy which allows to select a PID using a list of running programs yet, not much more)

Check if the program you're trying to inject data to is using the network(lsof or fuser? Htere's probably a better way to do it from a program but I can't think of one at the moment) - if it is, don't allow injection. That should stop most people trying to cheat online. Of course you could mod the source to ignore that - or just use scanmem - but it stops noobs doing it.
On one hand, that would be a great idea. On the other hand, it has many false positives. Games may have an open connection because of checking for updates. Or because they're flash games (not every flash game has a top list or something - most don't).


Maybe if someone saves a found memory space as "score", a little program crash could be in order B)


Well, If I do work on it, it'll have to wait, I have the urge to build an own nonogram game (with automatic solver behind the scenes) right now, so that'll be first :)
 
Last edited by a moderator:
That may very well be, but who runs games as root? ;)
Well, actually lots of people run games as root, it's sad to see. It was more a comment on security than an actual note.


Myself I don't know much about the Linux memory manager. Looks like it's kernel source time. If you wanna peek into stuff like this it's better to look at the Pandora/ARM kernel - if you don't have a Pandora yet stuff like this can be hard to test.


While it's true there would be false positives, it's better than a whole lot of multiplayer cheats. Maybe you could periodically poll usage, and just refuse to inject when the network is being used? Man I should look further into things myself.


Yeah i'm downloading pandora-kernel from git right now :eek:


EDIT: I ran out of HD space ;.;
 
Last edited by a moderator:
While it's true there would be false positives, it's better than a whole lot of multiplayer cheats. Maybe you could periodically poll usage, and just refuse to inject when the network is being used? Man I should look further into things myself.
I don't think so. The reason is that a properly programmed multiplayer game shouldn't be affected anyway. Say you change your health points in a shooter, then the server would not be affected, so while you would maybe see an increased amount of health in your client, the server will still kill you if your original health ran out.


one of the most important things in multiplayer games is "never trust the user/client", never accept any value sent by the client without double-checking it.


In short: For the overwhelming amount of false positives, the number of multiplayer games that are essentially just badly programmed is too low. At least in my opinion :)
 
I had a cheat cart for most of my old consoles, not normally to cheat but just to have a bit of fun and mess with the game. My favourite was the SNES Action Replay with Street Fighter 2; hours of entertainment with mid-air hadoukens, hyper-speed, randomly changing characters, etc.


Also it's tremendous fun being invincible in GTA and going on a killing spree :D


But I agree that online cheating is very, very naughty; I like the idea of a "crash" if someone attempts it ;)
 
Also it's tremendous fun being invincible in GTA and going on a killing spree :D

True I remember playing that with cheats for the first time, it was almost like playing a new game! Such a laugh, especially the cheats that mess with the physics.


But I always complete a game before trying the cheats.
 
I would say cheats can be useful. I played Super Mario World on SNES and got stuck on the Star Road levels. I then rented a game genie and for the first time ever was able to get past them to finally get to the end. I hated the fact I had to cheat to do it, but was happy to finally finish a Mario game. In some aspects I can have great skills with some games, but when I cannot beat a certain level, it's nice to be able to overcome that to finish. So while it has some downsides, it can sometimes keep from totally ruining an otherwise great experience when you just cannot beat a certain point of a game. I do enjoy the fact that one of the MAME emu's I use on my laptop has the cheat functionality for those games I want to see where it goes but just aren;t good enough at that type of play (DoDonPachi is a good example as you have to be near perfect to see the real ending)
 
sorry for the thread necromantism


I just looked around a bit again and found out that someone not only improved scanmem so it can use double values (for example) but also made a GUI for it, here: http://code.google.com/p/scanmem/


So.. there's now a cheat engine lookalike for linux
 
sorry for the thread necromantism

I just looked around a bit again and found out that someone not only improved scanmem so it can use double values (for example) but also made a GUI for it, here: http://code.google.com/p/scanmem/

So.. there's now a cheat engine lookalike for linux
First of all I quote the necromantism...

then... is this already in the repo in some kind of form ?! o_O It could be useful
 
Back
Top