These
Auto Assemble scripts are for the
Game Pass version of the game (v1.0.1.0)
One Hit Kill
Code: Select all
{ Game : Children of Morta.exe
Version:
Date : 2020-01-18
Author : ctl3d
This script does blah blah blah
}
[ENABLE]
aobscanmodule(OneHitKill,GameAssembly.dll,F3 0F 10 49 60 0F 57 C0 0F 2F C8 0F 97) // should be unique
alloc(newmem,$1000,"GameAssembly.dll"+48DFE0)
label(code)
label(return)
newmem:
cmp [rcx+58],0
jne code
cmp [rcx+60],(float)1.0 //current health
jle code
mov [rcx+60],(float)1.0
code:
movss xmm1,[rcx+60]
jmp return
OneHitKill:
jmp newmem
return:
registersymbol(OneHitKill)
[DISABLE]
OneHitKill:
db F3 0F 10 49 60
unregistersymbol(OneHitKill)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "GameAssembly.dll"+48DFE0
"GameAssembly.dll"+48DFD6: CC - int 3
"GameAssembly.dll"+48DFD7: CC - int 3
"GameAssembly.dll"+48DFD8: CC - int 3
"GameAssembly.dll"+48DFD9: CC - int 3
"GameAssembly.dll"+48DFDA: CC - int 3
"GameAssembly.dll"+48DFDB: CC - int 3
"GameAssembly.dll"+48DFDC: CC - int 3
"GameAssembly.dll"+48DFDD: CC - int 3
"GameAssembly.dll"+48DFDE: CC - int 3
"GameAssembly.dll"+48DFDF: CC - int 3
// ---------- INJECTING HERE ----------
"GameAssembly.dll"+48DFE0: F3 0F 10 49 60 - movss xmm1,[rcx+60]
// ---------- DONE INJECTING ----------
"GameAssembly.dll"+48DFE5: 0F 57 C0 - xorps xmm0,xmm0
"GameAssembly.dll"+48DFE8: 0F 2F C8 - comiss xmm1,xmm0
"GameAssembly.dll"+48DFEB: 0F 97 C0 - seta al
"GameAssembly.dll"+48DFEE: C3 - ret
"GameAssembly.dll"+48DFEF: CC - int 3
"GameAssembly.dll"+48DFF0: 40 53 - push rbx
"GameAssembly.dll"+48DFF2: 48 83 EC 20 - sub rsp,20
"GameAssembly.dll"+48DFF6: 80 3D 63 69 A3 02 00 - cmp byte ptr [GameAssembly.dll+2EC4960],00
"GameAssembly.dll"+48DFFD: 48 8B D9 - mov rbx,rcx
"GameAssembly.dll"+48E000: 75 12 - jne GameAssembly.dll+48E014
}
Attack Range (John character only)
Code: Select all
{ Game : Children of Morta.exe
Version:
Date : 2020-01-18
Author : ctl3d
This script does blah blah blah
}
[ENABLE]
aobscanmodule(Attack,GameAssembly.dll,48 8B 88 D8 00 00 00 48 85 C9 74 5E) // should be unique
alloc(newmem,$1000,"GameAssembly.dll"+C79E5)
label(code)
label(return)
newmem:
mov rcx,[rax+448]
mov [rcx+78],(float)20.0 //attack range
code:
mov rcx,[rax+000000D8]
jmp return
Attack:
jmp newmem
nop 2
return:
registersymbol(Attack)
[DISABLE]
Attack:
db 48 8B 88 D8 00 00 00
unregistersymbol(Attack)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "GameAssembly.dll"+C79E5
"GameAssembly.dll"+C79C2: 48 85 C0 - test rax,rax
"GameAssembly.dll"+C79C5: 0F 84 84 00 00 00 - je GameAssembly.dll+C7A4F
"GameAssembly.dll"+C79CB: 33 D2 - xor edx,edx
"GameAssembly.dll"+C79CD: 48 8B C8 - mov rcx,rax
"GameAssembly.dll"+C79D0: E8 3B DF 15 00 - call GameAssembly.dll+225910
"GameAssembly.dll"+C79D5: 84 C0 - test al,al
"GameAssembly.dll"+C79D7: 74 70 - je GameAssembly.dll+C7A49
"GameAssembly.dll"+C79D9: 48 8B 83 88 00 00 00 - mov rax,[rbx+00000088]
"GameAssembly.dll"+C79E0: 48 85 C0 - test rax,rax
"GameAssembly.dll"+C79E3: 74 6A - je GameAssembly.dll+C7A4F
// ---------- INJECTING HERE ----------
"GameAssembly.dll"+C79E5: 48 8B 88 D8 00 00 00 - mov rcx,[rax+000000D8]
// ---------- DONE INJECTING ----------
"GameAssembly.dll"+C79EC: 48 85 C9 - test rcx,rcx
"GameAssembly.dll"+C79EF: 74 5E - je GameAssembly.dll+C7A4F
"GameAssembly.dll"+C79F1: 33 D2 - xor edx,edx
"GameAssembly.dll"+C79F3: E8 E8 65 3C 00 - call GameAssembly.dll+48DFE0
"GameAssembly.dll"+C79F8: 84 C0 - test al,al
"GameAssembly.dll"+C79FA: 74 4D - je GameAssembly.dll+C7A49
"GameAssembly.dll"+C79FC: 48 8B 83 88 00 00 00 - mov rax,[rbx+00000088]
"GameAssembly.dll"+C7A03: 48 85 C0 - test rax,rax
"GameAssembly.dll"+C7A06: 74 47 - je GameAssembly.dll+C7A4F
"GameAssembly.dll"+C7A08: 80 B8 60 03 00 00 00 - cmp byte ptr [rax+00000360],00
}
Attack Range (Kevin character only)
Code: Select all
{ Game : Children of Morta.exe
Version:
Date : 2020-01-18
Author : ctl3d
This script does blah blah blah
}
[ENABLE]
aobscanmodule(Attack,GameAssembly.dll,48 8B 88 D8 00 00 00 48 85 C9 74 5E) // should be unique
alloc(newmem,$1000,"GameAssembly.dll"+C79E5)
label(code)
label(return)
newmem:
mov rcx,[rax+470]
mov [rcx+78],(float)20.0 //attack range
code:
mov rcx,[rax+000000D8]
jmp return
Attack:
jmp newmem
nop 2
return:
registersymbol(Attack)
[DISABLE]
Attack:
db 48 8B 88 D8 00 00 00
unregistersymbol(Attack)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "GameAssembly.dll"+C79E5
"GameAssembly.dll"+C79C2: 48 85 C0 - test rax,rax
"GameAssembly.dll"+C79C5: 0F 84 84 00 00 00 - je GameAssembly.dll+C7A4F
"GameAssembly.dll"+C79CB: 33 D2 - xor edx,edx
"GameAssembly.dll"+C79CD: 48 8B C8 - mov rcx,rax
"GameAssembly.dll"+C79D0: E8 3B DF 15 00 - call GameAssembly.dll+225910
"GameAssembly.dll"+C79D5: 84 C0 - test al,al
"GameAssembly.dll"+C79D7: 74 70 - je GameAssembly.dll+C7A49
"GameAssembly.dll"+C79D9: 48 8B 83 88 00 00 00 - mov rax,[rbx+00000088]
"GameAssembly.dll"+C79E0: 48 85 C0 - test rax,rax
"GameAssembly.dll"+C79E3: 74 6A - je GameAssembly.dll+C7A4F
// ---------- INJECTING HERE ----------
"GameAssembly.dll"+C79E5: 48 8B 88 D8 00 00 00 - mov rcx,[rax+000000D8]
// ---------- DONE INJECTING ----------
"GameAssembly.dll"+C79EC: 48 85 C9 - test rcx,rcx
"GameAssembly.dll"+C79EF: 74 5E - je GameAssembly.dll+C7A4F
"GameAssembly.dll"+C79F1: 33 D2 - xor edx,edx
"GameAssembly.dll"+C79F3: E8 E8 65 3C 00 - call GameAssembly.dll+48DFE0
"GameAssembly.dll"+C79F8: 84 C0 - test al,al
"GameAssembly.dll"+C79FA: 74 4D - je GameAssembly.dll+C7A49
"GameAssembly.dll"+C79FC: 48 8B 83 88 00 00 00 - mov rax,[rbx+00000088]
"GameAssembly.dll"+C7A03: 48 85 C0 - test rax,rax
"GameAssembly.dll"+C7A06: 74 47 - je GameAssembly.dll+C7A4F
"GameAssembly.dll"+C7A08: 80 B8 60 03 00 00 00 - cmp byte ptr [rax+00000360],00
}
Attack Range (Joey character only)
Code: Select all
{ Game : Children of Morta.exe
Version:
Date : 2020-01-18
Author : ctl3d
This script does blah blah blah
}
[ENABLE]
aobscanmodule(Attack,GameAssembly.dll,48 8B 88 D8 00 00 00 48 85 C9 74 5E) // should be unique
alloc(newmem,$1000,"GameAssembly.dll"+C79E5)
label(code)
label(return)
newmem:
mov rcx,[rax+410]
mov [rcx+78],(float)20.0 //attack range
code:
mov rcx,[rax+000000D8]
jmp return
Attack:
jmp newmem
nop 2
return:
registersymbol(Attack)
[DISABLE]
Attack:
db 48 8B 88 D8 00 00 00
unregistersymbol(Attack)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "GameAssembly.dll"+C79E5
"GameAssembly.dll"+C79C2: 48 85 C0 - test rax,rax
"GameAssembly.dll"+C79C5: 0F 84 84 00 00 00 - je GameAssembly.dll+C7A4F
"GameAssembly.dll"+C79CB: 33 D2 - xor edx,edx
"GameAssembly.dll"+C79CD: 48 8B C8 - mov rcx,rax
"GameAssembly.dll"+C79D0: E8 3B DF 15 00 - call GameAssembly.dll+225910
"GameAssembly.dll"+C79D5: 84 C0 - test al,al
"GameAssembly.dll"+C79D7: 74 70 - je GameAssembly.dll+C7A49
"GameAssembly.dll"+C79D9: 48 8B 83 88 00 00 00 - mov rax,[rbx+00000088]
"GameAssembly.dll"+C79E0: 48 85 C0 - test rax,rax
"GameAssembly.dll"+C79E3: 74 6A - je GameAssembly.dll+C7A4F
// ---------- INJECTING HERE ----------
"GameAssembly.dll"+C79E5: 48 8B 88 D8 00 00 00 - mov rcx,[rax+000000D8]
// ---------- DONE INJECTING ----------
"GameAssembly.dll"+C79EC: 48 85 C9 - test rcx,rcx
"GameAssembly.dll"+C79EF: 74 5E - je GameAssembly.dll+C7A4F
"GameAssembly.dll"+C79F1: 33 D2 - xor edx,edx
"GameAssembly.dll"+C79F3: E8 E8 65 3C 00 - call GameAssembly.dll+48DFE0
"GameAssembly.dll"+C79F8: 84 C0 - test al,al
"GameAssembly.dll"+C79FA: 74 4D - je GameAssembly.dll+C7A49
"GameAssembly.dll"+C79FC: 48 8B 83 88 00 00 00 - mov rax,[rbx+00000088]
"GameAssembly.dll"+C7A03: 48 85 C0 - test rax,rax
"GameAssembly.dll"+C7A06: 74 47 - je GameAssembly.dll+C7A4F
"GameAssembly.dll"+C7A08: 80 B8 60 03 00 00 00 - cmp byte ptr [rax+00000360],00
}