Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>2</ID>
<Description>"Infinite RP"</Description>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Rune Factory 5.exe
Version:
Date : 2022-07-16
Author : Algester
This script does blah blah blah
}
[ENABLE]
aobscanmodule(InfiniteRP,GameAssembly.dll,89 48 1C 48 8B 03) // should be unique
alloc(newmem,$1000,InfiniteRP)
label(code)
label(return)
newmem:
code:
//mov [rax+1C],ecx
mov ecx,[rax+1C]
mov rax,[rbx]
jmp return
InfiniteRP:
jmp newmem
nop
return:
registersymbol(InfiniteRP)
[DISABLE]
InfiniteRP:
db 89 48 1C 48 8B 03
unregistersymbol(InfiniteRP)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+119BB2D
GameAssembly.dll+119BB02: 0F 10 44 24 50 - movups xmm0,[rsp+50]
GameAssembly.dll+119BB07: 0F 29 4D 60 - movaps [rbp+60],xmm1
GameAssembly.dll+119BB0B: 0F 29 45 70 - movaps [rbp+70],xmm0
GameAssembly.dll+119BB0F: 0F 28 85 00 01 00 00 - movaps xmm0,[rbp+00000100]
GameAssembly.dll+119BB16: 0F 29 85 80 00 00 00 - movaps [rbp+00000080],xmm0
GameAssembly.dll+119BB1D: 41 FF 92 A0 01 00 00 - call qword ptr [r10+000001A0]
GameAssembly.dll+119BB24: EB 0A - jmp GameAssembly.dll+119BB30
GameAssembly.dll+119BB26: 48 85 C0 - test rax,rax
GameAssembly.dll+119BB29: 74 52 - je GameAssembly.dll+119BB7D
GameAssembly.dll+119BB2B: 2B CF - sub ecx,edi
// ---------- INJECTING HERE ----------
GameAssembly.dll+119BB2D: 89 48 1C - mov [rax+1C],ecx
// ---------- DONE INJECTING ----------
GameAssembly.dll+119BB30: 48 8B 03 - mov rax,[rbx]
GameAssembly.dll+119BB33: 48 8B CB - mov rcx,rbx
GameAssembly.dll+119BB36: 48 8B 90 B8 01 00 00 - mov rdx,[rax+000001B8]
GameAssembly.dll+119BB3D: FF 90 B0 01 00 00 - call qword ptr [rax+000001B0]
GameAssembly.dll+119BB43: 48 8B 8B F0 00 00 00 - mov rcx,[rbx+000000F0]
GameAssembly.dll+119BB4A: 48 85 C9 - test rcx,rcx
GameAssembly.dll+119BB4D: 74 2E - je GameAssembly.dll+119BB7D
GameAssembly.dll+119BB4F: 44 8B 41 1C - mov r8d,[rcx+1C]
GameAssembly.dll+119BB53: 45 33 C9 - xor r9d,r9d
GameAssembly.dll+119BB56: 48 8B CB - mov rcx,rbx
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
I tried to fool around with HP values well... everytime I used a cmp command as its 1 script handling all HP values the game just crashes... so... I still need to check more offsets
if anyone wants to have a knack at it GameAssembly.dll+119F1F0 mov [rax+18],edx handles the HP code
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>169</ID>
<Description>"Infinite Watering Can"</Description>
<LastState Activated="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : Rune Factory 5.exe
Version:
Date : 2022-07-16
Author : Algester
This script does blah blah blah
}
[ENABLE]
aobscanmodule(InfWaterPot,GameAssembly.dll,FF 48 58 48 8B 47 20) // should be unique
alloc(newmem,$1000,InfWaterPot)
label(code)
label(return)
newmem:
code:
//dec [rax+58]
mov rax,[rdi+20]
jmp return
InfWaterPot:
jmp newmem
nop 2
return:
registersymbol(InfWaterPot)
[DISABLE]
InfWaterPot:
db FF 48 58 48 8B 47 20
unregistersymbol(InfWaterPot)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: GameAssembly.dll+1200BE8
GameAssembly.dll+1200BCA: 48 39 54 C8 F8 - cmp [rax+rcx*8-08],rdx
GameAssembly.dll+1200BCF: 75 04 - jne GameAssembly.dll+1200BD5
GameAssembly.dll+1200BD1: B1 01 - mov cl,01
GameAssembly.dll+1200BD3: EB 02 - jmp GameAssembly.dll+1200BD7
GameAssembly.dll+1200BD5: 32 C9 - xor cl,cl
GameAssembly.dll+1200BD7: 33 C0 - xor eax,eax
GameAssembly.dll+1200BD9: 84 C9 - test cl,cl
GameAssembly.dll+1200BDB: 48 0F 45 C3 - cmovne rax,rbx
GameAssembly.dll+1200BDF: 48 85 C0 - test rax,rax
GameAssembly.dll+1200BE2: 0F 84 78 01 00 00 - je GameAssembly.dll+1200D60
// ---------- INJECTING HERE ----------
GameAssembly.dll+1200BE8: FF 48 58 - dec [rax+58]
// ---------- DONE INJECTING ----------
GameAssembly.dll+1200BEB: 48 8B 47 20 - mov rax,[rdi+20]
GameAssembly.dll+1200BEF: 48 85 C0 - test rax,rax
GameAssembly.dll+1200BF2: 0F 84 62 01 00 00 - je GameAssembly.dll+1200D5A
GameAssembly.dll+1200BF8: 80 78 18 00 - cmp byte ptr [rax+18],00
GameAssembly.dll+1200BFC: 0F 84 45 01 00 00 - je GameAssembly.dll+1200D47
GameAssembly.dll+1200C02: 48 85 C0 - test rax,rax
GameAssembly.dll+1200C05: 0F 84 4F 01 00 00 - je GameAssembly.dll+1200D5A
GameAssembly.dll+1200C0B: C6 40 19 01 - mov byte ptr [rax+19],01
GameAssembly.dll+1200C0F: 48 8B 0D 42 E4 E1 01 - mov rcx,[GameAssembly.dll+301F058]
GameAssembly.dll+1200C16: E8 C5 8F 95 00 - call GameAssembly.dll+1B59BE0
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Infinite watering can