Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>26302</ID>
<Description>"Freeze Ammo"</Description>
<LastState Activated="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : GhostOfTsushima.exe
Author : Anon-9
This script attempts to freeze ammo
}
[ENABLE]
aobscanmodule(funFullAmmo,GhostOfTsushima.exe,89 74 38 08 80 BB 18 13 09 00 00) // should be unique
alloc(newmem,$1000,funFullAmmo)
label(code)
label(return ptrAmmo)
newmem:
code:
mov [ptrAmmo],rax
add [ptrAmmo],rdi
cmp [rax+rdi+08],esi
jge @f
mov [rax+rdi+08],esi
@@:
cmp byte ptr [rbx+00091318],00
jmp return
ptrAmmo:
dq 0
dq 0
funFullAmmo:
jmp newmem
nop 6
return:
registersymbol(funFullAmmo ptrAmmo)
[DISABLE]
funFullAmmo:
db 89 74 38 08 80 BB 18 13 09 00 00
unregistersymbol(funFullAmmo ptrAmmo ptrAmmoRax ptrAmmoRdi)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: GhostOfTsushima.exe+520C41
GhostOfTsushima.exe+520C39: 49 0F 45 FF - cmovne rdi,r15
GhostOfTsushima.exe+520C3D: 48 8D 04 AB - lea rax,[rbx+rbp*4]
// ---------- INJECTING HERE ----------
GhostOfTsushima.exe+520C41: 89 74 38 08 - mov [rax+rdi+08],esi
// ---------- DONE INJECTING ----------
GhostOfTsushima.exe+520C45: 80 BB 18 13 09 00 00 - cmp byte ptr [rbx+00091318],00
GhostOfTsushima.exe+520C4C: 74 13 - je GhostOfTsushima.exe+520C61
GhostOfTsushima.exe+520C4E: FF 83 20 13 09 00 - inc [rbx+00091320]
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>26303</ID>
<Description>"Ammo"</Description>
<LastState Value="8" RealAddress="7FF6AAFA79A8"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>ptrAmmo</Address>
<Offsets>
<Offset>8</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Not fully tested, but it should prevent items/ammo from decreasing. Also includes a way to change the last used/picked up item/ammo.
Below should be an alt version that only shows the last item added/removed.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>26302</ID>
<Description>"Freeze Ammo"</Description>
<LastState Activated="1"/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : GhostOfTsushima.exe
Author : Anon-9
This script attempts to find items on change
}
[ENABLE]
aobscanmodule(funFullAmmo,GhostOfTsushima.exe,89 74 38 08 80 BB 18 13 09 00 00) // should be unique
alloc(newmem,$1000,funFullAmmo)
label(code)
label(return ptrAmmo)
newmem:
code:
mov [ptrAmmo],rax
add [ptrAmmo],rdi
mov [rax+rdi+08],esi
cmp byte ptr [rbx+00091318],00
jmp return
ptrAmmo:
dq 0
dq 0
funFullAmmo:
jmp newmem
nop 6
return:
registersymbol(funFullAmmo ptrAmmo)
[DISABLE]
funFullAmmo:
db 89 74 38 08 80 BB 18 13 09 00 00
unregistersymbol(funFullAmmo ptrAmmo ptrAmmoRax ptrAmmoRdi)
dealloc(newmem)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>26303</ID>
<Description>"Ammo"</Description>
<LastState Value="8" RealAddress="7FF6AAFA79A8"/>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>ptrAmmo</Address>
<Offsets>
<Offset>8</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
This is just to help with finding the skill points. Read the script instructions. *Disclaimer, script instructions may require you to have spent points to be accurate, otherwise it may be the second highest.*
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>26307</ID>
<Description>"funSkillPointSearchAddress"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : GhostOfTsushima.exe
Author : Anon-9
This script registers the skill point search location.
Activate this to find the search location. Go to Memory View and in the
Disassembler, search up "funSkillPointSearchAddress".
Right click and click "Find out what address this function accesses"
Open the menu, click map, click techniques.
The largest value should be the skill points used so far.
If not, then the second largest (ie. if your skill points spent is 0)
Set that to 0 and it should recover your skill points.
}
[ENABLE]
aobscanmodule(funSkillPointSearchAddress,GhostOfTsushima.exe,8B 7C B0 58 48 8B 6C 24 38) // should be unique
funSkillPointSearchAddress:
registersymbol(funSkillPointSearchAddress)
[DISABLE]
funSkillPointSearchAddress:
db 8B 7C B0 58 48 8B 6C 24 38
unregistersymbol(funSkillPointSearchAddress)
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>
Test script for max resolve
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>26310</ID>
<Description>"Max Resolve Test"</Description>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>{ Game : GhostOfTsushima.exe
Author : Anon-9
This script attempts to give max Resolve
}
[ENABLE]
aobscanmodule(funMaxResolve,GhostOfTsushima.exe,F3 0F 11 89 A4 43 00 00) // should be unique
funMaxResolve:
movss [rcx+000043A4],xmm0
registersymbol(funMaxResolve)
[DISABLE]
funMaxResolve:
db F3 0F 11 89 A4 43 00 00
unregistersymbol(funMaxResolve)
{
// ORIGINAL CODE - INJECTION POINT: GhostOfTsushima.exe+927AAD
GhostOfTsushima.exe+927A9F: 4D 8B F0 - mov r14,r8
GhostOfTsushima.exe+927AA2: F3 0F 10 B1 A4 43 00 00 - movss xmm6,[rcx+000043A4]
GhostOfTsushima.exe+927AAA: 48 8B D9 - mov rbx,rcx
// ---------- INJECTING HERE ----------
GhostOfTsushima.exe+927AAD: F3 0F 11 89 A4 43 00 00 - movss [rcx+000043A4],xmm1
// ---------- DONE INJECTING ----------
GhostOfTsushima.exe+927AB5: 48 39 0D B4 8D B9 02 - cmp [PlayerBase],rcx
GhostOfTsushima.exe+927ABC: 41 0F B6 F1 - movzx esi,r9b
GhostOfTsushima.exe+927AC0: 75 5A - jne GhostOfTsushima.exe+927B1C
}
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatTable>