Page 1 of 1

Super Jump issue

Posted: Sat Jul 06, 2019 6:30 pm
by LeftBlindEye
Hey guys, I made a super speed and a super jump for The Hunter COTW. Both are working but I'm having an issue when trying to return the jump value to normal.

Heres my speed code which works 100% enable and disable:

Code: Select all

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(INJECT,theHunterCotW_F.exe,80 00 00 00 00 0F 10 00 0F 11 01 0F 10 48 10 0F 11 49 10 0F 10 40 20 0F 11 41 20) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+5B2CAE)
label(returnhere)
label(originalcode)
label(exit)
label(normal)
label(speed)

registersymbol(speed)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

cmp [speed],0 //Set speed to 1 to enable the cheat and 0 to disable
je normal

mov [rax+20],(float)25
jmp originalcode

normal:
mov [rax+20],(float)1

originalcode:

movups xmm0,[rax+20]
movups [rcx+20],xmm0

exit:
jmp returnhere
speed:
dd 0

INJECT+13:
  jmp newmem
  nop
  nop
  nop
returnhere:
registersymbol(INJECT)

[DISABLE]

INJECT+13:
  db 0F 10 40 20 0F 11 41 20

unregistersymbol(INJECT)
dealloc(newmem)
And here is my problematic jump code

Code: Select all

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(INJECT,theHunterCotW_F.exe,80 00 00 00 00 0F 10 00 0F 11 01 0F 10 48 10 0F 11 49 10) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+5B2CA6)
label(returnhere)
label(originalcode)
label(exit)
label(normal)
label(jumpp)

registersymbol(jumpp)

newmem: //this is allocated memory, you have read,write,execute access
//place your code here

cmp [jumpp],0 //Set speed to 1 to enable the cheat and 0 to disable
je normal

mov [rax+3C],(float)25
jmp originalcode

normal:
mov [rax+20],(float)2

originalcode:

movups xmm1,[rax+10]
movups [rcx+10],xmm1

exit:
jmp returnhere
jumpp:
dd 0

INJECT+0B:
  jmp newmem
  nop
  nop
  nop
returnhere:
registersymbol(INJECT)

[DISABLE]

INJECT+0B:
  db 0F 10 48 10 0F 11 49 10

unregistersymbol(INJECT)
dealloc(newmem)
I would appreciate any help, its got to be something simple.

Re: Super Jump issue

Posted: Sat Jul 06, 2019 6:49 pm
by Rysefox
LeftBlindEye wrote:
Sat Jul 06, 2019 6:30 pm
..

Code: Select all

[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(INJECT,theHunterCotW_F.exe,80 00 00 00 00 0F 10 00 0F 11 01 0F 10 48 10 0F 11 49 10) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+5B2CA6)
label(returnhere)
label(originalcode)
label(exit)
label(normal)
label(Jumping)
registersymbol(Jumping)
label(Compare)
label(IncreaseJump)

newmem:
cmp [Jumping],0
je normal
jmp Compare

originalcode:
movups xmm1,[rax+10]
movups [rcx+10],xmm1
jmp exit

Compare:
cmp [Jumping],1
je IncreaseJump
jmp exit

IncreaseJump:
mov [rax+3C],(float)25
jmp exit

normal:
mov [rax+20],(float)2
jmp exit

exit:
jmp returnhere
Jumping:
dq 0

INJECT+0B:
jmp newmem
nop
nop
nop
returnhere:
registersymbol(INJECT)

[DISABLE]

INJECT+0B:
db 0F 10 48 10 0F 11 49 10

unregistersymbol(INJECT)
unregistersymbol(Jumping)
dealloc(newmem)
Maybe this? Symbol is Jumping -> 1:Enable 0:Normal

Re: Super Jump issue

Posted: Sun Jul 07, 2019 12:42 am
by LeftBlindEye
Hey Rysefox, thanks for the help! I like the way your code is layed out, Unfortunately I'm still having the same issue. It will enable but not return original value on disable. Its a head scratcher...

Re: Super Jump issue

Posted: Sun Jul 07, 2019 4:04 pm
by LeftBlindEye
I'm retarded... I somehow mixed up the Normal Opcode with super speed... I can't believe I didn't see it before :lol:

Working code for super jump:
Spoiler
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(INJECT,theHunterCotW_F.exe,80 00 00 00 00 0F 10 00 0F 11 01 0F 10 48 10 0F 11 49 10) // should be unique
alloc(newmem,$1000,"theHunterCotW_F.exe"+5B2CA6)
label(returnhere)
label(originalcode)
label(exit)
label(normal)
label(Jumping)
registersymbol(Jumping)
label(Compare)
label(IncreaseJump)

newmem:
cmp [Jumping],0 // 1 for enable 0 for disable
je normal
jmp Compare

originalcode:
movups xmm1,[rax+10]
movups [rcx+10],xmm1
jmp exit

Compare:
cmp [Jumping],1
je IncreaseJump
jmp exit

IncreaseJump:
mov [rax+3C],(float)25
jmp exit

normal:
mov [rax+3C],(float)8
// mov [rax+10],(float)3
jmp exit

exit:
jmp returnhere
Jumping:
dq 0

INJECT+0B:
jmp newmem
nop
nop
nop
returnhere:
registersymbol(INJECT)

[DISABLE]

INJECT+0B:
db 0F 10 48 10 0F 11 49 10

unregistersymbol(INJECT)
unregistersymbol(Jumping)
dealloc(newmem)

Re: Super Jump issue

Posted: Sun Jul 07, 2019 5:00 pm
by fantomas
On another note, you're using the same array of bytes for both scripts, so once you activate the first, you'll not be able to activate the second until you deactivate the first.

Super Speed: 80 00 00 00 00 0F 10 00 0F 11 01 0F 10 48 10 0F 11 49 10 0F 10 40 20 0F 11 41 20

Super Jump: 80 00 00 00 00 0F 10 00 0F 11 01 0F 10 48 10 0F 11 49 10

Unless you have another opcode for your super speed and you didn't mention it?

Maybe you should find another array of bytes for your super speed which would start with 0F 10 40 20 0F 11 41 20, in that way it would not mess with your super jump script.

Re: Super Jump issue

Posted: Sun Jul 07, 2019 10:19 pm
by LeftBlindEye
hey fantomas thanks I knew something was weird, I can actually activate them both if I activate super speed first. Thank you for the heads up, 90% of the time I use super speed and jump at the same time, would i have issues just combining the scripts?