 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
Renard10177 Newbie cheater
Reputation: 0
Joined: 19 Jun 2013 Posts: 12
|
Posted: Mon Jun 24, 2013 1:01 am Post subject: Need some help with Auto Assemble GodMode |
|
|
So I'm a noob here, i don't know very much about auto assembler but i would like to learn about it because it seems very useful.
Alright so lets say i have and address 018BF900 (CoDWaW.exe+14BF900) and i want to make it so the game cant write anything to the address but i would like the disable part to enable the game to write to the address again, Something like this:
| Code: | //Enable (disable games ability to write to address.)
set Saved_Code == (mov [edi+20B8])
set 018BF900 == change of nop
//Disable (Allow game to write to address again.)
set 018BF900 == (Value Of Saved_Code) |
like i said, im a super noob, but this should basically explain what i want to know. (hopefully.)
Last edited by Renard10177 on Mon Jun 24, 2013 1:30 am; edited 2 times in total |
|
| Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Mon Jun 24, 2013 1:20 am Post subject: |
|
|
You just want to be able to enable/disable the nop'ing of a particular instruction?
Right-click the address in your cheat table, select 'find what writes...'
In the debugger window, at least one instruction should appear as soon as the value changes. Hit the 'stop' button. Highlight the instruction and view in disassembler. In disassembler, with the instruction highlighted, select 'tools' from the drop-down menu. Click on 'auto assemble'. In the auto assemble window, click on template and select cheat table framework code. Click on template again, and select code injection. Revise the code as you like, and click on 'file' from the drop-down menu...select assign to current cheat table. |
|
| Back to top |
|
 |
