made an alternate version for no-clip.
the input fetch of the original version could fetch a wrong input randomly after playing the game for a while.
the alternate version pick another injection point to deal with the input fetch, the results are stable on my end. but the aobscan for the new injection point is strict, it may not work on newer game version.
obviously you can only use one of the 2 versions.
note that both versions may stop moving mid-air sometime. if this happens you can activate the jump script as well and click/press the jump button/key once while holding a direction key/button. or open the field menu while holding a direction key/button.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>16344</ID>
<Description>"enable .3"</Description>
<Options moHideChildren="1"/>
<LastState/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
define(walkkeyiddefault,14)
define(sprintkeyiddefault,10)
define(walkspeed,(float)0.3)
define(sprintspeed,(float)1.295)
aobscanmodule(playerCoordReadAOB,CodeVein-Win64-Shipping.exe,48 ** ** 50 49 ** ** ** ** 00 00 44 ** ** ** ** ** ** F2 0F ** ** ** ** ** ** 48 ** ** 74 ** 0F ** ** ** ** 00 00 48 ** ** ** 0F ** ** F3 0F ** ** ** 0F ** ** ** 0F ** ** ** F3 0F)
registersymbol(playerCoordReadAOB)
label(pPlayerCoordInfo)
registersymbol(pPlayerCoordInfo)
alloc(newmem,2048,playerCoordReadAOB+1f) //"CodeVein-Win64-Shipping.exe"+6CA4C94)
label(returnhere)
label(originalcode_playerCoordReadAOB)
registersymbol(originalcode_playerCoordReadAOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rbx
mov rbx,pPlayerCoordInfo
mov [rbx],rax
pop rbx
originalcode_playerCoordReadAOB:
readmem(playerCoordReadAOB+1f,7)
//movaps xmm1,[rax+000001A0]
exit:
jmp returnhere
///
pPlayerCoordInfo:
dq 0
///
playerCoordReadAOB+1f: //"CodeVein-Win64-Shipping.exe"+6CA4C94:
jmp newmem
nop 2
returnhere:
///******************************///
aobscanmodule(someMoveSpeedReadAOB,CodeVein-Win64-Shipping.exe,F3 0F ** ** ** ** 00 00 80 ** ** ** 00 00 ** 75 ** 48 ** ** 0F ** ** 48)
registersymbol(someMoveSpeedReadAOB)
label(dMoveSpeed)
registersymbol(dMoveSpeed)
label(bWalkKeyID)
registersymbol(bWalkKeyID)
label(bWalkKeyPressed)
registersymbol(bWalkKeyPressed)
label(dWalkSpeed)
registersymbol(dWalkSpeed)
label(bSprintKeyID)
registersymbol(bSprintKeyID)
label(bSprintKeyPressed)
registersymbol(bSprintKeyPressed)
label(dSprintSpeed)
registersymbol(dSprintSpeed)
alloc(newmem3,2048,someMoveSpeedReadAOB) //"CodeVein-Win64-Shipping.exe"+DD69C1D)
label(returnhere3)
label(originalcode3_someMoveSpeedReadAOB)
registersymbol(originalcode3_someMoveSpeedReadAOB)
label(exit3)
newmem3: //this is allocated memory, you have read,write,execute access
//place your code here
{
+a: 0004/002c
+1a4: 0/(float)2000
+210: 3F000000/45000000
+234: (float)40/0
+240: (float)1300/(float)360
}
push rax
//cmp dword ptr [rdi+1a4],0
//jne end
//cmp word ptr [rdi+a],4
//jne end
mov rax,pPlayerCoordInfo
mov rax,[rax]
cmp [rdi+f8],rax
jne end3
cmp dword ptr [rdi+2f0],0
mov rax,dMoveSpeed
movss [rax],xmm0
mov rax,bWalkKeyPressed
cmp byte ptr [rax],1
je @f
mov rax,bSprintKeyPressed
cmp byte ptr [rax],1
je @f
jmp end3
@@:
mulss xmm0,[rax+4]
mov rax,dMoveSpeed
movss [rax],xmm0
jmp end3
end3:
pop rax
originalcode3_someMoveSpeedReadAOB:
readmem(someMoveSpeedReadAOB,8)
//movss [rdi+000002F0],xmm0
exit3:
jmp returnhere3
///
dMoveSpeed:
dd 0
bWalkKeyID:
dd walkkeyiddefault
bWalkKeyPressed:
dd 0
dWalkSpeed:
dd walkspeed
bSprintKeyID:
dd sprintkeyiddefault
bSprintKeyPressed:
dd 0
dSprintSpeed:
dd sprintspeed
///
someMoveSpeedReadAOB: //"CodeVein-Win64-Shipping.exe"+DD69C1D:
jmp newmem3
nop 3
returnhere3:
///******************************///
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
playerCoordReadAOB+1f: //"CodeVein-Win64-Shipping.exe"+6CA4C94:
readmem(originalcode_playerCoordReadAOB,7)
//db 0F 28 88 A0 01 00 00
//Alt: movaps xmm1,[rax+000001A0]
unregistersymbol(originalcode_playerCoordReadAOB)
unregistersymbol(pPlayerCoordInfo)
///******************************///
dealloc(newmem3)
someMoveSpeedReadAOB: //"CodeVein-Win64-Shipping.exe"+DD69C1D:
readmem(originalcode3_someMoveSpeedReadAOB,8)
//db F3 0F 11 87 F0 02 00 00
//Alt: movss [rdi+000002F0],xmm0
unregistersymbol(originalcode3_someMoveSpeedReadAOB)
unregistersymbol(dMoveSpeed)
unregistersymbol(bWalkKeyID)
unregistersymbol(bWalkKeyPressed)
unregistersymbol(dWalkSpeed)
unregistersymbol(bSprintKeyID)
unregistersymbol(bSprintKeyPressed)
unregistersymbol(dSprintSpeed)
///******************************///
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>16345</ID>
<Description>"walk/sprint keys"</Description>
<Options moHideChildren="1"/>
<LastState/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
//modified from ShyTwig16's lua keylistener script
//http://fearlessrevolution.com/viewtopic.php?f=4&t=6041&start=60#p62657
{$lua}
local function walkkeyLuaThread(thread2)
local addr2 = getAddressSafe('bWalkKeyPressed')
local addr3 = getAddressSafe('bSprintKeyPressed')
while RunWalkkeyLuaThreadLoop do
sleep(100)
if addr2 then
if ( isKeyPressed( readInteger('bWalkKeyID') ) ) then
writeBytes(addr2, 1)
else
writeBytes(addr2, 0)
end
else
addr2 = getAddressSafe('bWalkKeyPressed')
end
if addr3 then
if ( isKeyPressed( readInteger('bSprintKeyID') ) ) then
writeBytes(addr3, 1)
else
writeBytes(addr3, 0)
end
else
addr3 = getAddressSafe('bSprintKeyPressed')
end
end
thread2.terminate()
-- while RunWalkkeyLuaThreadLoop do
-- if ( isKeyPressed(VK_CAPITAL) ) then
-- writeBytes("bWalkKeyPressed" ,1)
-- else
-- writeBytes("bWalkKeyPressed" ,0)
-- end
-- end
-- thread2.terminate()
end
----------------------------------
if syntaxcheck then return end
RunWalkkeyLuaThreadLoop = true
createThread(walkkeyLuaThread)
{$asm}
///*****************************************///
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
{$lua}
if syntaxcheck then return end
RunWalkkeyLuaThreadLoop = false
{$asm}
///*****************************************///
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>16346</ID>
<Description>"walk key"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">10:SHIFT key
11:CTRL key
12:ALT key
14:CAPS LOCK key
04:Middle Mouse Button
05:X1 Mouse Button
06:X2 Moust Button
09:TAB key
</DropDownList>
<ShowAsHex>1</ShowAsHex>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>bWalkKeyID</Address>
<CheatEntries>
<CheatEntry>
<ID>16347</ID>
<Description>"speed"</Description>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>+8</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>16348</ID>
<Description>"sprint key"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">10:SHIFT key
11:CTRL key
12:ALT key
14:CAPS LOCK key
04:Middle Mouse Button
05:X1 Mouse Button
06:X2 Moust Button
09:TAB key
</DropDownList>
<ShowAsHex>1</ShowAsHex>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>bSprintKeyID</Address>
<CheatEntries>
<CheatEntry>
<ID>16349</ID>
<Description>"speed"</Description>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>+8</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>16350</ID>
<Description>"jump key"</Description>
<Options moHideChildren="1"/>
<LastState/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(someCoordRead2AOB,CodeVein-Win64-Shipping.exe,48 ** ** ** 48 ** ** 0F 84 ** ** ** ** 48 ** ** ** ** 00 00 8B ** ** ** ** ** F2 0F ** ** ** ** ** ** 48 ** ** 74 ** 0F ** ** ** ** 00 00 48 ** ** ** 0F ** ** F3 0F ** ** ** 0F)
registersymbol(someCoordRead2AOB)
label(bJumpKeyID)
registersymbol(bJumpKeyID)
label(bJumpKeyPressed)
registersymbol(bJumpKeyPressed)
label(dJumpHeightInterval)
registersymbol(dJumpHeightInterval)
alloc(newmem2,2048,someCoordRead2AOB+27) //"CodeVein-Win64-Shipping.exe"+D6AF37C)
label(returnhere2)
label(originalcode2_someCoordRead2AOB)
registersymbol(originalcode2_someCoordRead2AOB)
label(exit2)
newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
push rbx
mov rbx,pPlayerCoordInfo
cmp [rbx],rax
jne end2
mov rbx,bJumpKeyPressed
cmp byte ptr [rbx],1
je @f
mov dword ptr [rbx+4],0
jmp end2
@@:
cmp dword ptr [rbx+4],#1800 //#2300
jg @f
inc dword ptr [rbx+4]
mov rbx,dJumpHeightInterval
movss xmm1,[rbx]
db 48 8D 98
readmem(someCoordRead2AOB+2a,4)
//lea rbx,[rax+1a0]
addss xmm1,[rbx+8]
movss [rbx+8],xmm1
end2:
pop rbx
originalcode2_someCoordRead2AOB:
readmem(someCoordRead2AOB+27,7)
//movaps xmm1,[rax+000001A0]
exit2:
jmp returnhere2
///
bJumpKeyID:
dd 05
bJumpKeyPressed:
dd 0
dd 0
dJumpHeightInterval:
dd (float)0.078
///
someCoordRead2AOB+27: //"CodeVein-Win64-Shipping.exe"+D6AF37C:
jmp newmem2
nop 2
returnhere2:
///*****************************************///
//modified from ShyTwig16's lua keylistener script
//http://fearlessrevolution.com/viewtopic.php?f=4&t=6041&start=60#p62657
{$lua}
local function jumpkeyLuaThread(thread6)
local addr6 = getAddressSafe('bJumpKeyPressed')
while JumpKeyLuaThreadLoop do
sleep(100)
if addr6 then
if ( isKeyPressed( readInteger('bJumpKeyID') ) ) then
writeBytes(addr6, 1)
else
writeBytes(addr6, 0)
end
else
addr6 = getAddressSafe('bJumpKeyPressed')
end
end
thread6.terminate()
-- while JumpKeyLuaThreadLoop do
-- if ( isKeyPressed(VK_CAPITAL) ) then
-- writeBytes("bJumpKeyPressed" ,1)
-- else
-- writeBytes("bJumpKeyPressed" ,0)
-- end
-- end
-- thread6.terminate()
end
----------------------------------
if syntaxcheck then return end
JumpKeyLuaThreadLoop = true
createThread(jumpkeyLuaThread)
{$asm}
///*****************************************///
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
{$lua}
if syntaxcheck then return end
JumpKeyLuaThreadLoop = false
{$asm}
///*****************************************///
dealloc(newmem2)
someCoordRead2AOB+27: //"CodeVein-Win64-Shipping.exe"+D6AF37C:
readmem(originalcode2_someCoordRead2AOB,7)
//db 0F 28 88 A0 01 00 00
//Alt: movaps xmm1,[rax+000001A0]
unregistersymbol(originalcode2_someCoordRead2AOB)
unregistersymbol(bJumpKeyID)
unregistersymbol(bJumpKeyPressed)
unregistersymbol(dJumpHeightInterval)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>16351</ID>
<Description>"key"</Description>
<Options moHideChildren="1"/>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">10:SHIFT key
11:CTRL key
12:ALT key
14:CAPS LOCK key
04:Middle Mouse Button
05:X1 Mouse Button
06:X2 Moust Button
</DropDownList>
<ShowAsHex>1</ShowAsHex>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>bJumpKeyID</Address>
<CheatEntries>
<CheatEntry>
<ID>16352</ID>
<Description>""</Description>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>+4</Address>
<CheatEntries>
<CheatEntry>
<ID>16353</ID>
<Description>""</Description>
<Color>008000</Color>
<VariableType>4 Bytes</VariableType>
<Address>+4</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>16411</ID>
<Description>"no-clip"</Description>
<Options moHideChildren="1"/>
<LastState/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
define(noclipbasespeed,(float)10)
aobscanmodule(someNV3WritesAOB,CodeVein-Win64-Shipping.exe,C7 ** ** ** 00 00 ** ** ** ** 89 ** 8B ** ** 89 ** ** 8B ** ** 89 ** ** 8B ** ** 89 ** ** 8B ** ** 89 ** ** 8B ** ** 89 ** ** 8B ** ** 89)
registersymbol(someNV3WritesAOB)
label(aNV3)
registersymbol(aNV3)
alloc(newmem,2048,someNV3WritesAOB+2a) //"CodeVein-Win64-Shipping.exe"+48F9DB5)
label(returnhere)
label(originalcode_someNV3WritesAOB)
registersymbol(originalcode_someNV3WritesAOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
db 48 8D
readmem(someNV3WritesAOB+2b,2)
//lea rax,[rbx+60]
mov rcx,aNV3
movss xmm0,[rax]
movss [rcx],xmm0
movss xmm0,[rax+4]
movss [rcx+4],xmm0
movss xmm0,[rax+8]
movss [rcx+8],xmm0
originalcode_someNV3WritesAOB:
readmem(someNV3WritesAOB+2a,6)
//mov eax,[rbx+60]
//mov [rbx+18],eax
exit:
jmp returnhere
///
aNV3:
///
someNV3WritesAOB+2a: //"CodeVein-Win64-Shipping.exe"+48F9DB5:
jmp newmem
nop
returnhere:
///*********************************************///
aobscanmodule(NV2ReadsAOB,CodeVein-Win64-Shipping.exe,66 ** 48 ** ** ** ** 00 00 0F ** 01 48 ** ** ** ** 00 00 0F ** ** ** 0F ** ** ** 0F ** ** ** 0F)
registersymbol(NV2ReadsAOB)
label(aNV2)
registersymbol(aNV2)
alloc(newmem2,2048,NV2ReadsAOB+9) //"CodeVein-Win64-Shipping.exe"+B60A2A7)
label(returnhere2)
label(originalcode2_NV2ReadsAOB)
registersymbol(originalcode2_NV2ReadsAOB)
label(exit2)
newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
push rax
mov rax,aNV2
movss xmm0,[rcx]
movss [rax],xmm0
movss xmm0,[rcx+4]
movss [rax+4],xmm0
pop rax
originalcode2_NV2ReadsAOB:
readmem(NV2ReadsAOB+9,10)
//movups xmm0,[rcx]
//lea rcx,[rcx+00000080]
exit2:
jmp returnhere2
///
aNV2:
///
NV2ReadsAOB+9: //"CodeVein-Win64-Shipping.exe"+B60A2A7:
jmp newmem2
nop 5
returnhere2:
///*********************************************///
aobscanmodule(someInputBaseReadAOB,CodeVein-Win64-Shipping.exe,8B ** ** 48 8B ** ** ** ** ** 89 ** ** ** 00 00 8B ** ** 89 ** ** ** 00 00 48)
registersymbol(someInputBaseReadAOB)
label(pInputBase)
registersymbol(pInputBase)
alloc(newmem3,2048,someInputBaseReadAOB+a) //"CodeVein-Win64-Shipping.exe"+F855322)
label(returnhere3)
label(originalcode3_someInputBaseReadAOB)
registersymbol(originalcode3_someInputBaseReadAOB)
label(exit3)
newmem3: //this is allocated memory, you have read,write,execute access
//place your code here
readmem(someInputBaseReadAOB+a,6)
//mov [rbp+90],eax
mov rax,pInputBase
mov [rax],rdx
jmp exit3
originalcode3_someInputBaseReadAOB:
readmem(someInputBaseReadAOB+a,6)
//mov [rbp+00000090],eax
exit3:
jmp returnhere3
///
pInputBase:
///
someInputBaseReadAOB+a: //"CodeVein-Win64-Shipping.exe"+F855322:
jmp newmem3
nop
returnhere3:
///*********************************************///
aobscanmodule(someCoordWritesAOB,CodeVein-Win64-Shipping.exe,0F ** ** ** ** 00 00 B2 ** 44 0F ** ** ** ** 00 00 44 0F ** ** ** ** 00 00 EB)
registersymbol(someCoordWritesAOB)
label(bNoClip)
registersymbol(bNoClip)
alloc(newmem4,2048,someCoordWritesAOB+9) //"CodeVein-Win64-Shipping.exe"+DF938A2)
label(returnhere4)
label(originalcode4_someCoordWritesAOB)
registersymbol(originalcode4_someCoordWritesAOB)
label(exit4)
newmem4: //this is allocated memory, you have read,write,execute access
//place your code here
push rax
mov rax,bNoClip
cmp byte ptr [rax],1
jne end4
mov rax,pPlayerCoordInfo
cmp [rax],rbx
//je @f
//cmp [rax],rdi
//jne end4
//mov rax,[rax+1a0]
//cmp [rdi+1a0],rax
jne end4
//cmp [rax+1a8],rax
@@:
//store registers, xmms
//push rax
push r8
push r9
sub rsp,10
movdqu dqword [rsp],xmm0
xorps xmm0,xmm0
sub rsp,10
movdqu dqword [rsp],xmm3
xorps xmm3,xmm3
sub rsp,10
movdqu dqword [rsp],xmm4
xorps xmm4,xmm4
//prepare coord
readmem(someCoordWritesAOB+9,2)
db 28
readmem(someCoordWritesAOB+c,5)
//movaps xmm13,[rbx+1a0]
//do y
//get delta y
mov r8,pInputBase
mov r8,[r8]
test r8,r8
jz regsxmmsrestore4
lea r8,[r8+50]
movss xmm4,[r8]
shufps xmm4,xmm4,c0 //broadcast except 4th
//apply speed
mov eax,noclipbasespeed
movd xmm3,eax
//mov rax,dMoveSpeed
//mulss xmm3,[rax]
xorps xmm0,xmm0
comiss xmm0,[r8+60]
je @f
comiss xmm0,[r8+60]
mov eax,(float)0.5
movd xmm0,eax
mulss xmm3,xmm0
@@:
shufps xmm3,xmm3,00 //broadcast
mulps xmm4,xmm3
//apply vector
mov r9,aNV3
test r9,r9
jz @f
movups xmm3,[r9]
mulps xmm4,xmm3
//update new coord
addps xmm13,xmm4
//do x
//get delta x
movss xmm4,[r8+60]
shufps xmm4,xmm4,e0 //copy to 2nd
//apply speed
mov eax,noclipbasespeed
movd xmm3,eax
//mov rax,dMoveSpeed
//mulss xmm3,[rax]
comiss xmm0,[r8]
je @f
mov eax,(float)0.5
movd xmm0,eax
mulss xmm3,xmm0
@@:
shufps xmm3,xmm3,e0 //copy to 2nd
mulps xmm4,xmm3
//apply vector
mov r9,aNV2
test r9,r9
jz @f
movups xmm3,[r9]
mulps xmm4,xmm3
//update new coord
addps xmm13,xmm4
regsxmmsrestore4:
//restore registers, xmms
movdqu xmm4,dqword [rsp]
add rsp,10
movdqu xmm3,dqword [rsp]
add rsp,10
movdqu xmm0,dqword [rsp]
add rsp,10
pop r9
pop r8
//pop rax
end4:
pop rax
originalcode4_someCoordWritesAOB:
readmem(someCoordWritesAOB+9,8)
//movaps [rbx+000001A0],xmm13
exit4:
jmp returnhere4
///
bNoClip:
///
someCoordWritesAOB+9: //"CodeVein-Win64-Shipping.exe"+DF938A2:
jmp newmem4
nop 3
returnhere4:
///*********************************************///
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
someNV3WritesAOB+2a: //"CodeVein-Win64-Shipping.exe"+48F9DB5:
readmem(originalcode_someNV3WritesAOB,6)
//db 8B 43 60 89 43 18
//Alt: mov eax,[rbx+60]
//Alt: mov [rbx+18],eax
unregistersymbol(originalcode_someNV3WritesAOB)
unregistersymbol(aNV3)
///*********************************************///
dealloc(newmem2)
NV2ReadsAOB+9: //"CodeVein-Win64-Shipping.exe"+B60A2A7:
readmem(originalcode2_NV2ReadsAOB,10)
//db 0F 10 01 48 8D 89 80 00 00 00
//Alt: movups xmm0,[rcx]
//Alt: lea rcx,[rcx+00000080]
unregistersymbol(originalcode2_NV2ReadsAOB)
unregistersymbol(aNV2)
///*********************************************///
dealloc(newmem3)
someInputBaseReadAOB+a: //"CodeVein-Win64-Shipping.exe"+F855322:
readmem(originalcode3_someInputBaseReadAOB,6)
//db 89 85 90 00 00 00
//Alt: mov [rbp+00000090],eax
unregistersymbol(originalcode3_someInputBaseReadAOB)
unregistersymbol(pInputBase)
///*********************************************///
dealloc(newmem4)
someCoordWritesAOB+9: //"CodeVein-Win64-Shipping.exe"+DF938A2:
readmem(originalcode4_someCoordWritesAOB,8)
//db 44 0F 29 AB A0 01 00 00
//Alt: movaps [rbx+000001A0],xmm13
unregistersymbol(originalcode4_someCoordWritesAOB)
unregistersymbol(bNoClip)
///*********************************************///
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>16412</ID>
<Description>"status"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">*:activate no-clip first
0:disabled
1:enabled
</DropDownList>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>bNoClip</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>96</Key>
<Key>106</Key>
</Keys>
<Value>1</Value>
<ID>0</ID>
<ActivateSound TTS="">no-clip Activated</ActivateSound>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>96</Key>
<Key>111</Key>
</Keys>
<Value>0</Value>
<ID>1</ID>
<ActivateSound TTS="">no-clip deactivated</ActivateSound>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>16359</ID>
<Description>"no-clip alt"</Description>
<Options moHideChildren="1"/>
<LastState/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript Async="1">[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
define(noclipbasespeed,(float)10)
aobscanmodule(someNV3WritesAOB,CodeVein-Win64-Shipping.exe,C7 ** ** ** 00 00 ** ** ** ** 89 ** 8B ** ** 89 ** ** 8B ** ** 89 ** ** 8B ** ** 89 ** ** 8B ** ** 89 ** ** 8B ** ** 89 ** ** 8B ** ** 89)
registersymbol(someNV3WritesAOB)
label(aNV3)
registersymbol(aNV3)
alloc(newmem,2048,someNV3WritesAOB+2a) //"CodeVein-Win64-Shipping.exe"+48F9DB5)
label(returnhere)
label(originalcode_someNV3WritesAOB)
registersymbol(originalcode_someNV3WritesAOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
db 48 8D
readmem(someNV3WritesAOB+2b,2)
//lea rax,[rbx+60]
mov rcx,aNV3
movss xmm0,[rax]
movss [rcx],xmm0
movss xmm0,[rax+4]
movss [rcx+4],xmm0
movss xmm0,[rax+8]
movss [rcx+8],xmm0
originalcode_someNV3WritesAOB:
readmem(someNV3WritesAOB+2a,6)
//mov eax,[rbx+60]
//mov [rbx+18],eax
exit:
jmp returnhere
///
aNV3:
///
someNV3WritesAOB+2a: //"CodeVein-Win64-Shipping.exe"+48F9DB5:
jmp newmem
nop
returnhere:
///*********************************************///
aobscanmodule(NV2ReadsAOB,CodeVein-Win64-Shipping.exe,66 ** 48 ** ** ** ** 00 00 0F ** 01 48 ** ** ** ** 00 00 0F ** ** ** 0F ** ** ** 0F ** ** ** 0F)
registersymbol(NV2ReadsAOB)
label(aNV2)
registersymbol(aNV2)
alloc(newmem2,2048,NV2ReadsAOB+9) //"CodeVein-Win64-Shipping.exe"+B60A2A7)
label(returnhere2)
label(originalcode2_NV2ReadsAOB)
registersymbol(originalcode2_NV2ReadsAOB)
label(exit2)
newmem2: //this is allocated memory, you have read,write,execute access
//place your code here
push rax
mov rax,aNV2
movss xmm0,[rcx]
movss [rax],xmm0
movss xmm0,[rcx+4]
movss [rax+4],xmm0
pop rax
originalcode2_NV2ReadsAOB:
readmem(NV2ReadsAOB+9,10)
//movups xmm0,[rcx]
//lea rcx,[rcx+00000080]
exit2:
jmp returnhere2
///
aNV2:
///
NV2ReadsAOB+9: //"CodeVein-Win64-Shipping.exe"+B60A2A7:
jmp newmem2
nop 5
returnhere2:
///*********************************************///
aobscanmodule(someAInputYReadAOB,CodeVein-Win64-Shipping.exe,F3 0F 11 89 A0 01 00 00 C3)
registersymbol(someAInputYReadAOB)
label(pLAInput)
registersymbol(pLAInput)
alloc(newmem3,2048,someAInputYReadAOB) //"CodeVein-Win64-Shipping.exe"+65CDAE0)
label(returnhere3)
label(originalcode3)
label(exit3)
newmem3: //this is allocated memory, you have read,write,execute access
//place your code here
push rax
lea rax,[rcx+1a0]
push rax
mov rax,pLAInput
pop [rax]
pop rax
originalcode3:
movss [rcx+000001A0],xmm1
exit3:
jmp returnhere3
///
pLAInput:
///
someAInputYReadAOB: //"CodeVein-Win64-Shipping.exe"+65CDAE0:
jmp newmem3
nop 3
returnhere3:
///*********************************************///
aobscanmodule(someCoordWritesAOB,CodeVein-Win64-Shipping.exe,0F ** ** ** ** 00 00 B2 ** 44 0F ** ** ** ** 00 00 44 0F ** ** ** ** 00 00 EB)
registersymbol(someCoordWritesAOB)
label(bNoClip)
registersymbol(bNoClip)
alloc(newmem4,2048,someCoordWritesAOB+9) //"CodeVein-Win64-Shipping.exe"+DF938A2)
label(returnhere4)
label(originalcode4_someCoordWritesAOB)
registersymbol(originalcode4_someCoordWritesAOB)
label(exit4)
newmem4: //this is allocated memory, you have read,write,execute access
//place your code here
push rax
mov rax,bNoClip
cmp byte ptr [rax],1
jne end4
mov rax,pPlayerCoordInfo
cmp [rax],rbx
//je @f
//cmp [rax],rdi
//jne end4
//mov rax,[rax+1a0]
//cmp [rdi+1a0],rax
jne end4
//cmp [rax+1a8],rax
@@:
//store registers, xmms
//push rax
push r8
push r9
sub rsp,10
movdqu dqword [rsp],xmm0
xorps xmm0,xmm0
sub rsp,10
movdqu dqword [rsp],xmm3
xorps xmm3,xmm3
sub rsp,10
movdqu dqword [rsp],xmm4
xorps xmm4,xmm4
//prepare coord
readmem(someCoordWritesAOB+9,2)
db 28
readmem(someCoordWritesAOB+c,5)
//movaps xmm13,[rbx+1a0]
//do y
//get delta y
mov r8,pLAInput
mov r8,[r8]
test r8,r8
jz regsxmmsrestore4
movss xmm4,[r8]
shufps xmm4,xmm4,c0 //broadcast except 4th
//apply speed
mov eax,noclipbasespeed
movd xmm3,eax
//mov rax,dMoveSpeed
//mulss xmm3,[rax]
xorps xmm0,xmm0
comiss xmm0,[r8+4]
je @f
//comiss xmm0,[r8+50]
mov eax,(float)0.5
movd xmm0,eax
mulss xmm3,xmm0
@@:
shufps xmm3,xmm3,00 //broadcast
mulps xmm4,xmm3
//apply vector
mov r9,aNV3
test r9,r9
jz @f
movups xmm3,[r9]
mulps xmm4,xmm3
//update new coord
addps xmm13,xmm4
//do x
//get delta x
movss xmm4,[r8+4]
shufps xmm4,xmm4,e0 //copy to 2nd
//apply speed
mov eax,noclipbasespeed
movd xmm3,eax
//mov rax,dMoveSpeed
//mulss xmm3,[rax]
comiss xmm0,[r8]
je @f
mov eax,(float)0.5
movd xmm0,eax
mulss xmm3,xmm0
@@:
shufps xmm3,xmm3,e0 //copy to 2nd
mulps xmm4,xmm3
//apply vector
mov r9,aNV2
test r9,r9
jz @f
movups xmm3,[r9]
mulps xmm4,xmm3
//update new coord
addps xmm13,xmm4
regsxmmsrestore4:
//restore registers, xmms
movdqu xmm4,dqword [rsp]
add rsp,10
movdqu xmm3,dqword [rsp]
add rsp,10
movdqu xmm0,dqword [rsp]
add rsp,10
pop r9
pop r8
//pop rax
end4:
pop rax
originalcode4_someCoordWritesAOB:
readmem(someCoordWritesAOB+9,8)
//movaps [rbx+000001A0],xmm13
exit4:
jmp returnhere4
///
bNoClip:
///
someCoordWritesAOB+9: //"CodeVein-Win64-Shipping.exe"+DF938A2:
jmp newmem4
nop 3
returnhere4:
///*********************************************///
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
someNV3WritesAOB+2a: //"CodeVein-Win64-Shipping.exe"+48F9DB5:
readmem(originalcode_someNV3WritesAOB,6)
//db 8B 43 60 89 43 18
//Alt: mov eax,[rbx+60]
//Alt: mov [rbx+18],eax
unregistersymbol(originalcode_someNV3WritesAOB)
unregistersymbol(aNV3)
///*********************************************///
dealloc(newmem2)
NV2ReadsAOB+9: //"CodeVein-Win64-Shipping.exe"+B60A2A7:
readmem(originalcode2_NV2ReadsAOB,10)
//db 0F 10 01 48 8D 89 80 00 00 00
//Alt: movups xmm0,[rcx]
//Alt: lea rcx,[rcx+00000080]
unregistersymbol(originalcode2_NV2ReadsAOB)
unregistersymbol(aNV2)
///*********************************************///
dealloc(newmem3)
someAInputYReadAOB: //"CodeVein-Win64-Shipping.exe"+65CDAE0:
db F3 0F 11 89 A0 01 00 00
//Alt: movss [rcx+000001A0],xmm1
unregistersymbol(pLAInput)
///*********************************************///
dealloc(newmem4)
someCoordWritesAOB+9: //"CodeVein-Win64-Shipping.exe"+DF938A2:
readmem(originalcode4_someCoordWritesAOB,8)
//db 44 0F 29 AB A0 01 00 00
//Alt: movaps [rbx+000001A0],xmm13
unregistersymbol(originalcode4_someCoordWritesAOB)
unregistersymbol(bNoClip)
///*********************************************///
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>16360</ID>
<Description>"status"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">*:activate no-clip first
0:disabled
1:enabled
</DropDownList>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>bNoClip</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>96</Key>
<Key>106</Key>
</Keys>
<Value>1</Value>
<ID>0</ID>
<ActivateSound TTS="">no-clip Activated</ActivateSound>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>96</Key>
<Key>111</Key>
</Keys>
<Value>0</Value>
<ID>1</ID>
<ActivateSound TTS="">no-clip deactivated</ActivateSound>
</Hotkey>
</Hotkeys>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>16354</ID>
<Description>"[player coords]"</Description>
<LastState Value="" RealAddress="00000000"/>
<Color>000080</Color>
<VariableType>Array of byte</VariableType>
<ByteLength>0</ByteLength>
<Address>pPlayerCoordInfo</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>16361</ID>
<Description>"don't freeze any pointers"</Description>
<LastState Value="" RealAddress="00000000"/>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
</CheatEntry>
<CheatEntry>
<ID>16355</ID>
<Description>""</Description>
<Color>0000FF</Color>
<VariableType>Float</VariableType>
<Address>+1a0</Address>
</CheatEntry>
<CheatEntry>
<ID>16356</ID>
<Description>""</Description>
<Color>0000FF</Color>
<VariableType>Float</VariableType>
<Address>+1a4</Address>
</CheatEntry>
<CheatEntry>
<ID>16357</ID>
<Description>""</Description>
<Color>0000FF</Color>
<VariableType>Float</VariableType>
<Address>+1a8</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
- copy and paste the above ONto the table (highlight an entry on your table, then press Ctrl-V).
- for script descriptions, check previous post.
- copy and paste the above ONto the table (highlight an entry on your table, then press Ctrl-V).
- switch the weapons/blood veil once after script activation. when activated, all weapons' mobility would becomes quick, ignoring the weapons' weight and the blood veil you equipped. the result is that you can use the quickest dodge with every weapons.
forgot to implement the aobscan for the script.... the code for