Building your 'own' CheatEngine...?

10/08/2009 03:12 swords#1
Well this has been a problem in the past I'm sure... but has it ever been solved?

I'm mainly looking for the THEORY rather than coding... as many people don't use AutoIt (Some do, yes I know that), so giving me blocks of C++, or whatever, coding wouldn't help me too much....

ANYWAYS

What I'm wondering is:

Would there be any faster route to do this... Me and evan discussed it on msn and couldn't get a valid solution, so I figured I'd try here and see if anyone can find out something that I don't see.


:::::::::


So when you find your addresses of certain things in memory for Conquer you get hexadecimal value. For finding say the x coordinate you are standing on in CO you would search the # your standing on, move on CO, search the new number... And your human brain determines which value of the 10+ values is the actual x address. Well what me and evan (mainly evan xD) came up with is:

Start at 0x00000 *However many 0's are after 0x... doesn't matter here*.... At increase by 4 each loop. Evan said something that you search in 4-byte and the x will land on a certain 4-byte in the address (Or somethin like that xP)... Anyways, you would do a loop each time increasing the 0x00000 by 4... So next time would be 0x00004 then 0x000008... This is of course showing representations, I needa still figure a way to convert the actual number into hexa so I get the correct letters in there as well. Moving on....... So you would do a simple IF statement until the MemoryRead *This is the searching output* = *Current x coordinate*



But evan said he had done this before... It took about 1 second to go through 1000-2000 bytes with a continual loop.... After doing the calculations we got to it taking about 66 minutes to complete a scan from 0x00000 to 0x400000....... And yea, thats excluding anything above 4 in the first integer place. So to scan all the way to 0x800000 would take over 2 hours!!.... Not to mention RE-SCANNING for when you move your character to get the correct 'human chosen' address that I stated above....










As you can see you probably didn't even need to read that... But that's all I got : (..... Is there any other way of doing this without having the user find there own x, y... hp/mana, etc.... addresses in CheatEngine? Because supposably even x, y coords are dynamic addresses :(


Thanks :S
10/08/2009 09:45 trash#2
I dont really get what your asking here..
If you on about making an au3 cheat engine.. whats the point cheat engine will always be better?
And i thought once you have found the base addr and offsets needed the user shouldnt need to input any addresses.
10/08/2009 16:38 IAmHawtness#3
Why not make it totally versionless?
It's gonna suck if the user has to do like in Cheat Engine, search for his coordinates, move, search for new values, repeat, etc. to find the addresses and very inaccurate too.

Why not make the hack scan for a piece of code that has something to do with the player addresses, for example the piece of code that changes your player's coordinates when jumping (this is kinda stupid, but just an example) and then grab the addresses from there instead? Much better, faster, etc, since you'll only have to scan from the entry point of the exe (0x0401000 or something like that, I can't remeber :p) to wherever it ends for the exact piece of code.. of course, the code you're scanning for has to be unique in some kind of way so your tool won't mess up
10/08/2009 22:58 swords#4
Quote:
Originally Posted by IAmHawtness View Post
Why not make it totally versionless?
It's gonna suck if the user has to do like in Cheat Engine, search for his coordinates, move, search for new values, repeat, etc. to find the addresses and very inaccurate too.

Why not make the hack scan for a piece of code that has something to do with the player addresses, for example the piece of code that changes your player's coordinates when jumping (this is kinda stupid, but just an example) and then grab the addresses from there instead? Much better, faster, etc, since you'll only have to scan from the entry point of the exe (0x0401000 or something like that, I can't remeber :p) to wherever it ends for the exact piece of code.. of course, the code you're scanning for has to be unique in some kind of way so your tool won't mess up
The thing is, I'm not too great with the whole hexa/byte/etc system... I know enough to get the values I need for certain things, and thats about it.... as well as coding those addresses into my program.

EDIT: After I re-read it I do understand what you mean... But whos to say that static address doesn't go below your exampled 0x0401000?


From what I got out of your paragraph... maybe you do know how to do this, your just wanting me to figure it out myself? :cool:

Anymore pointeres/help would be great.

Thanks
10/12/2009 20:19 gabrola#5
Quote:
Originally Posted by swords View Post
The thing is, I'm not too great with the whole hexa/byte/etc system... I know enough to get the values I need for certain things, and thats about it.... as well as coding those addresses into my program.

EDIT: After I re-read it I do understand what you mean... But whos to say that static address doesn't go below your exampled 0x0401000?


From what I got out of your paragraph... maybe you do know how to do this, your just wanting me to figure it out myself? :cool:

Anymore pointeres/help would be great.

Thanks
Fetch an array of all memory addresses with a certain number of bytes, and loop through them instead of looping through for example from 1 to 1,000,000 which probably some of them don't have any values.
Also try looking at the Cheat Engine source code:
[Only registered and activated users can see links. Click Here To Register...]