Get Actor
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>547</ID>
<Description>"Get Actor"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Last Epoch.exe
Version:
Date : 2024-02-24
Author : SanitKa
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INJGETACTOR,GameAssembly.dll,48 8B 80 B8 00 00 00 48 8B 40 38 48 83 C4 20 5B C3 E8) // should be unique
alloc(newmem,$1000,INJGETACTOR)
label(code)
label(return)
label(actorPtr)
newmem:
code:
mov rax,[rax+000000B8] // long version; any offset
mov rax,[rax+38] // short version; 7F max offset
mov [actorPtr],rax
jmp return
actorPtr:
dq 0
INJGETACTOR:
jmp newmem
nop 6 // nop both mov rax ...
return:
registersymbol(INJGETACTOR)
registersymbol(actorPtr)
[DISABLE]
INJGETACTOR:
db 48 8B 80 B8 00 00 00 48 8B 40 38
unregistersymbol(*)
dealloc(newmem)
{
PlayerFinder.getPlayerActor
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+12DB116
GameAssembly.dll+12DB0E6: 48 89 01 - mov [rcx],rax
GameAssembly.dll+12DB0E9: E8 42 66 DF FE - call GameAssembly.dll+D1730
GameAssembly.dll+12DB0EE: 48 8B 05 43 D7 8E 04 - mov rax,[GameAssembly.dll+5BC8838]
GameAssembly.dll+12DB0F5: F6 80 2F 01 00 00 02 - test byte ptr [rax+0000012F],02
GameAssembly.dll+12DB0FC: 74 18 - je GameAssembly.dll+12DB116
GameAssembly.dll+12DB0FE: 83 B8 E0 00 00 00 00 - cmp dword ptr [rax+000000E0],00
GameAssembly.dll+12DB105: 75 0F - jne GameAssembly.dll+12DB116
GameAssembly.dll+12DB107: 48 8B C8 - mov rcx,rax
GameAssembly.dll+12DB10A: E8 21 C5 D7 FE - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+12DB10F: 48 8B 05 22 D7 8E 04 - mov rax,[GameAssembly.dll+5BC8838]
GameAssembly.dll+12DB116: 48 8B 80 B8 00 00 00 - mov rax,[rax+000000B8]
// ---------- INJECTING HERE ----------
GameAssembly.dll+12DB11D: 48 8B 40 38 - mov rax,[rax+38]
GameAssembly.dll+12DB121: 48 83 C4 20 - add rsp,20
// ---------- DONE INJECTING ----------
GameAssembly.dll+12DB125: 5B - pop rbx
GameAssembly.dll+12DB126: C3 - ret
GameAssembly.dll+12DB127: E8 34 6A DF FE - call GameAssembly.dll+D1B60
GameAssembly.dll+12DB12C: CC - int 3
GameAssembly.dll+12DB12D: CC - int 3
GameAssembly.dll+12DB12E: CC - int 3
GameAssembly.dll+12DB12F: CC - int 3
PlayerFinder.getPlayerDataTracker: 40 53 - push rbx
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>5</ID>
<Description>"Actor Ptr"</Description>
<ShowAsHex>1</ShowAsHex>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>8 Bytes</VariableType>
<Address>actorPtr</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>567</ID>
<Description>"Max Affix Rolls for Others"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Last Epoch.exe
Version:
Date : 2024-02-28
Author : SanitKa
This script does blah blah blah
}
[ENABLE]
aobscanmodule(INJMAXAFFX,GameAssembly.dll,48 83 EC 30 80 3D ?? ?? ?? ?? 00 41 0F B6 D9 41 0F B6 F0 0F B7 EA) // should be unique
INJMAXAFFX+0b:
// movzx ebx,r9b
mov bl,ff
nop 2
registersymbol(INJMAXAFFX)
[DISABLE]
INJMAXAFFX+0b:
// movzx ebx,r9b
db 41 0F B6 D9
unregistersymbol(*)
{
ItemAffix..ctor
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+EF5DB4
GameAssembly.dll+EF5D9B: CC - int 3
GameAssembly.dll+EF5D9C: CC - int 3
GameAssembly.dll+EF5D9D: CC - int 3
GameAssembly.dll+EF5D9E: CC - int 3
GameAssembly.dll+EF5D9F: CC - int 3
ItemAffix..ctor: 48 89 5C 24 10 - mov [rsp+10],rbx
GameAssembly.dll+EF5DA5: 48 89 6C 24 18 - mov [rsp+18],rbp
GameAssembly.dll+EF5DAA: 48 89 74 24 20 - mov [rsp+20],rsi
GameAssembly.dll+EF5DAF: 57 - push rdi
GameAssembly.dll+EF5DB0: 48 83 EC 30 - sub rsp,30
GameAssembly.dll+EF5DB4: 80 3D 8F 6B C4 04 00 - cmp byte ptr [GameAssembly.dll+5B3C94A],00
// ---------- INJECTING HERE ----------
GameAssembly.dll+EF5DBB: 41 0F B6 D9 - movzx ebx,r9b
// ---------- DONE INJECTING ----------
GameAssembly.dll+EF5DBF: 41 0F B6 F0 - movzx esi,r8b
GameAssembly.dll+EF5DC3: 0F B7 EA - movzx ebp,dx
GameAssembly.dll+EF5DC6: 48 8B F9 - mov rdi,rcx
GameAssembly.dll+EF5DC9: 75 12 - jne GameAssembly.dll+EF5DDD
GameAssembly.dll+EF5DCB: 8B 0D 63 65 66 03 - mov ecx,[GameAssembly.dll+455C334]
GameAssembly.dll+EF5DD1: E8 4A C1 60 FF - call GameAssembly.dll+501F20
GameAssembly.dll+EF5DD6: C6 05 6D 6B C4 04 01 - mov byte ptr [GameAssembly.dll+5B3C94A],01
GameAssembly.dll+EF5DDD: 33 D2 - xor edx,edx
GameAssembly.dll+EF5DDF: 48 8B CF - mov rcx,rdi
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>568</ID>
<Description>"Max Unique, Sets and Implicit Rolls"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Last Epoch.exe
Version: 1.0.1.2
Date : 2024-02-29
Author : SanitKa
This script does blah blah blah
}
[ENABLE]
// GameAssembly.dll+218A345 - E8 86528AFE - call Fun.randomByte
aobscanmodule(INJMAXROLL1,GameAssembly.dll,E8 86 52 8A FE) // should be unique
// GameAssembly.dll+218A405 - E8 C6518AFE - call Fun.randomByte
aobscanmodule(INJMAXROLL2,GameAssembly.dll,E8 C6 51 8A FE) // should be unique
INJMAXROLL1:
// call Fun.randomByte
xor eax,eax
dec al
nop
registersymbol(INJMAXROLL1)
INJMAXROLL2:
// call Fun.randomByte
xor eax,eax
dec al
nop
registersymbol(INJMAXROLL2)
[DISABLE]
INJMAXROLL1:
db E8 86 52 8A FE
INJMAXROLL2:
db E8 C6 51 8A FE
unregistersymbol(INJMAXROLL1)
unregistersymbol(INJMAXROLL2)
{
ItemData.randomiseImplicitRolls
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+23C7215
GameAssembly.dll+23C71ED: 0F 1F 00 - nop dword ptr [rax]
GameAssembly.dll+23C71F0: 3B 50 18 - cmp edx,[rax+18]
GameAssembly.dll+23C71F3: 7D 48 - jnl GameAssembly.dll+23C723D
GameAssembly.dll+23C71F5: 48 8B 0D E4 2B AA 03 - mov rcx,[GameAssembly.dll+5E69DE0]
GameAssembly.dll+23C71FC: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+23C7203: 74 0E - je GameAssembly.dll+23C7213
GameAssembly.dll+23C7205: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+23C720C: 75 05 - jne GameAssembly.dll+23C7213
GameAssembly.dll+23C720E: E8 9D 09 0C FE - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+23C7213: 33 C9 - xor ecx,ecx
// ---------- INJECTING HERE ----------
GameAssembly.dll+23C7215: E8 D6 08 67 FE - call Fun.randomByte
// ---------- DONE INJECTING ----------
GameAssembly.dll+23C721A: 48 85 FF - test rdi,rdi
GameAssembly.dll+23C721D: 74 2E - je GameAssembly.dll+23C724D
GameAssembly.dll+23C721F: 3B 5F 18 - cmp ebx,[rdi+18]
GameAssembly.dll+23C7222: 73 2F - jae GameAssembly.dll+23C7253
GameAssembly.dll+23C7224: 48 63 CB - movsxd rcx,ebx
GameAssembly.dll+23C7227: FF C3 - inc ebx
GameAssembly.dll+23C7229: 8B D3 - mov edx,ebx
GameAssembly.dll+23C722B: 88 44 39 20 - mov [rcx+rdi+20],al
GameAssembly.dll+23C722F: 48 8B 46 28 - mov rax,[rsi+28]
GameAssembly.dll+23C7233: 48 8B F8 - mov rdi,rax
}
{
ItemData.randomiseUniqueRolls
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+23C72D5
GameAssembly.dll+23C72AD: 0F 1F 00 - nop dword ptr [rax]
GameAssembly.dll+23C72B0: 3B 50 18 - cmp edx,[rax+18]
GameAssembly.dll+23C72B3: 7D 48 - jnl GameAssembly.dll+23C72FD
GameAssembly.dll+23C72B5: 48 8B 0D 24 2B AA 03 - mov rcx,[GameAssembly.dll+5E69DE0]
GameAssembly.dll+23C72BC: F6 81 2F 01 00 00 02 - test byte ptr [rcx+0000012F],02
GameAssembly.dll+23C72C3: 74 0E - je GameAssembly.dll+23C72D3
GameAssembly.dll+23C72C5: 83 B9 E0 00 00 00 00 - cmp dword ptr [rcx+000000E0],00
GameAssembly.dll+23C72CC: 75 05 - jne GameAssembly.dll+23C72D3
GameAssembly.dll+23C72CE: E8 DD 08 0C FE - call GameAssembly.il2cpp_runtime_class_init
GameAssembly.dll+23C72D3: 33 C9 - xor ecx,ecx
// ---------- INJECTING HERE ----------
GameAssembly.dll+23C72D5: E8 16 08 67 FE - call Fun.randomByte
// ---------- DONE INJECTING ----------
GameAssembly.dll+23C72DA: 48 85 FF - test rdi,rdi
GameAssembly.dll+23C72DD: 74 2E - je GameAssembly.dll+23C730D
GameAssembly.dll+23C72DF: 3B 5F 18 - cmp ebx,[rdi+18]
GameAssembly.dll+23C72E2: 73 2F - jae GameAssembly.dll+23C7313
GameAssembly.dll+23C72E4: 48 63 CB - movsxd rcx,ebx
GameAssembly.dll+23C72E7: FF C3 - inc ebx
GameAssembly.dll+23C72E9: 8B D3 - mov edx,ebx
GameAssembly.dll+23C72EB: E9 10 8D BF FD - jmp 7FFB800B0000
GameAssembly.dll+23C72F0: 0F 1F 00 - nop dword ptr [rax]
GameAssembly.dll+23C72F3: 48 8B F8 - mov rdi,rax
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1