View previous topic :: View next topic |
Author |
Message |
wizboy11 Advanced Cheater Reputation: 0
Joined: 26 Aug 2005 Posts: 53 Location: Earth
|
|
Back to top |
|
|
me Grandmaster Cheater Reputation: 2
Joined: 24 Jun 2004 Posts: 733 Location: location location
|
Posted: Thu Sep 29, 2005 7:52 pm Post subject: |
|
|
yup,,,, right click the address you want to jump to your code cave from,,and--->>>
_________________
Last edited by me on Thu Sep 29, 2005 8:02 pm; edited 1 time in total |
|
Back to top |
|
|
me Grandmaster Cheater Reputation: 2
Joined: 24 Jun 2004 Posts: 733 Location: location location
|
Posted: Thu Sep 29, 2005 7:58 pm Post subject: |
|
|
and the code cave finder is in the EXTRA menu in the memory viewer window
_________________
|
|
Back to top |
|
|
wizboy11 Advanced Cheater Reputation: 0
Joined: 26 Aug 2005 Posts: 53 Location: Earth
|
Posted: Thu Sep 29, 2005 8:28 pm Post subject: |
|
|
So how would I make that part of my trainer that I make in Cheat Engine. Also can I make a trainer were a line of code is assembled insted of a noop?
_________________
Want g-mail? Just ask I have like 100 invites.
You could IM or PM me if you would like help.
You could even e-mail me! |
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 457
Joined: 09 May 2003 Posts: 25262 Location: The netherlands
|
Posted: Thu Sep 29, 2005 9:20 pm Post subject: |
|
|
Me, you forgot about the auto assemble and then the template->code injection
thats a lot easier to work with and you don't have to worry about finding code caves(alloc allocates memory for you , and who uses windows me or earlier these days anyhow?), and what happens when the code gets executed before you're finished writing it.
about the trainer, not possible yet, although you could try standard code caves and then use a array of byte addresses with the code of the data you write
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping
Last edited by Dark Byte on Thu Sep 29, 2005 9:30 pm; edited 1 time in total |
|
Back to top |
|
|
wizboy11 Advanced Cheater Reputation: 0
Joined: 26 Aug 2005 Posts: 53 Location: Earth
|
Posted: Thu Sep 29, 2005 9:28 pm Post subject: |
|
|
If Cheat Engine won't do it then what program will allow me to create a trainer easily? Also when I use the Auto Assemble, when things do I put were anyway?
_________________
Want g-mail? Just ask I have like 100 invites.
You could IM or PM me if you would like help.
You could even e-mail me! |
|
Back to top |
|
|
Dark Byte Site Admin Reputation: 457
Joined: 09 May 2003 Posts: 25262 Location: The netherlands
|
Posted: Thu Sep 29, 2005 9:42 pm Post subject: |
|
|
try the array of byte method.
First assemble your code so you know the bytecode it generates, and then put under a cheat 2 array of addresses
one for the code for the jump
the other the code in the codecave
_________________
Do not ask me about online cheats. I don't know any and wont help finding them.
Like my help? Join me on Patreon so i can keep helping |
|
Back to top |
|
|
wizboy11 Advanced Cheater Reputation: 0
Joined: 26 Aug 2005 Posts: 53 Location: Earth
|
|
Back to top |
|
|
Leonidas Advanced Cheater Reputation: 0
Joined: 07 Mar 2005 Posts: 98
|
Posted: Fri Sep 30, 2005 12:41 am Post subject: |
|
|
A array of byte type is just what it says, an array of bytes
Let's say you want to write assembler code in the game then a aray of byte type is the best solution. First assembler the code yourself so you get the bytes you need to write. (Also remember the addresses you're writing them to)
Now, when you've got all your assembler code you want to write converted to bytes add a address of type "array of byte" to the addresslist with as address the addresses you're writing to.
Then make the trainer and add a entry that changes a address when the cheat gets enabled. Select the entry of the array of byte type and then fill in as value that it gets the bytes. E.g write "31 c0 c3" as value and it'll change the code to those bytes when enabled.
Also, you can add more addresses under one cheatkey, so you can also use one array of byte entry to place a jump to a codecave and another one for ayour code cave.
This could also be done with lots of 1 byte addresses and setting the values, but array of byte is a lot easier because it can be any length you want instead of the predefined size of 1,2 ,4 or 8 bytes
|
|
Back to top |
|
|
wizboy11 Advanced Cheater Reputation: 0
Joined: 26 Aug 2005 Posts: 53 Location: Earth
|
Posted: Fri Sep 30, 2005 3:39 am Post subject: |
|
|
Alright, now I'm starting to get this, at least a little. But (sry for being a n00b) how would I covert the assembler to bytes.
I'll give you an example of what I am trying to do. In the game Rome Total War I find this assembler code at this adress (for money):
004ec6d9 - 29 41 04 - sub[ecx+04], eax
I want to change the sub, to add, when I did it looked like:
004ec6d9 - 01 41 04 - add[ecx+04], eax
So what should I do to conver to bytes, if so how many bytes is it, and how would I impliment that in my trainer.
So that would be 3 bytes (the 01 41 04) then when I add it to my trainer I should have it freez the value at that 01 41 04 to keep it on add?
_________________
Want g-mail? Just ask I have like 100 invites.
You could IM or PM me if you would like help.
You could even e-mail me! |
|
Back to top |
|
|
Leonidas Advanced Cheater Reputation: 0
Joined: 07 Mar 2005 Posts: 98
|
Posted: Fri Sep 30, 2005 4:01 am Post subject: |
|
|
yes,
just setting the value at address 004ec6d9 to '01 41 04' just once should work (code doesn't have the tendency to change so no eed to freeze, but freezing doesn't hurt anyhow)
Add a array of byte address(at 004ec6d9) of length 3, then add it to your trainer and set it to '01 41 04'
|
|
Back to top |
|
|
wizboy11 Advanced Cheater Reputation: 0
Joined: 26 Aug 2005 Posts: 53 Location: Earth
|
|
Back to top |
|
|
Leonidas Advanced Cheater Reputation: 0
Joined: 07 Mar 2005 Posts: 98
|
Posted: Fri Sep 30, 2005 4:14 am Post subject: |
|
|
well, a codecave is a part of unused memory by the program (for some weird reason like optimisations, or end of a code section)
In that unused spot you can write your own code and then in the original code place a jump to your code cave.
But code caves are so 90's and it gets harder to find one these days especially if you have xp sp2 and a system with the no execucute bit, which prevent code execution at locations that aren't marked as executable.
For that the auto assembler has the alloc function that will allocate a block of memory for you to write your code in and, best of all, it's executable...
Downside as you might have guesed is that you can't use the ce trainer maker to allocate that memory for you, and even if it does, windows allocates it at a random spot so the addresses of the code will change.
But perhaps a future version of ce will have this build in (and expect a standalone trainer to start at 1 mb or bigger...)
|
|
Back to top |
|
|
wizboy11 Advanced Cheater Reputation: 0
Joined: 26 Aug 2005 Posts: 53 Location: Earth
|
Posted: Fri Sep 30, 2005 4:21 am Post subject: |
|
|
I'm just thinking that in RTW, I could use a code cave to get instant build, or build in one turn, or something like that.
_________________
Want g-mail? Just ask I have like 100 invites.
You could IM or PM me if you would like help.
You could even e-mail me! |
|
Back to top |
|
|
me Grandmaster Cheater Reputation: 2
Joined: 24 Jun 2004 Posts: 733 Location: location location
|
Posted: Fri Sep 30, 2005 10:31 am Post subject: |
|
|
Dark Byte wrote: | Me, you forgot about the auto assemble and then the template->code injection
thats a lot easier to work with and you don't have to worry about finding code caves(alloc allocates memory for you , and who uses windows me or earlier these days anyhow?), and what happens when the code gets executed before you're finished writing it.
about the trainer, not possible yet, although you could try standard code caves and then use a array of byte addresses with the code of the data you write |
oops
yep forgot about that,
wonder if it was all that beer last night that did it
_________________
|
|
Back to top |
|
|
|