Renard10177 Newbie cheater
Reputation: 0
Joined: 19 Jun 2013 Posts: 12
|
Posted: Mon Jun 24, 2013 1:39 am Post subject: |
|
|
| GNIREENIGNE wrote: | You just want to be able to enable/disable the nop'ing of a particular instruction?
Right-click the address in your cheat table, select 'find what writes...'
In the debugger window, at least one instruction should appear as soon as the value changes. Hit the 'stop' button. Highlight the instruction and view in disassembler. In disassembler, with the instruction highlighted, select 'tools' from the drop-down menu. Click on 'auto assemble'. In the auto assemble window, click on template and select cheat table framework code. Click on template again, and select code injection. Revise the code as you like, and click on 'file' from the drop-down menu...select assign to current cheat table. |
didnt work, this is the script it made, and i know its the right address because freezing it and changing it in cheat engine without auto assemble works just fine
| Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [edi+000020B8],esi
exit:
jmp returnhere
"CoDWaW.exe"+E9D97:
jmp newmem
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"CoDWaW.exe"+E9D97:
mov [edi+000020B8],esi
//Alt: db 89 B7 B8 20 00 00 |
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 471
Joined: 09 May 2003 Posts: 25831 Location: The netherlands
|
Posted: Mon Jun 24, 2013 3:59 am Post subject: |
|
|
Your code doesn't do anything, it still calls mov [edi+000020B8],esi
You need to add in some code that checks if edi+20b8 is your health or not (because most likely this code also writes health to enemies), and if it is, jump to exit _________________
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 |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Mon Jun 24, 2013 5:07 am Post subject: |
|
|
| Renard10177 wrote: | | GNIREENIGNE wrote: | You just want to be able to enable/disable the nop'ing of a particular instruction?
Right-click the address in your cheat table, select 'find what writes...'
In the debugger window, at least one instruction should appear as soon as the value changes. Hit the 'stop' button. Highlight the instruction and view in disassembler. In disassembler, with the instruction highlighted, select 'tools' from the drop-down menu. Click on 'auto assemble'. In the auto assemble window, click on template and select cheat table framework code. Click on template again, and select code injection. Revise the code as you like, and click on 'file' from the drop-down menu...select assign to current cheat table. |
didnt work, this is the script it made, and i know its the right address because freezing it and changing it in cheat engine without auto assemble works just fine
| Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [edi+000020B8],esi
exit:
jmp returnhere
"CoDWaW.exe"+E9D97:
jmp newmem
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"CoDWaW.exe"+E9D97:
mov [edi+000020B8],esi
//Alt: db 89 B7 B8 20 00 00 |
|
You didn't revise your code, as I suggested.
Try this:
| Code: | [ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
newmem:
jmp returnhere
originalcode:
mov [edi+000020B8],esi
jmp returnhere
"CoDWaW.exe"+E9D97:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"CoDWaW.exe"+E9D97:
mov [edi+000020B8],esi
|
I left the original code in there in case you need to provide a conditional jump, as Dark Byte mentioned. |
|
| Back to top |
|
 |
Renard10177 Newbie cheater
Reputation: 0
Joined: 19 Jun 2013 Posts: 12
|
Posted: Mon Jun 24, 2013 2:26 pm Post subject: |
|
|
| GNIREENIGNE wrote: | | Renard10177 wrote: | | GNIREENIGNE wrote: | You just want to be able to enable/disable the nop'ing of a particular instruction?
Right-click the address in your cheat table, select 'find what writes...'
In the debugger window, at least one instruction should appear as soon as the value changes. Hit the 'stop' button. Highlight the instruction and view in disassembler. In disassembler, with the instruction highlighted, select 'tools' from the drop-down menu. Click on 'auto assemble'. In the auto assemble window, click on template and select cheat table framework code. Click on template again, and select code injection. Revise the code as you like, and click on 'file' from the drop-down menu...select assign to current cheat table. |
didnt work, this is the script it made, and i know its the right address because freezing it and changing it in cheat engine without auto assemble works just fine
| Code: | [ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
mov [edi+000020B8],esi
exit:
jmp returnhere
"CoDWaW.exe"+E9D97:
jmp newmem
nop
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"CoDWaW.exe"+E9D97:
mov [edi+000020B8],esi
//Alt: db 89 B7 B8 20 00 00 |
|
You didn't revise your code, as I suggested.
Try this:
| Code: | [ENABLE]
alloc(newmem,2048)
label(returnhere)
label(originalcode)
newmem:
jmp returnhere
originalcode:
mov [edi+000020B8],esi
jmp returnhere
"CoDWaW.exe"+E9D97:
jmp newmem
nop
returnhere:
[DISABLE]
dealloc(newmem)
"CoDWaW.exe"+E9D97:
mov [edi+000020B8],esi
|
I left the original code in there in case you need to provide a conditional jump, as Dark Byte mentioned. |
Thanks! it works perfectly, as i said, im new to the auto assembler and nop'ing so i have no idea what im doing, hopefully, i can learn something from this and apply it to other games. so ill have to do is assign newmem to jmp returnhere? |
|
| Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Mon Jun 24, 2013 3:28 pm Post subject: |
|
|
Basically, newmem is where you would put your new code. The original code, which was changing your value, was: mov [edi+000020B8],esi
All we did was jump back to the game without executing the original code. You could have done this:
newmem:
nop
jmp returnhere
but, what we did is essentially the same thing; no operation is performed, so the address does not change.  |
|
| Back to top |
|
 |
Renard10177 Newbie cheater
Reputation: 0
Joined: 19 Jun 2013 Posts: 12
|
Posted: Mon Jun 24, 2013 5:25 pm Post subject: |
|
|
| GNIREENIGNE wrote: | Basically, newmem is where you would put your new code. The original code, which was changing your value, was: mov [edi+000020B8],esi
All we did was jump back to the game without executing the original code. You could have done this:
newmem:
nop
jmp returnhere
but, what we did is essentially the same thing; no operation is performed, so the address does not change.  |
when i tried this on other games, it made the game crash.
Last edited by Renard10177 on Mon Jun 24, 2013 5:43 pm; edited 1 time in total |
|
| Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Mon Jun 24, 2013 5:38 pm Post subject: |
|
|
| Depends on the game. You can test it before you even bother with a script. All you do to test, is right-click on the instruction in memory viewer and select 'replace with code that does nothing'. The same thing can be done from the debugger window, for testing purposes. If the game has some integrity check, anti-cheat or other protection, it may crash immediately, or after some time...regardless if your code is good or not. |
|
| Back to top |
|
 |
Renard10177 Newbie cheater
Reputation: 0
Joined: 19 Jun 2013 Posts: 12
|
Posted: Mon Jun 24, 2013 6:11 pm Post subject: |
|
|
| GNIREENIGNE wrote: | | Depends on the game. You can test it before you even bother with a script. All you do to test, is right-click on the instruction in memory viewer and select 'replace with code that does nothing'. The same thing can be done from the debugger window, for testing purposes. If the game has some integrity check, anti-cheat or other protection, it may crash immediately, or after some time...regardless if your code is good or not. |
i tested it and even on the games that DONT have protection still seem to crash, ugh this is extremely frustrating, it does this on every game, someone is doing something wrong (and its probably me) it dosent make any sense, im doing every thing you guys tell me , like i said, this is my first time with the assembler, i didnt understand cheat engine's built in auto assembler tutorial and i still barely understand most of other peoples scripts  |
|
| Back to top |
|
 |
++METHOS I post too much
Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Mon Jun 24, 2013 6:49 pm Post subject: |
|
|
It takes time to learn. Don't give up and you'll get it. Part of the enjoyment for me is solving the puzzle. If everything was easy, I probably wouldn't like it much.
To be safe, start by only NOP'ing instructions that 'write' to the address. Once you have learned more, you can work on instructions that 'access' the address, to write better cheats. |
|
| Back to top |
|
 |
Renard10177 Newbie cheater
Reputation: 0
Joined: 19 Jun 2013 Posts: 12
|
Posted: Mon Jun 24, 2013 7:56 pm Post subject: |
|
|
| GNIREENIGNE wrote: | It takes time to learn. Don't give up and you'll get it. Part of the enjoyment for me is solving the puzzle. If everything was easy, I probably wouldn't like it much.
To be safe, start by only NOP'ing instructions that 'write' to the address. Once you have learned more, you can work on instructions that 'access' the address, to write better cheats. |
k, i'll take your advice, hopefully one of these days i'll get a hang of this "toggle-able" NoP ive been seeing around so much, ive already made a few generic trainers with just the simple freezing and setting values but i haven't got a chance to upload them yet |
|
| Back to top |
|
 |
|
|
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
|
|