jonaaa wrote: ↑Tue Apr 11, 2023 4:05 am
Go to Data.
Ah thanks, i hadn't seen that
I created a small script that multiply credits gain by 10 (from missions, loot and selling), I'm still in the process of trying it so it may have issues, and it also apply when you sell stuff so be wary of that.
Script -
multiply credits gain by 10 :
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>217685</ID>
<Description>"Credit Gain Multiplier x10"</Description>
<Options moAlwaysHideChildren="1"/>
<LastState/>
<Color>00FFFF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : ES2-Win64-Shipping.exe
Version:
Date : 2023-04-11
Author : acecel
This script does blah blah blah
}
[ENABLE]
aobscanmodule(aob_credits,ES2-Win64-Shipping.exe,48 63 FA 44 8B 89 18 01 00 00) // should be unique
alloc(newmem,$1000,aob_credits)
alloc(multiplier,$8)
registersymbol(multiplier)
label(code)
label(return)
multiplier:
dd 10
newmem:
movsxd rdi,edx
cmp rdi,0
jle code
imul rdi,A
code:
mov r9d,[rcx+00000118]
jmp return
aob_credits:
jmp newmem
nop 5
return:
registersymbol(aob_credits)
[DISABLE]
aob_credits:
db 48 63 FA 44 8B 89 18 01 00 00
unregistersymbol(multiplier)
unregistersymbol(aob_credits)
dealloc(multiplier)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: ES2-Win64-Shipping.UPlayerData::ChangeCredits+27
ES2-Win64-Shipping.UPlayerData::ChangeCredits+2: 0F 84 AF 01 00 00 - je ES2-Win64-Shipping.UPlayerData::ChangeCredits+1B7
ES2-Win64-Shipping.UPlayerData::ChangeCredits+8: 48 89 5C 24 18 - mov [rsp+18],rbx
ES2-Win64-Shipping.UPlayerData::ChangeCredits+D: 55 - push rbp
ES2-Win64-Shipping.UPlayerData::ChangeCredits+E: 56 - push rsi
ES2-Win64-Shipping.UPlayerData::ChangeCredits+F: 57 - push rdi
ES2-Win64-Shipping.UPlayerData::ChangeCredits+10: 48 83 EC 60 - sub rsp,60
ES2-Win64-Shipping.UPlayerData::ChangeCredits+14: 48 8B 05 AD 42 92 04 - mov rax,[ES2-Win64-Shipping.__security_cookie]
ES2-Win64-Shipping.UPlayerData::ChangeCredits+1B: 48 33 C4 - xor rax,rsp
ES2-Win64-Shipping.UPlayerData::ChangeCredits+1E: 48 89 44 24 50 - mov [rsp+50],rax
ES2-Win64-Shipping.UPlayerData::ChangeCredits+23: 41 0F B6 F1 - movzx esi,r9b
// ---------- INJECTING HERE ----------
ES2-Win64-Shipping.UPlayerData::ChangeCredits+27: 48 63 FA - movsxd rdi,edx
// ---------- DONE INJECTING ----------
ES2-Win64-Shipping.UPlayerData::ChangeCredits+2A: 44 8B 89 18 01 00 00 - mov r9d,[rcx+00000118]
ES2-Win64-Shipping.UPlayerData::ChangeCredits+31: 41 8B E8 - mov ebp,r8d
ES2-Win64-Shipping.UPlayerData::ChangeCredits+34: 44 03 CF - add r9d,edi
ES2-Win64-Shipping.UPlayerData::ChangeCredits+37: 45 33 C0 - xor r8d,r8d
ES2-Win64-Shipping.UPlayerData::ChangeCredits+3A: 45 85 C9 - test r9d,r9d
ES2-Win64-Shipping.UPlayerData::ChangeCredits+3D: 48 8B D9 - mov rbx,rcx
ES2-Win64-Shipping.UPlayerData::ChangeCredits+40: 45 0F 4E C8 - cmovle r9d,r8d
ES2-Win64-Shipping.UPlayerData::ChangeCredits+44: 44 89 89 18 01 00 00 - mov [rcx+00000118],r9d
ES2-Win64-Shipping.UPlayerData::ChangeCredits+4B: 85 D2 - test edx,edx
ES2-Win64-Shipping.UPlayerData::ChangeCredits+4D: 7E 07 - jle ES2-Win64-Shipping.UPlayerData::ChangeCredits+56
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>217688</ID>
<Description>"Multiplier"</Description>
<LastState Value="10" RealAddress="7FF753B01000"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>multiplier</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Edit : Question to table makers, i wanted to set the multiplier as a modifiable value so that users can decide what they want but for some reason it doesn't work when i replace the fixed value with the variable, even if i move it to a register and use it instead. Can someone send me the code fixed using the variable "multiplier"' inside ? I'm still a big newbie regarding assembler