Solved

Memory Address cheating

Posted on 2004-08-14
6
256 Views
Last Modified: 2010-04-17
Hi
I've been trying to create my own trainers for games but whenever I find the memory addresses where certain values are stored, when i restart the game the memory address changes. Is this suppost to happen?
Thanx
0
Comment
Question by:social_suicide
6 Comments
 
LVL 11

Expert Comment

by:Jase-Coder
ID: 11799787
Other things maybe using memory at the same time so it the space your game once occupied maybe taken up by another program.
0
 
LVL 4

Expert Comment

by:lexicon_dominus
ID: 11801873
In my opinion what you have to do is, your trainer should locate the game in memory and use relative addressing. As for an example; suppose that you money is kept in DS:ESI register pair which is for the first run of the game 0010:032F; the second run 002F:032F etc.. All you have to do is to find the Data Segment starting address if the values are kept in there...
0
 
LVL 3

Expert Comment

by:str_ek
ID: 11802181
well if you're trying it for win32 just remember that we have abstract address spaces here

and just one more tip.. if you try to hack some realy big apps you're may be out of luck , cos the memory fragmentation due to lack of garbage collector makes some non-one-time-alloced-globals to just "travel aroud" depending on the allocation history... in that case you must form an regular expresion to search for, or retrack manualy, by value chnges
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 3

Expert Comment

by:teratoma
ID: 11802928
I'm assuming an Intel processor.  

Given a variable that lives the whole lifetime of the program, there are 3 places where it can be stored: static data, stack, and heap.  If it's just some temporary variable, you don't stand much chance of pegging it.

The only way stack data will survive the whole program run is if it's allocated within maybe one or two calls deep from main, in which case it might as well be static because its offset in memory will only depend on load-time parameters.  Therefore, either the data is at a fixed offset from the start of the program's data, in which case you can predict its location per lexicon's strategy, or it's dynamically allocated, in which case you can't.

Garbage collection has nothing to do with this topic, only whether the variable is allocated on the heap.  Even a one-time allocation from the heap will tend to vary with each run of the program because this memory can be allocated from anywhere within system RAM by the operating system.  
0
 
LVL 4

Accepted Solution

by:
lexicon_dominus earned 115 total points
ID: 11804369
Hello again;
You can find tutorials about game trainers here:
http://www.gamehacking.com/sites/beginner.php
Another useful site about the subject :
http://programmers-corner.com/viewTutorial.php/30
Another site (You can find general information here and also there is a tutorial about starcraft trainer)
http://win32assembly.online.fr/tutorials.html

Hope these helps...
0
 

Author Comment

by:social_suicide
ID: 11818857
Thanx for all the comments. I think ill just give up trainer making and leave it 2 the experts. Thanx for the help.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Fix45 challenge 15 87
array220 challenge 8 48
topping1 challenge 7 53
Counting documents in a Domino View 3 36
Purpose To explain how to place a textual stamp on a PDF document.  This is commonly referred to as an annotation, or possibly a watermark, but a watermark is generally different in that it is somewhat translucent.  Watermark’s may be text or graph…
Entering a date in Microsoft Access can be tricky. A typo can cause month and day to be shuffled, entering the day only causes an error, as does entering, say, day 31 in June. This article shows how an inputmask supported by code can help the user a…
In this fifth video of the Xpdf series, we discuss and demonstrate the PDFdetach utility, which is able to list and, more importantly, extract attachments that are embedded in PDF files. It does this via a command line interface, making it suitable …
In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

26 Experts available now in Live!

Get 1:1 Help Now