 |
Cheat Engine The Official Site of Cheat Engine
|
| View previous topic :: View next topic |
| Author |
Message |
xenowyaa Newbie cheater
Reputation: 0
Joined: 13 Feb 2024 Posts: 17
|
Posted: Tue Feb 13, 2024 1:10 am Post subject: need help AOB injection with floats |
|
|
okay so I'm no expert at assembly but I learned this cool trick where you can make an AOB injection script then after word make a pointer, and it looks something like this
-----------------------------
aobscan(INJECT,41 89 86 18 01 00 00 4 // should be unique
alloc(newmem,$1000,INJECT)
label(code)
label(return)
globalalloc(base,
newmem:
code:
mov [base],r14
mov [r14+00000118],eax
jmp return
INJECT:
jmp newmem
nop 2
return:
registersymbol(INJECT)
[DISABLE]
INJECT:
db 41 89 86 18 01 00 00
unregistersymbol(INJECT)
dealloc(newmem)
---------------------------------------------------------------------------------------------------
and then using 118 as the offset for the pointer from this code [r14+00000118]
then using "health" as the base *I think its called*
but my question is how do I do this exact same thing here but with code that looks like this:
----------------------------------------------------------------------------------------------------
aobscanmodule(INJECT,Minecraft.Windows.exe,F3 0F 11 44 83 7C) // should be unique
alloc(newmem,$1000,INJECT)
label(code)
label(return)
newmem:
code:
movss [rbx+rax*4+7C],xmm0
jmp return
INJECT:
jmp newmem
nop
return:
registersymbol(INJECT)
----------------------------------------------------------------------------
like how do I implement that trick with this type of code? ---> [rbx+rax*4+7C],xmm0
like do I add "mov [health]" like I did in the first one? and if so what do I put after? because theres rax and rbx and what would I use as the offset? I'm so lost please help, I'd greatly appreciate it
*sorry if I overexplained or explained it very poorly but I really need help with this*
|
|
| Back to top |
|
 |
Csimbi I post too much
Reputation: 97
Joined: 14 Jul 2007 Posts: 3340
|
Posted: Tue Feb 13, 2024 10:55 am Post subject: |
|
|
mov rbx,[base]
movss [rbx+rax*4+7C],xmm0
|
|
| Back to top |
|
 |
ParkourPenguin I post too much
Reputation: 152
Joined: 06 Jul 2014 Posts: 4719
|
Posted: Tue Feb 13, 2024 1:27 pm Post subject: |
|
|
First of all, make sure that instruction accesses only one address. If it accesses several addresses, there's no guarantee which one will be put in [base]. See step 9 of the CE tutorial.
Store the address in another register:
| Code: | push rcx
lea rcx,[rbx+rax*4]
mov [base],rcx
pop rcx
... |
Also, make sure base is close enough to newmem:
| Code: | | globalalloc(base,8,INJECT) |
_________________
I don't know where I'm going, but I'll figure it out when I get there. |
|
| Back to top |
|
 |
jgoemat Master Cheater
Reputation: 23
Joined: 25 Sep 2011 Posts: 264
|
Posted: Thu Feb 22, 2024 12:30 am Post subject: |
|
|
| ParkourPenguin wrote: | First of all, make sure that instruction accesses only one address. If it accesses several addresses, there's no guarantee which one will be put in [base]. See step 9 of the CE tutorial.
Store the address in another register:
| Code: | push rcx
lea rcx,[rbx+rax*4]
mov [base],rcx
pop rcx
... |
Also, make sure base is close enough to newmem:
| Code: | | globalalloc(base,8,INJECT) |
|
If the game can't find memory close or if you want to store multiple things in one global area that might not be near all your code injections, you can use a register for base also...
| Code: | push rcx
lea rcx,[rbx+rax*4]
push rdx
mov rdx,base
mov [rdx],rcx
pop rdx
pop rcx
... |
|
|
| 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
|
|