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 


The really ghetto way to resolve DMA

 
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine
View previous topic :: View next topic  
Author Message
Turtle
Advanced Cheater
Reputation: 7

Joined: 25 Jul 2004
Posts: 85

PostPosted: Thu Jan 05, 2006 5:41 am    Post subject: The really ghetto way to resolve DMA Reply with quote

Let's say you find the value for ammo.

Ammo's value = 20

The problem is that there will probably be many other instances in the game's ram of a value of "20". You will probably have to do multiple sub-searches in order to filter out the fake ones.

There are however some values in a game's ram that are so unique, that there is often only one instance of them in a given situation. This means that if someone were to search for such a value, it should only require one initial search without any further filtering, because they should only get 1 result.

How can this be used to quickly find ammo's value? Well, let's say that this unique value was very close to the value for ammo, for example, say it was a distance of 8 before the ammo value.

Then all you need to do is the one initial search for the unique value, and then add 8 to whatever address that yields, and you should have the address for the ammo value.

You will have to investigate the values that are near the ammo value to determine if any of them are unique in the game's ram. One tip would be to look for values that are 32bit floats, and then convert those floats to unsigned longs for when you test them in the memory searcher. If the initial search only yields one result, then you may have a useable unique value. Just take note of its address, and distance from the ammo's value. Converting to 'unsingned long' for the test search is optional, it's up to you.

The benefit of 32 bit floats is that their values are often unique due to their decimal precision.


Can this be integrated into a trainer? I'm not sure yet. The trainer would only have to perform the initial search, and then add the distance [8] to that address, it wouldn't have to store any filtering data from secondary searches. The search range could also be modified to facilitate faster searches.
Back to top
View user's profile Send private message
xeratal
Advanced Cheater
Reputation: 1

Joined: 05 Nov 2005
Posts: 93

PostPosted: Fri Jan 06, 2006 7:57 am    Post subject: Reply with quote

Not possible in a trainer. Just use CE...
Ammo address - 00400000
Unique address - 00400100
CE Table with these 2 address, search for the unique value and find the offset changes.
Back to top
View user's profile Send private message
UberNoob
Master Cheater
Reputation: 0

Joined: 29 Dec 2005
Posts: 365
Location: You should know...

PostPosted: Fri Jan 06, 2006 6:18 pm    Post subject: Reply with quote

Search for pointer option. problem solved. xD
_________________
.. ___
~(o.O)~
.. (.....)
... 1 1

"SHA ZAAM" (and other variations of it) ARE MY WORDS! WTF, DON'T USE IT! z0mg

Dark Byte wrote:
Xentar, WTF DID YOU DO TO YOUR DISASSEMBLER ?
Back to top
View user's profile Send private message
Zhoul
Master Cheater
Reputation: 1

Joined: 19 Sep 2005
Posts: 394

PostPosted: Fri Jan 06, 2006 11:20 pm    Post subject: Reply with quote

So - instead of searching for the value, why not find the code that writes to that address, then, when you restart the game, use that code, to find out what addresses that code writes to and fire thyn weapon?

Also, we all remember one true ghetto way to make your own pointers:
http://forum.cheatengine.org/viewtopic.php?t=4606

Simple - and usable in a trainer.

FYI - you're on the right 'track' over-all Wink Your suggestion is exactly how I started =)
Back to top
View user's profile Send private message AIM Address
bitterbanana
Cheater
Reputation: 0

Joined: 28 Nov 2004
Posts: 44

PostPosted: Mon Jan 09, 2006 2:26 pm    Post subject: Reply with quote

Actually, I like this guy's thinking. You can do this in a trainer easily. Just use ReadProcessMemory to scan through a process until you hit your desired unique value. Then add your offset to the address.
Back to top
View user's profile Send private message
Turtle
Advanced Cheater
Reputation: 7

Joined: 25 Jul 2004
Posts: 85

PostPosted: Mon Jan 09, 2006 9:55 pm    Post subject: Reply with quote

bitterbanana wrote:
Actually, I like this guy's thinking. You can do this in a trainer easily. Just use ReadProcessMemory to scan through a process until you hit your desired unique value. Then add your offset to the address.


Thanks.

How big would the trainer have to be though?
Back to top
View user's profile Send private message
Zhoul
Master Cheater
Reputation: 1

Joined: 19 Sep 2005
Posts: 394

PostPosted: Tue Jan 10, 2006 12:31 am    Post subject: Reply with quote

Turtle wrote:
Thanks.
How big would the trainer have to be though?


The trainer itself wouldn't have to be very big at all, but back when I thought this would be a good idea, VB wasn't cuttin it Wink Scanned Wayyyyy toooooooo slooooooooowwww... I never did try it in any other language though. Moved on to actually finding proper pointers and learning assembly the right way (imho) Cool

"I invented nothing" - Don Juan
Back to top
View user's profile Send private message AIM Address
me
Grandmaster Cheater
Reputation: 2

Joined: 24 Jun 2004
Posts: 733
Location: location location

PostPosted: Mon Jan 23, 2006 10:15 pm    Post subject: Reply with quote

well maybe you can use the unique varible+offset with auto assemble thus-->

lets use the imaginary varible --> cheech_and_chong -->as an example,

ammo = cheech_and_chong+up_in_smoke

health = cheech_and_chong+nice_dreams

===================
well you know what I mean,
use the string as the baseline for your offsets .

(as long as they are floating about in the same modules ha ha ha)

the way is there to be found, turtle is on the right track, db pointed this way to me and others some time ago,,


/*editing again...
cheat engine had the modules sussed out,,,,,...
you put in the (module\dll) + the offset,

so (module\dll)+string+offset

editing madness it's carpets */









.

_________________
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Cheat Engine Forum Index -> Cheat Engine 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