Cheat Engine Forum Index Cheat Engine
The Official Site of Cheat Engine
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 


Writing to changed addresses.

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming
View previous topic :: View next topic  
Author Message
DMan132
How do I cheat?
Reputation: 0

Joined: 30 Oct 2007
Posts: 5

PostPosted: Tue Oct 30, 2007 7:39 pm    Post subject: Writing to changed addresses. Reply with quote

I am attempting to make a program to alter the memory in question. It seems to change here and there (when I reboot etc) so I can't just write the process memory and hard code it. I'm new to this however I've got the writing part down just fine but currently I need to modify the code based on the current address of the memory.

Code:

Dec:
13780348
13780316
14042124

Hex:
00D2457C
00D2455C
00D6440C




I've generated the first two rebooting my computer 3-4 times and the last one was generated using my laptop rebooting twice. I've been trying to find out the most efficient and fool proof way of searching the memory for the value and using that address to write to. The value in question is an integer. I know (think) I should start at a certain index, increment x in my address and run to a certain point however all three of these I can not determine. If necessary I can modify the value in game to do a couple of searches to determine exactly which address is being used this time around. I thought about writing to all addresses that I see it use but this causes a crash or two and that can't happen.

Is there an obvious pattern with these 3 address? Any advice on how I should go about doing this?
Back to top
View user's profile Send private message
mapleh4ckz
Master Cheater
Reputation: 0

Joined: 20 Sep 2006
Posts: 386
Location: Maplestory

PostPosted: Tue Oct 30, 2007 7:44 pm    Post subject: Reply with quote

Typically if they change then they are a pointer. Or load it with olly and see what you come up with around those addresses.
_________________
My Best Hacks...

ZF- the universal hack
Back to top
View user's profile Send private message
DMan132
How do I cheat?
Reputation: 0

Joined: 30 Oct 2007
Posts: 5

PostPosted: Tue Oct 30, 2007 8:10 pm    Post subject: Reply with quote

Doing a pointer scan it only detects a pointer which points to one of the addresses I have located. What is this olly?
Back to top
View user's profile Send private message
jongwee
Moderator
Reputation: 0

Joined: 28 Jun 2006
Posts: 1388
Location: Singapore

PostPosted: Tue Oct 30, 2007 8:13 pm    Post subject: Reply with quote

DMan132 wrote:
Doing a pointer scan it only detects a pointer which points to one of the addresses I have located. What is this olly?

OllyDBG. It is a debugger. Link

_________________
Back to top
View user's profile Send private message MSN Messenger
mapleh4ckz
Master Cheater
Reputation: 0

Joined: 20 Sep 2006
Posts: 386
Location: Maplestory

PostPosted: Tue Oct 30, 2007 8:18 pm    Post subject: Reply with quote

Could you give us alittle more information about what your trying to hack ie game?
_________________
My Best Hacks...

ZF- the universal hack
Back to top
View user's profile Send private message
DMan132
How do I cheat?
Reputation: 0

Joined: 30 Oct 2007
Posts: 5

PostPosted: Tue Oct 30, 2007 8:23 pm    Post subject: Reply with quote

Downloaded it and attached to process. I can not find the address although still locate it fine in cheat engine, is there a search method?
Back to top
View user's profile Send private message
mapleh4ckz
Master Cheater
Reputation: 0

Joined: 20 Sep 2006
Posts: 386
Location: Maplestory

PostPosted: Tue Oct 30, 2007 8:35 pm    Post subject: Reply with quote

yes. Control G I believe. Mind telling us what your trying to hack...It may make it easier.
_________________
My Best Hacks...

ZF- the universal hack
Back to top
View user's profile Send private message
atom0s
Moderator
Reputation: 205

Joined: 25 Jan 2006
Posts: 8587
Location: 127.0.0.1

PostPosted: Tue Oct 30, 2007 8:38 pm    Post subject: Reply with quote

Check to see what module memory region you are located in. Sounds like you are dealing with code shifting. When you find the module name, locate the base address. (All of which is found via the Memory Viewer in CE.)

Once you find the base do a simple math calculate of:

CurrentAddress - BaseAddress = Offset

Now that you have the offset, next time you load the game, you will need to locate the base address of the module the address was in before and do:

BaseAddress + Offset = NewAddress

And you should land up on the address you want. Also, this could be using pointers with code shifting so see if you can trace what writes to the address back to a pointer and then do the same thing for the pointer.

PointerAddress - BaseAddress = Offset

Then when you load the game:

BaseAddress+Offset = PointerAddress
Then read the pointer address value for the new memory location.

_________________
- Retired.
Back to top
View user's profile Send private message Visit poster's website
DMan132
How do I cheat?
Reputation: 0

Joined: 30 Oct 2007
Posts: 5

PostPosted: Tue Oct 30, 2007 9:04 pm    Post subject: Reply with quote

Wiccaan wrote:
Check to see what module memory region you are located in. Sounds like you are dealing with code shifting. When you find the module name, locate the base address. (All of which is found via the Memory Viewer in CE.)

Once you find the base do a simple math calculate of:

CurrentAddress - BaseAddress = Offset

Now that you have the offset, next time you load the game, you will need to locate the base address of the module the address was in before and do:

BaseAddress + Offset = NewAddress

And you should land up on the address you want. Also, this could be using pointers with code shifting so see if you can trace what writes to the address back to a pointer and then do the same thing for the pointer.

PointerAddress - BaseAddress = Offset

Then when you load the game:

BaseAddress+Offset = PointerAddress
Then read the pointer address value for the new memory location.


I think this is it, I have my offset, but how do I go about reading the baseaddress when the program is run? I assume its the base address that changes otherwise it would always be the same address no?

@above: this is for gambling software

Edit:

Alright, the module which the actual address is stored has no name. There is a pointer to this address that is in the main module and has the same offset every run. Should I get the address of the one to write to using the pointer?

Final Edit:

I have it working perfect, thanks for the help, I locate the pointer, retrieve the address it points to, add the offset and write to that location.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> General programming All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group

CE Wiki   IRC (#CEF)   Twitter
Third party websites