View previous topic :: View next topic |
Author |
Message |
iseppi How do I cheat?
Reputation: 0
Joined: 03 Jan 2010 Posts: 3
|
Posted: Sun Jan 03, 2010 5:01 am Post subject: Help creating a Trainer out of CE |
|
|
I'm trying to create a simple trainer for Jewel Quest Heritage that adds 99 Special coins instead of just 1 using the Standalone Game Trainer feature of CE.
I found the instruction in the disassember and added that to the Code List.
Code: | add [ebx+00001154],ecx |
So i made an auto assembler script at this location in the code and clicked Execute:
Code: |
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
0046C6A7:
jmp newmem
nop
returnhere:
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov ecx,99
originalcode:
add [ebx+00001154],ecx
exit:
jmp returnhere
|
At the Location where the original instruction was this code was filled in
It is pointing to the newly allocated memory and my code is now in this memory area. I tested it and my auto assemlber works as long as I do it manually in CE.
Now i would like to incorporate that into my little trainer bound to the Num4 key to toggle on/off.
I tried to add the statement where the original instruction was, from the Code List but that does not work. When I look at the disassembler after pressing Num4 in my trainer I only get a bunch of NOP's at that location.
So is there a Tutorial or more detailed instructions on how incorporate Auto Assembler scipts into a Trainer? So far I only managed to replace certain instructions with code that does nothing with my trainer.
As you might have guessed I just started with game hacking so certainly i'm pretty new to the subject. Being a Mainframe Programmer I have some basic idea of assembler and machine instructions thou. |
|
Back to top |
|
 |
Psy Grandmaster Cheater Supreme
Reputation: 1
Joined: 27 Mar 2008 Posts: 1366
|
Posted: Sun Jan 03, 2010 5:39 am Post subject: |
|
|
- Go to the trainer builder feature again
- Go to 'Add Entry'
- Click 'Add' on the addresses screen (the default one)
- You'll see your auto-assemble scripts there!**
- Highlight it, and you'll see that you only have normal freeze; for an AA-script this essentially just means an on/off toggle
- Add it to your trainer list as you would with any other address and create the trainer
**If you don't see your scripts here, then it's because you only executed the script from the auto-assembler engine, and you didn't save it to your table. You must make sure to do that first else you won't have any way to do it here.
Hope it helps  |
|
Back to top |
|
 |
iseppi How do I cheat?
Reputation: 0
Joined: 03 Jan 2010 Posts: 3
|
Posted: Mon Jan 04, 2010 1:08 pm Post subject: |
|
|
thanks for the quick repy!
I tried doing just that. Somehow I can't find the option to save it to the Address list in the Main CE screen. When I try "Assign to current cheat table" I get the error that I don't have a ENABLE and DISABLE section. So far I found out that I need a Cheat Table Framework code as well to allow it to be added to the Cheat List. So I tried now this code:
Code: |
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
0046C6A7:
jmp newmem
nop
returnhere:
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov ecx,99
originalcode:
add [ebx+00001154],ecx
exit:
jmp returnhere
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
add [ebx+00001154],ecx
|
I pressed Execute and "Assign to current cheat table"
This allowed me to add it to the Cheat table. I can see a Auto Assemlber Cheat in the list on the main screen. The strange thing now is that i can only tick the Freeze box and when I click it again the tick stays on. A right click and "Disable Cheat" does not work.
When I try to add this Auto Assember to my trainer, for some reason I still cannot see it in the Address tab although on the main CE screen it is there and when I choose Change Script my code is there.
Any advice? |
|
Back to top |
|
 |
Psy Grandmaster Cheater Supreme
Reputation: 1
Joined: 27 Mar 2008 Posts: 1366
|
Posted: Mon Jan 04, 2010 1:38 pm Post subject: |
|
|
Your disable section is broken.
Define the addresses like you did to enable it to start with. So try this:
Code: |
[ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
0046C6A7:
jmp newmem
nop
returnhere:
newmem:
mov ecx,99
originalcode:
add [ebx+00001154],ecx
exit:
jmp returnhere
[DISABLE]
0046C6A7:
add [ebx+00001154],ecx
dealloc(newmem)
|
The script can be further 'cleaned-up'. It's also best practice to allocate the cave and write to that before modifying gamecode to jump there. You should have had a dealloc line too, to tear down the cave after use. So that leaves this:
Code: |
[ENABLE]
alloc(newmem,2048)
label(returnhere)
newmem:
mov ecx,99
add [ebx+00001154],ecx
jmp returnhere
0046C6A7:
jmp newmem
nop
returnhere:
[DISABLE]
0046C6A7:
add [ebx+00001154],ecx
dealloc(newmem)
|
|
|
Back to top |
|
 |
iseppi How do I cheat?
Reputation: 0
Joined: 03 Jan 2010 Posts: 3
|
Posted: Mon Jan 04, 2010 2:24 pm Post subject: |
|
|
Yeah, thanks a lot Psy. That did the trick  |
|
Back to top |
|
 |
Psy Grandmaster Cheater Supreme
Reputation: 1
Joined: 27 Mar 2008 Posts: 1366
|
Posted: Mon Jan 04, 2010 4:53 pm Post subject: |
|
|
Good to hear  |
|
Back to top |
|
 |
|