TheByteSize wrote: ↑Thu Sep 30, 2021 1:38 am
your comparison can come across null or invalid value which crash the game. either find a better spot to check or make sure [rbx+210] contain valid value that can be used to compare at all time. (float)4.600602988E-41 usually an indication for bad spot to check.
I solved with something like this:
[ENABLE]
aobscan(INJECT,10 0F 38 F1 7C 33 08 8D) // should be unique
alloc(newmem,$1000,INJECT)
label(code)
label(return)
newmem:
//Offset 10 my C8000000 enemy A0000000
//Offset 40 my 09000000 enemy 1A000000
//Offset 6C my 0 enemy (int)2348812288
//Offset 23C my 'ib_spideywrestlestealth' enemy ???
//Offset 320 my 0 enemy 32831
//Offset 340 my #14421180 enemy #00000000
//Offset 3A0 my (int)1354156800 enemy 0
//Offset 47D my 128 enemy 0
//Offset 714 my #01000000 enemy 00000000
//Offset 3A0 my (int)1354156800 enemy 0
//Offset EA0 my D1B35DBF enemy 00000000
cmp [rbx+rsi+6C],0
jne code
nop
nop
nop
nop
nop
nop
jmp return
code:
movbe [rbx+rsi+08],edi
jmp return
INJECT+01:
jmp newmem
nop
return:
registersymbol(INJECT)
[DISABLE]
INJECT+01:
db 0F 38 F1 7C 33 08
unregistersymbol(INJECT)
dealloc(newmem)
It was simpler than I thought XD