GRID (2019)
Posted: Tue Oct 08, 2019 6:12 pm
For good start...
Community Cheat Tables of Cheat Engine
https://fearlessrevolution.com/
Code: Select all
{ Game : Grid.exe
Version:
Date : 2019-10-08
Author :rambo99jose
Add xp after completing a race
}
[ENABLE]
aobscanmodule(add_xp,Grid.exe,01 41 1C 33 C0) // should be unique
alloc(newmem,$1000,"Grid.exe"+18B45F)
label(code)
label(return)
newmem:
add eax,(int)90000
code:
add [rcx+1C],eax
xor eax,eax
jmp return
add_xp:
jmp newmem
return:
registersymbol(add_xp)
[DISABLE]
add_xp:
db 01 41 1C 33 C0
unregistersymbol(add_xp)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Grid.exe"+18B45F
"Grid.exe"+18B44B: CC - int 3
"Grid.exe"+18B44C: CC - int 3
"Grid.exe"+18B44D: CC - int 3
"Grid.exe"+18B44E: CC - int 3
"Grid.exe"+18B44F: CC - int 3
"Grid.exe"+18B450: 8B 41 14 - mov eax,[rcx+14]
"Grid.exe"+18B453: 03 41 10 - add eax,[rcx+10]
"Grid.exe"+18B456: 03 41 0C - add eax,[rcx+0C]
"Grid.exe"+18B459: 03 41 08 - add eax,[rcx+08]
"Grid.exe"+18B45C: 03 41 18 - add eax,[rcx+18]
// ---------- INJECTING HERE ----------
"Grid.exe"+18B45F: 01 41 1C - add [rcx+1C],eax
"Grid.exe"+18B462: 33 C0 - xor eax,eax
// ---------- DONE INJECTING ----------
"Grid.exe"+18B464: 48 89 41 08 - mov [rcx+08],rax
"Grid.exe"+18B468: 48 89 41 10 - mov [rcx+10],rax
"Grid.exe"+18B46C: 89 41 18 - mov [rcx+18],eax
"Grid.exe"+18B46F: C3 - ret
"Grid.exe"+18B470: 8B 41 1C - mov eax,[rcx+1C]
"Grid.exe"+18B473: 03 41 14 - add eax,[rcx+14]
"Grid.exe"+18B476: 03 41 10 - add eax,[rcx+10]
"Grid.exe"+18B479: 03 41 08 - add eax,[rcx+08]
"Grid.exe"+18B47C: C3 - ret
"Grid.exe"+18B47D: CC - int 3
}
Code: Select all
{ Game : Grid.exe
Version:
Date : 2019-10-08
Author :rambo99jose
Subtract xp after a race
}
[ENABLE]
aobscanmodule(add_xp,Grid.exe,01 41 1C 33 C0) // should be unique
alloc(newmem,$1000,"Grid.exe"+18B45F)
label(code)
label(return)
newmem:
sub eax,(int)90000
code:
add [rcx+1C],eax
xor eax,eax
jmp return
add_xp:
jmp newmem
return:
registersymbol(add_xp)
[DISABLE]
add_xp:
db 01 41 1C 33 C0
unregistersymbol(add_xp)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Grid.exe"+18B45F
"Grid.exe"+18B44B: CC - int 3
"Grid.exe"+18B44C: CC - int 3
"Grid.exe"+18B44D: CC - int 3
"Grid.exe"+18B44E: CC - int 3
"Grid.exe"+18B44F: CC - int 3
"Grid.exe"+18B450: 8B 41 14 - mov eax,[rcx+14]
"Grid.exe"+18B453: 03 41 10 - add eax,[rcx+10]
"Grid.exe"+18B456: 03 41 0C - add eax,[rcx+0C]
"Grid.exe"+18B459: 03 41 08 - add eax,[rcx+08]
"Grid.exe"+18B45C: 03 41 18 - add eax,[rcx+18]
// ---------- INJECTING HERE ----------
"Grid.exe"+18B45F: 01 41 1C - add [rcx+1C],eax
"Grid.exe"+18B462: 33 C0 - xor eax,eax
// ---------- DONE INJECTING ----------
"Grid.exe"+18B464: 48 89 41 08 - mov [rcx+08],rax
"Grid.exe"+18B468: 48 89 41 10 - mov [rcx+10],rax
"Grid.exe"+18B46C: 89 41 18 - mov [rcx+18],eax
"Grid.exe"+18B46F: C3 - ret
"Grid.exe"+18B470: 8B 41 1C - mov eax,[rcx+1C]
"Grid.exe"+18B473: 03 41 14 - add eax,[rcx+14]
"Grid.exe"+18B476: 03 41 10 - add eax,[rcx+10]
"Grid.exe"+18B479: 03 41 08 - add eax,[rcx+08]
"Grid.exe"+18B47C: C3 - ret
"Grid.exe"+18B47D: CC - int 3
}
Code: Select all
{ Game : Grid.exe
Version:
Date : 2019-10-08
Author : rambo99jose
Infinite Money
}
[ENABLE]
aobscanmodule(Money,Grid.exe,48 63 86 A8 00 00 00) // should be unique
alloc(newmem,$1000,"Grid.exe"+363E76)
label(code)
label(return)
newmem:
mov dword ptr [rsi+0000000A8], (int)999999999
code:
movsxd rax,dword ptr [rsi+000000A8]
jmp return
Money:
jmp newmem
nop 2
return:
registersymbol(Money)
[DISABLE]
Money:
db 48 63 86 A8 00 00 00
unregistersymbol(Money)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Grid.exe"+363E76
"Grid.exe"+363E4A: 0F B7 41 32 - movzx eax,word ptr [rcx+32]
"Grid.exe"+363E4E: 4D 8D 43 08 - lea r8,[r11+08]
"Grid.exe"+363E52: 49 89 5B 10 - mov [r11+10],rbx
"Grid.exe"+363E56: 49 8D 53 88 - lea rdx,[r11-78]
"Grid.exe"+363E5A: 66 41 89 43 08 - mov [r11+08],ax
"Grid.exe"+363E5F: 49 89 73 C8 - mov [r11-38],rsi
"Grid.exe"+363E63: E8 98 DE 0C 00 - call Grid.exe+431D00
"Grid.exe"+363E68: 48 8B 74 24 28 - mov rsi,[rsp+28]
"Grid.exe"+363E6D: 48 85 F6 - test rsi,rsi
"Grid.exe"+363E70: 0F 84 CB 00 00 00 - je Grid.exe+363F41
// ---------- INJECTING HERE ----------
"Grid.exe"+363E76: 48 63 86 A8 00 00 00 - movsxd rax,dword ptr [rsi+000000A8]
// ---------- DONE INJECTING ----------
"Grid.exe"+363E7D: 49 8D 8F 08 02 00 00 - lea rcx,[r15+00000208]
"Grid.exe"+363E84: 4D 8B C5 - mov r8,r13
"Grid.exe"+363E87: 48 89 84 24 B0 00 00 00 - mov [rsp+000000B0],rax
"Grid.exe"+363E8F: 48 8D 94 24 A0 00 00 00 - lea rdx,[rsp+000000A0]
"Grid.exe"+363E97: E8 D4 A6 E4 FF - call Grid.exe+1AE570
"Grid.exe"+363E9C: 48 8B 9C 24 A0 00 00 00 - mov rbx,[rsp+000000A0]
"Grid.exe"+363EA4: 49 3B 9F 30 02 00 00 - cmp rbx,[r15+00000230]
"Grid.exe"+363EAB: 74 25 - je Grid.exe+363ED2
"Grid.exe"+363EAD: 48 8B 4B 20 - mov rcx,[rbx+20]
"Grid.exe"+363EB1: 48 8B 01 - mov rax,[rcx]
}
Add Exp works but the Team mates are still locked for lower. After adding Exp to my game I am 55 but new teammates are still locked.rambo99jose wrote: ↑Wed Oct 09, 2019 1:02 amI'm working on DX11 version (because Reshade doesnt work on dx12).
Figured out how to modify level and it can't be done directly. Modify the two scripts below for DX12 if you wish.; one adds exp, the other subtracts exp. It will update after you finish a race and get to the xp add screen.
I will probably release my DX11 table tomorrow after it's simpler to use.
Add XP
Code: Select all
{ Game : Grid.exe Version: Date : 2019-10-08 Author :rambo99jose Add xp after completing a race } [ENABLE] aobscanmodule(add_xp,Grid.exe,01 41 1C 33 C0) // should be unique alloc(newmem,$1000,"Grid.exe"+18B45F) label(code) label(return) newmem: add eax,(int)90000 code: add [rcx+1C],eax xor eax,eax jmp return add_xp: jmp newmem return: registersymbol(add_xp) [DISABLE] add_xp: db 01 41 1C 33 C0 unregistersymbol(add_xp) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Grid.exe"+18B45F "Grid.exe"+18B44B: CC - int 3 "Grid.exe"+18B44C: CC - int 3 "Grid.exe"+18B44D: CC - int 3 "Grid.exe"+18B44E: CC - int 3 "Grid.exe"+18B44F: CC - int 3 "Grid.exe"+18B450: 8B 41 14 - mov eax,[rcx+14] "Grid.exe"+18B453: 03 41 10 - add eax,[rcx+10] "Grid.exe"+18B456: 03 41 0C - add eax,[rcx+0C] "Grid.exe"+18B459: 03 41 08 - add eax,[rcx+08] "Grid.exe"+18B45C: 03 41 18 - add eax,[rcx+18] // ---------- INJECTING HERE ---------- "Grid.exe"+18B45F: 01 41 1C - add [rcx+1C],eax "Grid.exe"+18B462: 33 C0 - xor eax,eax // ---------- DONE INJECTING ---------- "Grid.exe"+18B464: 48 89 41 08 - mov [rcx+08],rax "Grid.exe"+18B468: 48 89 41 10 - mov [rcx+10],rax "Grid.exe"+18B46C: 89 41 18 - mov [rcx+18],eax "Grid.exe"+18B46F: C3 - ret "Grid.exe"+18B470: 8B 41 1C - mov eax,[rcx+1C] "Grid.exe"+18B473: 03 41 14 - add eax,[rcx+14] "Grid.exe"+18B476: 03 41 10 - add eax,[rcx+10] "Grid.exe"+18B479: 03 41 08 - add eax,[rcx+08] "Grid.exe"+18B47C: C3 - ret "Grid.exe"+18B47D: CC - int 3 }
Subtract xp
Code: Select all
{ Game : Grid.exe Version: Date : 2019-10-08 Author :rambo99jose Subtract xp after a race } [ENABLE] aobscanmodule(add_xp,Grid.exe,01 41 1C 33 C0) // should be unique alloc(newmem,$1000,"Grid.exe"+18B45F) label(code) label(return) newmem: sub eax,(int)90000 code: add [rcx+1C],eax xor eax,eax jmp return add_xp: jmp newmem return: registersymbol(add_xp) [DISABLE] add_xp: db 01 41 1C 33 C0 unregistersymbol(add_xp) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Grid.exe"+18B45F "Grid.exe"+18B44B: CC - int 3 "Grid.exe"+18B44C: CC - int 3 "Grid.exe"+18B44D: CC - int 3 "Grid.exe"+18B44E: CC - int 3 "Grid.exe"+18B44F: CC - int 3 "Grid.exe"+18B450: 8B 41 14 - mov eax,[rcx+14] "Grid.exe"+18B453: 03 41 10 - add eax,[rcx+10] "Grid.exe"+18B456: 03 41 0C - add eax,[rcx+0C] "Grid.exe"+18B459: 03 41 08 - add eax,[rcx+08] "Grid.exe"+18B45C: 03 41 18 - add eax,[rcx+18] // ---------- INJECTING HERE ---------- "Grid.exe"+18B45F: 01 41 1C - add [rcx+1C],eax "Grid.exe"+18B462: 33 C0 - xor eax,eax // ---------- DONE INJECTING ---------- "Grid.exe"+18B464: 48 89 41 08 - mov [rcx+08],rax "Grid.exe"+18B468: 48 89 41 10 - mov [rcx+10],rax "Grid.exe"+18B46C: 89 41 18 - mov [rcx+18],eax "Grid.exe"+18B46F: C3 - ret "Grid.exe"+18B470: 8B 41 1C - mov eax,[rcx+1C] "Grid.exe"+18B473: 03 41 14 - add eax,[rcx+14] "Grid.exe"+18B476: 03 41 10 - add eax,[rcx+10] "Grid.exe"+18B479: 03 41 08 - add eax,[rcx+08] "Grid.exe"+18B47C: C3 - ret "Grid.exe"+18B47D: CC - int 3 }
Infinite money for DX11 version
Spoiler
Code: Select all
{ Game : Grid.exe Version: Date : 2019-10-08 Author : rambo99jose Infinite Money } [ENABLE] aobscanmodule(Money,Grid.exe,48 63 86 A8 00 00 00) // should be unique alloc(newmem,$1000,"Grid.exe"+363E76) label(code) label(return) newmem: mov dword ptr [rsi+0000000A8], (int)999999999 code: movsxd rax,dword ptr [rsi+000000A8] jmp return Money: jmp newmem nop 2 return: registersymbol(Money) [DISABLE] Money: db 48 63 86 A8 00 00 00 unregistersymbol(Money) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "Grid.exe"+363E76 "Grid.exe"+363E4A: 0F B7 41 32 - movzx eax,word ptr [rcx+32] "Grid.exe"+363E4E: 4D 8D 43 08 - lea r8,[r11+08] "Grid.exe"+363E52: 49 89 5B 10 - mov [r11+10],rbx "Grid.exe"+363E56: 49 8D 53 88 - lea rdx,[r11-78] "Grid.exe"+363E5A: 66 41 89 43 08 - mov [r11+08],ax "Grid.exe"+363E5F: 49 89 73 C8 - mov [r11-38],rsi "Grid.exe"+363E63: E8 98 DE 0C 00 - call Grid.exe+431D00 "Grid.exe"+363E68: 48 8B 74 24 28 - mov rsi,[rsp+28] "Grid.exe"+363E6D: 48 85 F6 - test rsi,rsi "Grid.exe"+363E70: 0F 84 CB 00 00 00 - je Grid.exe+363F41 // ---------- INJECTING HERE ---------- "Grid.exe"+363E76: 48 63 86 A8 00 00 00 - movsxd rax,dword ptr [rsi+000000A8] // ---------- DONE INJECTING ---------- "Grid.exe"+363E7D: 49 8D 8F 08 02 00 00 - lea rcx,[r15+00000208] "Grid.exe"+363E84: 4D 8B C5 - mov r8,r13 "Grid.exe"+363E87: 48 89 84 24 B0 00 00 00 - mov [rsp+000000B0],rax "Grid.exe"+363E8F: 48 8D 94 24 A0 00 00 00 - lea rdx,[rsp+000000A0] "Grid.exe"+363E97: E8 D4 A6 E4 FF - call Grid.exe+1AE570 "Grid.exe"+363E9C: 48 8B 9C 24 A0 00 00 00 - mov rbx,[rsp+000000A0] "Grid.exe"+363EA4: 49 3B 9F 30 02 00 00 - cmp rbx,[r15+00000230] "Grid.exe"+363EAB: 74 25 - je Grid.exe+363ED2 "Grid.exe"+363EAD: 48 8B 4B 20 - mov rcx,[rbx+20] "Grid.exe"+363EB1: 48 8B 01 - mov rax,[rcx] }