PDA

View Full Version : some call it cheating...



...
02-11-2003, 10:36 AM
ive been playing a computer game for a good while now (years, in fact), and every so often i run into a small cheat/hack program that allows you to do various little things that you wouldnt normally be able to do. these programs seem to be written by average joes (you can tell that by reading their readme files), and they are usually fairly simple.

ive always wondered, how do you go about writing one of those. i assume it has to send functions to the game itself, and ive ran emulators for the game and know a little of the scripting language used, but how would i go about writing a program that does something within the game. if i used game functions in my code, it wouldnt compile because the function wouldnt be recognized. also, i havent a clue how to send information into another program.

anyone have any idea how this is done?

SMurf
02-11-2003, 10:43 AM
I believe most are made by studying the process memory of the game in question and noting how the things you do in the game affects values in memory. Then, you can write a cheat/hack/trainer that directly operates on these areas in the process's memory in order to do something you normally can't.

It's usually quite easy to do it with simple games such as business simulators, but practically impossible on a FPS due to the anti-cheat mechanisms that have been designed specifically to deter this exploit.

...
02-11-2003, 10:47 AM
so i would have to get a memory editor and just watch the values in the game when i perform certain actions?

there are so many values in the game, how would i know which affects what? what process should i use to find out what exactly does what?

Monster
02-11-2003, 12:06 PM
Start easy, make an editor to change saved games. This is a lot easier than hacking in memory.

Brian
02-11-2003, 12:17 PM
Ultima Online?

Eibro
02-11-2003, 12:53 PM
Check out the book "Programming Applications for Microsoft Windows" by Jeff Richter; it has lots of info on DLL injecting which you can use to alter another program.
Also, check up on ReadProcessMemory and WriteProcessMemory @ MSDN. I wrote a small tutorial on how to use these two functions... it details how to change your score in 3D Pinball.

...
02-11-2003, 01:09 PM
>Ultima Online?

was it that obvious? :P

>Check out the book "Programming Applications for Microsoft Windows" by Jeff Richter

ive been looking for a good windows programming book. for some reason no bookstore around here carrys any (or at least none of any value), and i will definitely check out those other things.

thanks for the info.

JoeSixpack
02-11-2003, 05:57 PM
>Check out the book "Programming Applications for Microsoft Windows" by Jeff Richter; it has lots of info on DLL injecting which you can use to alter another program.
Also, check up on ReadProcessMemory and WriteProcessMemory @ MSDN. I wrote a small tutorial on how to use these two functions... it details how to change your score in 3D Pinball.<

You don't need (or want) DLL injecting to hack a game; just hex editor. Check out *ice (or any debugger of any worth). And practice patience.

...
02-11-2003, 06:24 PM
well, hex and memory editors dont work well with UO. too many things are saved on the server side; i can change some things but they change right back.

OneStiffRod
02-11-2003, 06:40 PM
Yeah, any MMORPG is going to be pretty challenging to hack for a reason... They used to have products to hack nintendo games - they were called "Game Genie" and "Game Shark" its pretty hard to hack a DVD-rom tho or any type of rom now that's what games use.

For the game shark they actually taught u how to hack the games - like in Duke Nukem for N64 u fire your gun and take note of the ammo value - look thru the hex editor to find that same value - their might be multiple instances of that same value in the hex editor but u go back to the game and fire off some more rounds and check back in hex... continue until u eliminate the other values by them not decreasing, find the hex value that holds the gun ammo and u can do whatever u want - give urself as much or as little ammo as u need or even prevent the ammo value from changing - ie. unlimited ammo.

Eibro
02-11-2003, 09:53 PM
Originally posted by JoeSixpack
>Check out the book "Programming Applications for Microsoft Windows" by Jeff Richter; it has lots of info on DLL injecting which you can use to alter another program.
Also, check up on ReadProcessMemory and WriteProcessMemory @ MSDN. I wrote a small tutorial on how to use these two functions... it details how to change your score in 3D Pinball.<

