|
Cheat Engine The Official Site of Cheat Engine
|
View previous topic :: View next topic |
Author |
Message |
Reubinator How do I cheat? Reputation: 0
Joined: 04 Jun 2023 Posts: 6
|
Posted: Tue Jun 06, 2023 8:10 am Post subject: Trouble making a AOB injection script |
|
|
Hello, I have developed an AOB injection script using auto assembly for a game. While the script initially performs well, I have been facing recurring difficulties with the game failing to identify the AOB patterns. This predicament has left me bewildered and seeking a solution. I am contemplating the use of wildcards as a potential remedy. Astonishingly, even when my AOB patterns are accurate, the game still struggles to recognize them. Additionally, I have noticed that I need to play a few rounds of the game before I can successfully inject my script, which is highly unusual. I am currently unable to determine the root cause of this issue. I would greatly appreciate any assistance or guidance you can provide. Below, you can find the code that I have been using.
Razz Razz
[ENABLE]
aobscan(rapidfire,FF C4 A1 7A 10 44 0B 20) // should be unique
alloc(newmemA,$1000,rapidfire)
label(codeA)
label(returnA)
newmemA:
codeA:
nop
jmp returnA
rapidfire+01:
jmp newmemA
nop 2
returnA:
registersymbol(rapidfire)
aobscan(INFINITESHIELDS,C7 44 89 44 0A 6C) // should be unique
alloc(newmemB,$1000,INFINITESHIELDS)
label(codeB)
label(returnB)
newmemB:
mov r8d,100
codeB:
mov [rdx+rcx+6C],r8d
jmp returnB
INFINITESHIELDS+01:
jmp newmemB
returnB:
registersymbol(INFINITESHIELDS)
aobscan(INFINITEAMMO,89 54 03 5C 8B 7C 03 2Cool // should be unique
alloc(newmemC,$1000,INFINITEAMMO)
label(codeC)
label(returnC)
newmemC:
codeC:
nop
mov edi,[rbx+rax+28]
jmp returnC
INFINITEAMMO:
jmp newmemC
nop 3
returnC:
registersymbol(INFINITEAMMO)
aobscan(godmode,42 89 44 02 6Cool // should be unique
alloc(newmemD,$1000,godmode)
label(codeD)
label(returnD)
newmemD:
mov eax,100
codeD:
mov [rdx+r8+68],eax
jmp returnD
godmode:
jmp newmemD
returnD:
registersymbol(godmode)
[DISABLE]
rapidfire+01:
db C4 A1 7A 10 44 0B 20
unregistersymbol(rapidfire)
dealloc(newmemA)
INFINITESHIELDS+01:
db 44 89 44 0A 6C
unregistersymbol(INFINITESHIELDS)
dealloc(newmemB)
INFINITEAMMO:
db 89 54 03 5C 8B 7C 03 28
unregistersymbol(INFINITEAMMO)
dealloc(newmemC)
godmode:
db 42 89 44 02 68
unregistersymbol(godmode)
dealloc(newmemD)
|
|
Back to top |
|
|
LeFiXER Grandmaster Cheater Supreme Reputation: 20
Joined: 02 Sep 2011 Posts: 1055 Location: 0x90
|
Posted: Tue Jun 06, 2023 2:15 pm Post subject: |
|
|
The bytes must be visible for Cheat Engine to find them. That could be that the bytes havn't been created in memory, is locked off from a permission (XCW - Execute, Copy, Write) respectively. Or that the AOB isn't unique enough.
You can use wildcards to mitigate some of the searching issues; however, if the issue is down to permissions you will have to use Lua to do a custom AOB scan:
Code: |
AOBScan('aob_here', '+X-C-W')
-- "+/-" sets active/inactive for each option, * means don't care.
|
In the above example. Memory must be executable, but not writeable or copyable.
|
|
Back to top |
|
|
ParkourPenguin I post too much Reputation: 140
Joined: 06 Jul 2014 Posts: 4299
|
Posted: Tue Jun 06, 2023 5:01 pm Post subject: |
|
|
Why are you trying to combine all those scripts into one? If they can work independently, it's just making your cheat table worse...
The injection point `rapidfire` doesn't need a code injection if you're just nopping an instruction
No need for the `codeX` labels, you're not using them anyway
`aobscan(INFINITEAMMO,89 54 03 5C 8B 7C 03 2Cool // should be unique` - This seems pretty hard to miss...
I stopped reading here. Try to figure it out yourself before asking for help online.
When you do ask for help online, use code tags for big blocks of code.
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
Back to top |
|
|
Reubinator How do I cheat? Reputation: 0
Joined: 04 Jun 2023 Posts: 6
|
Posted: Tue Jun 06, 2023 5:58 pm Post subject: |
|
|
ParkourPenguin wrote: | Why are you trying to combine all those scripts into one? If they can work independently, it's just making your cheat table worse...
The injection point `rapidfire` doesn't need a code injection if you're just nopping an instruction
No need for the `codeX` labels, you're not using them anyway
`aobscan(INFINITEAMMO,89 54 03 5C 8B 7C 03 2Cool // should be unique` - This seems pretty hard to miss...
I stopped reading here. Try to figure it out yourself before asking for help online.
When you do ask for help online, use code tags for big blocks of code. |
Thanks for the feedback, for reference the AOB you provided is frequently changing between "89 54 03 5C 8B 7C 03 28" and "DC 8B 55 D8 89 54 01 5C 48 8B 46 47" These are the only two occurrences of these AOB's i have seen infinite ammo connected to. Is it possible that that i can do an AOB scan for one or the other?
|
|
Back to top |
|
|
++METHOS I post too much Reputation: 92
Joined: 29 Oct 2010 Posts: 4197
|
Posted: Wed Jun 07, 2023 1:07 am Post subject: |
|
|
ParkourPenguin wrote: | `aobscan(INFINITEAMMO,89 54 03 5C 8B 7C 03 2Cool // should be unique` - This seems pretty hard to miss...
I stopped reading here. |
|
|
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
|
|