Juices842 wrote: ↑Thu Apr 21, 2022 5:04 pm
any chance you could convert this invisibility cheat to directors cut while you have the game still installed?
Replace as follows:
invisibility, part 1:
Code: Select all
{
Game : ds.exe
Version:
Date : 2022-04-21
Author : pc
Update : SunBeam
}
[ENABLE]
aobscanmodule(InvisibilityAOB,ds.exe,C4 C1 7A 11 86 04 02 00 00 41) // should be unique
alloc(newmem,$1000,InvisibilityAOB)
label(code)
label(return)
label(hop)
newmem:
mov [r14+204],4B18967F
jmp short hop
code:
vmovss [r14+204],xmm0
hop:
jmp return
InvisibilityAOB:
jmp newmem
nop 4
return:
registersymbol(InvisibilityAOB)
[DISABLE]
InvisibilityAOB:
db C4 C1 7A 11 86 04 02 00 00
unregistersymbol(InvisibilityAOB)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ds.exe+2990E1B
ds.exe+2990DE5: C5 FB 5A D8 - vcvtsd2ss xmm3,xmm0,xmm0
ds.exe+2990DE9: C5 F3 5A E9 - vcvtsd2ss xmm5,xmm1,xmm1
ds.exe+2990DED: C4 C1 7B 10 0F - vmovsd xmm1,[r15]
ds.exe+2990DF2: C5 F3 5C 90 70 02 00 00 - vsubsd xmm2,xmm1,[rax+00000270]
ds.exe+2990DFA: C5 EB 5A C2 - vcvtsd2ss xmm0,xmm2,xmm2
ds.exe+2990DFE: C4 E3 59 21 E0 00 - vinsertps xmm4,xmm4,xmm0,00
ds.exe+2990E04: C4 E3 59 21 E3 10 - vinsertps xmm4,xmm4,xmm3,10
ds.exe+2990E0A: C4 E3 59 21 E5 20 - vinsertps xmm4,xmm4,xmm5,20
ds.exe+2990E10: C4 E3 59 40 C4 7F - vdpps xmm0,xmm4,xmm4,7F
ds.exe+2990E16: E8 9C 63 18 01 - call ds.exe+3B171B7
// ---------- INJECTING HERE ----------
ds.exe+2990E1B: C4 C1 7A 11 86 04 02 00 00 - vmovss [r14+00000204],xmm0
// ---------- DONE INJECTING ----------
ds.exe+2990E24: 41 8B 86 B4 01 00 00 - mov eax,[r14+000001B4]
ds.exe+2990E2B: C1 E8 1A - shr eax,1A
ds.exe+2990E2E: A8 01 - test al,01
ds.exe+2990E30: 0F 84 2B 01 00 00 - je ds.exe+2990F61
ds.exe+2990E36: 49 8B 86 88 03 00 00 - mov rax,[r14+00000388]
ds.exe+2990E3D: 48 8B 78 48 - mov rdi,[rax+48]
ds.exe+2990E41: 45 39 66 24 - cmp [r14+24],r12d
ds.exe+2990E45: 0F 85 EB 00 00 00 - jne ds.exe+2990F36
ds.exe+2990E4B: C4 41 78 2F 86 80 01 00 00 - vcomiss xmm8,[r14+00000180]
ds.exe+2990E54: 0F 82 DC 00 00 00 - jb ds.exe+2990F36
}
invisibility, part 2:
Code: Select all
{
Game : ds.exe
Version:
Date : 2022-04-21
Author : pc
Update : SunBeam
}
[ENABLE]
aobscanmodule(Invisibility2AOB,ds.exe,83 BF 10 01 00 00 05 0F 85 8F) // should be unique
alloc(newmem,$1000,Invisibility2AOB)
label(code)
label(return)
newmem:
mov [rdi+110],3
code:
cmp dword ptr [rdi+110],5
jmp return
Invisibility2AOB:
jmp newmem
nop 2
return:
registersymbol(Invisibility2AOB)
[DISABLE]
Invisibility2AOB:
db 83 BF 10 01 00 00 05
unregistersymbol(Invisibility2AOB)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ds.exe+2AD3369
ds.exe+2AD3335: C5 7A 10 87 14 01 00 00 - vmovss xmm8,[rdi+00000114]
ds.exe+2AD333D: C5 C0 57 FF - vxorps xmm7,xmm7,xmm7
ds.exe+2AD3341: C5 C8 57 F6 - vxorps xmm6,xmm6,xmm6
ds.exe+2AD3345: E8 B6 38 82 FF - call ds.exe+22F6C00
ds.exe+2AD334A: 48 85 C0 - test rax,rax
ds.exe+2AD334D: 74 08 - je ds.exe+2AD3357
ds.exe+2AD334F: C5 FA 10 B0 20 02 00 00 - vmovss xmm6,[rax+00000220]
ds.exe+2AD3357: C5 BA 5F C6 - vmaxss xmm0,xmm8,xmm6
ds.exe+2AD335B: C5 F8 2F 05 A1 4C 0F 01 - vcomiss xmm0,[ds.exe+3BC8004]
ds.exe+2AD3363: 0F 86 9C 00 00 00 - jbe ds.exe+2AD3405
// ---------- INJECTING HERE ----------
ds.exe+2AD3369: 83 BF 10 01 00 00 05 - cmp dword ptr [rdi+00000110],05
// ---------- DONE INJECTING ----------
ds.exe+2AD3370: 0F 85 8F 00 00 00 - jne ds.exe+2AD3405
ds.exe+2AD3376: 33 C0 - xor eax,eax
ds.exe+2AD3378: 48 89 B4 24 38 01 00 00 - mov [rsp+00000138],rsi
ds.exe+2AD3380: 48 89 84 24 58 01 00 00 - mov [rsp+00000158],rax
ds.exe+2AD3388: 48 8D 94 24 38 01 00 00 - lea rdx,[rsp+00000138]
ds.exe+2AD3390: 48 89 84 24 48 01 00 00 - mov [rsp+00000148],rax
ds.exe+2AD3398: 88 84 24 58 01 00 00 - mov [rsp+00000158],al
ds.exe+2AD339F: 48 89 84 24 40 01 00 00 - mov [rsp+00000140],rax
ds.exe+2AD33A7: 48 8B 47 68 - mov rax,[rdi+68]
ds.exe+2AD33AB: 48 85 C0 - test rax,rax
}
ignore hits/invulnerable:
Code: Select all
{
Game : ds.exe
Version:
Date : 2022-04-21
Author : pc
Update : SunBeam
}
[ENABLE]
aobscanmodule(IgnoreHitsAOB,ds.exe,84 C0 0F 84 51 04 00 00 8B 47) // should be unique
alloc(newmem,$1000,IgnoreHitsAOB)
label(code)
label(return)
newmem:
xor al,al
code:
test al,al
je short @f
jmp return
@@:
jmp ds.exe+271791A
IgnoreHitsAOB:
jmp newmem
nop 3
return:
registersymbol(IgnoreHitsAOB)
[DISABLE]
IgnoreHitsAOB:
db 84 C0 0F 84 51 04 00 00
unregistersymbol(IgnoreHitsAOB)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ds.exe+27174C1
ds.exe+271748D: 48 0F 44 CE - cmove rcx,rsi
ds.exe+2717491: 48 85 C9 - test rcx,rcx
ds.exe+2717494: 0F 84 80 04 00 00 - je ds.exe+271791A
ds.exe+271749A: 49 8B 8E B0 02 00 00 - mov rcx,[r14+000002B0]
ds.exe+27174A1: 48 8B 82 20 05 00 00 - mov rax,[rdx+00000520]
ds.exe+27174A8: 48 39 81 D0 53 00 00 - cmp [rcx+000053D0],rax
ds.exe+27174AF: 0F 85 65 04 00 00 - jne ds.exe+271791A
ds.exe+27174B5: 48 8B 02 - mov rax,[rdx]
ds.exe+27174B8: 48 8B CA - mov rcx,rdx
ds.exe+27174BB: FF 90 38 01 00 00 - call qword ptr [rax+00000138]
// ---------- INJECTING HERE ----------
ds.exe+27174C1: 84 C0 - test al,al
// ---------- DONE INJECTING ----------
ds.exe+27174C3: 0F 84 51 04 00 00 - je ds.exe+271791A
ds.exe+27174C9: 8B 47 28 - mov eax,[rdi+28]
ds.exe+27174CC: 48 89 9C 24 B0 01 00 00 - mov [rsp+000001B0],rbx
ds.exe+27174D4: 48 8D 5F 20 - lea rbx,[rdi+20]
ds.exe+27174D8: D1 E8 - shr eax,1
ds.exe+27174DA: A8 01 - test al,01
ds.exe+27174DC: 74 18 - je ds.exe+27174F6
ds.exe+27174DE: 49 8B 8E B8 02 00 00 - mov rcx,[r14+000002B8]
ds.exe+27174E5: 48 8B D3 - mov rdx,rbx
ds.exe+27174E8: 48 8B 01 - mov rax,[rcx]
}