View previous topic :: View next topic |
Author |
Message |
predprey Master Cheater Reputation: 24
Joined: 08 Oct 2015 Posts: 486
|
Posted: Wed Sep 14, 2016 6:11 pm Post subject: |
|
|
mgr.inz.Player wrote: | Added %injectAddress% and Csimbi template (slightly modified). |
what does "reassemble()" do? couldn't find its documentation. TIA
|
|
Back to top |
|
|
mgr.inz.Player I post too much Reputation: 218
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
|
Back to top |
|
|
Csimbi I post too much Reputation: 94
Joined: 14 Jul 2007 Posts: 3110
|
Posted: Thu Sep 15, 2016 2:30 pm Post subject: |
|
|
Awesome, thank you, thank you, thank you!
This is of great help!
I modded it a bit though as I dislike underscores and putting skip, ret and such up front.
I kept the _r for restore and _i for inject so they stick out.
I decided to keep reassemble even though I do not use it - others might.
Here's the final:
Code: | {
displayName="Csimbi's AOB",
templateSections=
[==[
<<INFO>>
// Game : %processName%
// Version:
// Date :
// Author : %authorName%
<<INFO_END>>
<<ENABLE>>
aobscan%isModuleScan%(aob%cheatName%,%moduleNameC%%searchPattern%)
alloc(newmem%cheatName%,4096%CmoduleName%)
label(aob%cheatName%_r)
label(aob%cheatName%_i)
registersymbol(aob%cheatName%_r)
registersymbol(aob%cheatName%_i)
label(lbl%cheatName%)
label(lbl%cheatName%Skip)
label(lbl%cheatName%Ret)
label(bEnable%cheatName%)
registersymbol(bEnable%cheatName%)
newmem%cheatName%:
bEnable%cheatName%:
dd 1
lbl%cheatName%:
{
%originalCodeLines%
//db %originalBytes%
}
reassemble(aob%cheatName%%aobAdjust%)
cmp dword ptr [bEnable%cheatName%],1
jne short lbl%cheatName%Skip
// Place your code here
lbl%cheatName%Skip:
jmp lbl%cheatName%Ret
aob%cheatName%_i:
readmem(aob%cheatName%%aobAdjust%,%replacedInstructionsSize%)
//%injectAddress%:
aob%cheatName%%aobAdjust%:
aob%cheatName%_r:
jmp lbl%cheatName%
%nopLines%
lbl%cheatName%Ret:
<<ENABLE_END>>
<<DISABLE>>
{
%injectAddress%:
%originalCodeLines%
//db %originalBytes%
}
aob_%cheatName%%aobAdjust%:
readmem(aob%cheatName%_i,%replacedInstructionsSize%)
unregistersymbol(aob%cheatName%_r)
unregistersymbol(aob%cheatName%_i)
unregistersymbol(bEnable%cheatName%)
dealloc(newmem%cheatName%)
%additionalInfo%
<<DISABLE_END>>
]==]
},
|
Could you add this 'as is' without changes?
I would not want to have to fix it after every release
Thank you!
|
|
Back to top |
|
|
mgr.inz.Player I post too much Reputation: 218
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Thu Sep 15, 2016 4:41 pm Post subject: |
|
|
Would you accept this one?
Code: | {
displayName="Csimbi's AOB",
templateSections=
[==[
<<INFO>>
// Game : %processName%
// Version:
// Date :
// Author : %authorName%
<<INFO_END>>
<<ENABLE>>
aobscan%isModuleScan%(aob%cheatName%,%moduleNameC%%searchPattern%)
alloc(newmem%cheatName%,4096%CmoduleName%)
label(%cheatName%_r)
label(%cheatName%_i)
registersymbol(%cheatName%_r)
registersymbol(%cheatName%_i)
label(lbl%cheatName%)
label(lbl%cheatName%Skip)
label(lbl%cheatName%Ret)
label(bEnable%cheatName%)
registersymbol(bEnable%cheatName%)
newmem%cheatName%:
bEnable%cheatName%:
dd 1
lbl%cheatName%:
{
%originalCodeLines%
//db %originalBytes%
}
reassemble(aob%cheatName%%aobAdjust%)
cmp dword ptr [bEnable%cheatName%],1
jne short lbl%cheatName%Skip
// Place your code here
lbl%cheatName%Skip:
jmp lbl%cheatName%Ret
%cheatName%_i:
readmem(aob%cheatName%%aobAdjust%,%replacedInstructionsSize%)
//%injectAddress%:
aob%cheatName%%aobAdjust%:
%cheatName%_r:
jmp lbl%cheatName%
%nopLines%
lbl%cheatName%Ret:
<<ENABLE_END>>
<<DISABLE>>
{
%injectAddress%:
%originalCodeLines%
//db %originalBytes%
}
%cheatName%_r:
readmem(%cheatName%_i,%replacedInstructionsSize%)
unregistersymbol(%cheatName%_r)
unregistersymbol(%cheatName%_i)
unregistersymbol(bEnable%cheatName%)
dealloc(newmem%cheatName%)
%additionalInfo%
<<DISABLE_END>>
]==]
}, |
_________________
|
|
Back to top |
|
|
panraven Grandmaster Cheater Reputation: 55
Joined: 01 Oct 2008 Posts: 942
|
Posted: Thu Sep 15, 2016 5:25 pm Post subject: |
|
|
I guess the place
Code: |
reassemble(aob%cheatName%%aobAdjust%)
|
may need more 'reassemble' lines if the jmp lbl%cheatName% across more than 1 instruction.
bye~
_________________
- Retarded. |
|
Back to top |
|
|
Csimbi I post too much Reputation: 94
Joined: 14 Jul 2007 Posts: 3110
|
Posted: Fri Sep 16, 2016 12:41 am Post subject: |
|
|
mgr.inz.Player wrote: | Would you accept this one? |
I don't understand the reason for change but it's no big deal, so, yes, thank you!
|
|
Back to top |
|
|
predprey Master Cheater Reputation: 24
Joined: 08 Oct 2015 Posts: 486
|
Posted: Fri Sep 16, 2016 4:58 am Post subject: |
|
|
Csimbi wrote: | I don't understand the reason for change but it's no big deal, so, yes, thank you! |
i think my template replicated your example exactly, though you have to use my version of the extension because of the "commented original opcode" function,%CoriginalCodeLines%. i included mgr.inz's fix for 6.6 CE too, so no worries there.
panraven wrote: | I guess the place
Code: |
reassemble(aob%cheatName%%aobAdjust%)
|
may need more 'reassemble' lines if the jmp lbl%cheatName% across more than 1 instruction.
bye~ |
yep, just tested, reassemble only copied over the first instruction.
Last edited by predprey on Sat Sep 17, 2016 1:26 am; edited 1 time in total |
|
Back to top |
|
|
Csimbi I post too much Reputation: 94
Joined: 14 Jul 2007 Posts: 3110
|
Posted: Fri Sep 16, 2016 1:15 pm Post subject: |
|
|
Yup, seems to be closer (if not identical) to what I requested.
mgr.inz.Player,
would it be too much trouble to add predprey's?
Thank you both!
|
|
Back to top |
|
|
predprey Master Cheater Reputation: 24
Joined: 08 Oct 2015 Posts: 486
|
Posted: Fri Sep 16, 2016 1:57 pm Post subject: |
|
|
Csimbi wrote: | Yup, seems to be closer (if not identical) to what I requested.
mgr.inz.Player,
would it be too much trouble to add predprey's?
Thank you both! |
EDIT:
readmem() does not work for EIP/RIP relative addressing. Use mgr.inz updated extension on first page instead.
Last edited by predprey on Sat Sep 17, 2016 1:33 am; edited 2 times in total |
|
Back to top |
|
|
mgr.inz.Player I post too much Reputation: 218
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Fri Sep 16, 2016 3:47 pm Post subject: |
|
|
panraven wrote: | I guess the place (...) may need more 'reassemble' lines if the jmp lbl%cheatName% across more than 1 instruction. |
Yes, it is not perfect. Also, if we use readmem in that place, it won't work correctly when RIP-relative addressing occurs, and that means it is not perfect too.
Csimbi wrote: | I don't understand the reason for change but it's no big deal, so, yes, thank you! |
I just don't like using a name which is a substring of other name. It cause a total mess when I refactor something.
Edit:
Added updated Csimbi template. (added %CoriginalCodeLines% keyword)
Changed extension a bit. It will try adding one or more reassemble commands when needed.
_________________
|
|
Back to top |
|
|
Csimbi I post too much Reputation: 94
Joined: 14 Jul 2007 Posts: 3110
|
Posted: Fri Sep 30, 2016 7:18 am Post subject: |
|
|
After using your scripts for a while, I made some tweaking and arrived at this:
Code: | {
displayName="Csimbi's AOB",
templateSections=
[==[
<<INFO>>
// Game : %processName%
// Version:
// Date :
// Author : %authorName%
<<INFO_END>>
<<ENABLE>>
aobscan%isModuleScan%(aob%cheatName%,%moduleNameC%%searchPattern%)
alloc(newmem%cheatName%,4096,aob%cheatName%)
label(aob%cheatName%_r)
label(aob%cheatName%_i)
registersymbol(aob%cheatName%_r)
registersymbol(aob%cheatName%_i)
label(lbl%cheatName%)
label(lbl%cheatName%Skip)
label(lbl%cheatName%Ret)
label(bEnable%cheatName%)
registersymbol(bEnable%cheatName%)
newmem%cheatName%:
bEnable%cheatName%:
dd 1
lbl%cheatName%:
%CoriginalCodeLines%
//db %originalBytes%
readmem(aob%cheatName%%aobAdjust%,%replacedInstructionsSize%)
cmp dword ptr [bEnable%cheatName%],1
jne short lbl%cheatName%Skip
// Place your code here
lbl%cheatName%Skip:
jmp lbl%cheatName%Ret
aob%cheatName%_i:
readmem(aob%cheatName%%aobAdjust%,%replacedInstructionsSize%)
//%injectAddress%:
aob%cheatName%%aobAdjust%:
aob%cheatName%_r:
jmp lbl%cheatName%
%nopLines%
lbl%cheatName%Ret:
<<ENABLE_END>>
<<DISABLE>>
//%injectAddress%:
%CoriginalCodeLines%
//db %originalBytes%
aob%cheatName%_r:
readmem(aob%cheatName%_i,%replacedInstructionsSize%)
unregistersymbol(aob%cheatName%_r)
unregistersymbol(aob%cheatName%_i)
unregistersymbol(bEnable%cheatName%)
dealloc(newmem%cheatName%)
%additionalInfo%
<<DISABLE_END>>
]==]
},
|
Thank you, both!
|
|
Back to top |
|
|
nubas123 How do I cheat? Reputation: 0
Joined: 22 Nov 2015 Posts: 4
|
Posted: Sat Oct 22, 2016 3:01 am Post subject: |
|
|
mgr.inz.Player update the plugin to Cheat Engin 6.6
|
|
Back to top |
|
|
mgr.inz.Player I post too much Reputation: 218
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
Posted: Sat Oct 22, 2016 4:24 am Post subject: |
|
|
Why? It works with CE 6.6. Did you even try it?
_________________
|
|
Back to top |
|
|
nubas123 How do I cheat? Reputation: 0
Joined: 22 Nov 2015 Posts: 4
|
Posted: Sat Oct 22, 2016 4:31 am Post subject: |
|
|
nop the script does not show on the CE 6.6
|
|
Back to top |
|
|
mgr.inz.Player I post too much Reputation: 218
Joined: 07 Nov 2008 Posts: 4438 Location: W kraju nad Wisla. UTC+01:00
|
|
Back to top |
|
|
|