FieldsOfMistria.exe+95EA5B - 49 8B 07 - mov rax,[r15]
seems to be the code that checks the last inventory slot that was moved? however I havent figured out how the rucksack data is structured so I only got "amount"
all I know the Item amount is stored as double so if you have excess legendary fish that can not be disposed off you need to acquire more than 1 legendary fish and then find a double value but as I said mov rax,[r15] is generating the "slot" where the most recent inventory slot is touched I can probably generate a pointer for this but I have no idea how "unbuggy" it would be
this is still a PoC type of code so I can't guarantee how useful this is what this code does is to generate the current amount of items your mouse pointer has you can not however write a value without the game throwing a hissy fit
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>114385</ID>
<Description>"Auto Assemble script"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : FieldsOfMistria.exe
Version:
Date : 2024-12-08
Author : Algester
This script does blah blah blah
}
[ENABLE]
aobscanmodule(InvSlotCheck,FieldsOfMistria.exe,49 8B 07 48 89 45 9F C7) // should be unique
alloc(newmem,$1000,InvSlotCheck)
label(code)
label(return)
label(Inv)
newmem:
Invcode:
cmp [r15+11C],0
jne code
mov [Inv],r15
code:
mov rax,[r15]
mov [rbp-61],rax
jmp return
Inv:
dq 0
InvSlotCheck:
jmp newmem
nop 2
return:
registersymbol(InvSlotCheck Inv)
[DISABLE]
InvSlotCheck:
db 49 8B 07 48 89 45 9F
unregistersymbol(InvSlotCheck Inv)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: FieldsOfMistria.exe+95EA5B
FieldsOfMistria.exe+95EA3C: 89 45 A7 - mov [rbp-59],eax
FieldsOfMistria.exe+95EA3F: 83 E1 1F - and ecx,1F
FieldsOfMistria.exe+95EA42: B8 01 00 00 00 - mov eax,00000001
FieldsOfMistria.exe+95EA47: D3 E0 - shl eax,cl
FieldsOfMistria.exe+95EA49: A8 46 - test al,46
FieldsOfMistria.exe+95EA4B: 74 0E - je FieldsOfMistria.exe+95EA5B
FieldsOfMistria.exe+95EA4D: 49 8B D7 - mov rdx,r15
FieldsOfMistria.exe+95EA50: 48 8D 4D 9F - lea rcx,[rbp-61]
FieldsOfMistria.exe+95EA54: E8 B7 1A 73 FF - call FieldsOfMistria.exe+90510
FieldsOfMistria.exe+95EA59: EB 07 - jmp FieldsOfMistria.exe+95EA62
// ---------- INJECTING HERE ----------
FieldsOfMistria.exe+95EA5B: 49 8B 07 - mov rax,[r15]
// ---------- DONE INJECTING ----------
FieldsOfMistria.exe+95EA5E: 48 89 45 9F - mov [rbp-61],rax
FieldsOfMistria.exe+95EA62: C7 45 5F 01 00 00 00 - mov [rbp+5F],00000001
FieldsOfMistria.exe+95EA69: 89 7D 8B - mov [rbp-75],edi
FieldsOfMistria.exe+95EA6C: F2 0F 10 05 94 9E 3F 01 - movsd xmm0,[FieldsOfMistria.exe+1D58908]
FieldsOfMistria.exe+95EA74: F2 0F 11 44 24 30 - movsd [rsp+30],xmm0
FieldsOfMistria.exe+95EA7A: 48 8D 54 24 30 - lea rdx,[rsp+30]
FieldsOfMistria.exe+95EA7F: 48 8D 4D 9F - lea rcx,[rbp-61]
FieldsOfMistria.exe+95EA83: E8 18 E7 73 FF - call FieldsOfMistria.exe+9D1A0
FieldsOfMistria.exe+95EA88: 90 - nop
FieldsOfMistria.exe+95EA89: 8B 4D 8B - mov ecx,[rbp-75]
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>114386</ID>
<Description>"No description"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>Double</VariableType>
<Address>Inv</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
[code]