You don't need (or want) DLL injecting to hack a game; just hex editor. Check out *ice (or any debugger of any worth). And practice patience.
No? And what about games which run a checksum on their exe upon connection or execution?

nvoigt
02-12-2003, 01:15 AM
You don't need (or want) DLL injecting to hack a game; just hex editor. Check out *ice (or any debugger of any worth). And practice patience.


I fail to see how a hex editor would help you in FPS games and how a debugger would help in this case. Most small tools are either simulating the user by sending commands or keypresses, or directly manipulating memory ( Win9x only, or Device Driver Privileges required ). Most Cheats require DLL Injection, as most of them simply replace game DLLs with their own code or even graphic drivers so things can be painted that the game would not have allowed the user to see. Most cheats manipulate the game so that information that is available on the client is shown to the user in the most useful way, while the game itself would not have shown it ( i.e. wallhacks, smokehacks, unlimited sight ). Some Cheats manipulate the client to send commands that do not reflect reality ( Speedhacks ). No matter what, if it's a complicated cheat for a non-Win9x System, DLL-injection is the way to go. For this, you are well advised using a debugger, for example one of the *ices ( i.e. SoftIce ).

Edit:
I once wrote an UO training dummy tool in VC that let you center your mouse on a training dummy and would click it every 5 to 20 seconds. Pretty easy stuff, maybe 20 lines of normal windows code. Any good windows programming book will teach Windows Messages.

...
02-12-2003, 08:13 AM
>Any good windows programming book will teach Windows Messages.

thats the problem. i cant find a good windows programming book. ive looked in the 'programming' section and in the 'windows' section of the bookstore. occasionally i will find something, but after looking at the code and information in the book is a little outdated (like yesterday i found one based on windows 95 :rolleyes: ).

im learning a little windows programming from game programming books that i have, so i could probably do something simple with what i know. maybe i should just start using my imagination... :p

minesweeper
02-12-2003, 08:19 AM
>>thats the problem. i cant find a good windows programming book.<<

Programming Windows by Charles Petzold, it's ace. Quite expensive though. Try and pick it up 2nd hand, that's what I did.

glowstick
02-12-2003, 09:16 AM
u all forget to point out cheating is for people who otherwise suck.
cheats ruin #### ffs.

...
02-12-2003, 12:56 PM
>u all forget to point out cheating is for people who otherwise suck.


or for people for whom playing normally has grown boring.

i played this game almost a year before i ever learned it was possible to cheat. i played for another couple years condemning cheaters for the reason you pointed out.

now im to the point where finding exploits in the game and killing people are just about the only things worth doing. and ive found so many in-game exploits that im ready to take it up to the next level: creating them.


i dont cheat to ruin the game for other people. usually i will find a bug, play with it, then never use it again. i get pleasure from finding the bugs, but not from using them. its similar to the excitement you get from solving a tough problem. its the thrill of the chase.


anyway, i thought it would be good programming experience...

Clyde
02-13-2003, 09:42 AM
The data stream is encrypted and the encryption changes regularly (Thats what killed UoE), which limits your ability to "cheat" too much. There are already programs like easyUO that do just about everything you can do without utilising the data stream (tho as far as i can see easyUO is just for macroing alternatively you could just buy UoA (assuming you don't have it).

I suppose it would be a fun project anyhow =)

...
02-13-2003, 01:33 PM
well, ever since trammel (UO guys will know what im talking about) ive been playing on free emulators, so i doubt they have as much encryption as the standard OSI shards do. plus, they are a whole lot more buggy so i have a lot to entertain myself without having to go to third party programs.

JoeSixpack
02-13-2003, 06:12 PM
> fail to see how a hex editor would help you in FPS games and how a debugger would help in this case.<

My reply may have been slightly slighlty tongue in cheek, but how do you reconcile failing to see how a debugger would help with


For this, you are well advised using a debugger

?

Is a debugger useful or not?