Red Dead Redemption 2 or RDR2 is one of the most anticipated games, probably ever. It's an open world cowboy game with some amazing story telling, akin to the Assassin's Creed & Far Cry series. I've been playing this game for about a month, and I am seriously impressed with Rockstar Studios. I had no idea this game was that good. Assasin's Creed & Far Cry are some of my favorite series, I easily sink 100 hours into each game. These games have amazing combat, story telling, dialogue and crafting and they really define the genre. But somehow Red Dead Redemption 2 is even better!
This RDR2 Cheat Table is actually pretty insane, it's got 10 important features. You can teleport your player using the script, it allows you to save and load positions so you can easily teleport in and out of towns and your camp. You can also use it to easily look up your XYZ coordinates. With this cheat table you can give yourself and your horse infinite health, infinite deadeye & infinite stamina. This will allow you to get into some crazy fights, typically you will die if you run into more than 15 lawmen or bounty hunters, but with this hack you can get into some pretty insane shoot outs. The best part of this RDR2 cheat is the infinite deadeye, the best part of the game is lining up all your shots in slow motion and then knocking them all down in sequence.
If you're reading this and you haven't tried this game yet, you really need to play it. It's worth the money. You can download this cheat by clicking the green button at the top right of the page.
Red Dead Redemption 2 Cheats - RDR2 Cheat Table
Checkout this RDR2 Hack also: Download - Red Dead Redemption 2 Hack
RDR2 Cheat Features
This RDR2 Cheat Table is actually pretty insane, it's got 10 important features. You can teleport your player using the script, it allows you to save and load positions so you can easily teleport in and out of towns and your camp. You can also use it to easily look up your XYZ coordinates. With this cheat table you can give yourself and your horse infinite health, infinite deadeye & infinite stamina. This will allow you to get into some crazy fights, typically you will die if you run into more than 15 lawmen or bounty hunters, but with this hack you can get into some pretty insane shoot outs. The best part of this RDR2 cheat is the infinite deadeye, the best part of the game is lining up all your shots in slow motion and then knocking them all down in sequence.
If you're reading this and you haven't tried this game yet, you really need to play it. It's worth the money. You can download this cheat by clicking the green button at the top right of the page.
Red Dead Redemption 2 Cheats - RDR2 Cheat Table
Checkout this RDR2 Hack also: Download - Red Dead Redemption 2 Hack
RDR2 Cheat Features
- Player/Horse
- Coordinates
- Teleport
- Coord Base
- Coord - X
- Coord - Y
- Coord - Z
- Save Position
- Load Position
- Undo Teleport
- Vitality
- Infinite Health - Arthur
- Infinite Health - (Arthur +Costum models)
- Infinite Health - Horse
- Infinite DeadEye
- Infinite Stamina
- Infinite Stamina - Horse
- PlayerBase
- PlayerBase(AnyModel)
- HorseBase
- StaminaHorseBase
- DeadEyeBase
- StaminaBase
- HealthBase
- HealthBase - Horse
- pStamina - Horse
- pDeadEye
- pStamina
- pHealth
- pHealthMax
- pHealth - Horse
- TimeOfDay (display)
- Weapon
- No Reload
- Infinite Ammo
- No Spread
- Inventory
- Inventory item Count
- Selected item Count
- Ammo
- Money (Spent some to see effect)
- Camera
- Tactical Overview
- _CamHeightVar (This value will be added/substracted)
- Add Camera Height
- Sub Camera Height
- Reset Camera Height
- World
- Bounty Money
Main Cheat Script:
[ENABLE]
aobscanmodule(_Player,RDR2.exe,48 8B 03 4D 03 F6)
aobscanmodule(_VitaliySystem,RDR2.exe,0F 28 CE FF 50 40 0F 2F)
aobscanmodule(_StaminaHorseBase,RDR2.exe,49 8B CE F3 44 0F 10 60 20)
aobscanmodule(_InfiniteDeadEye,RDR2.exe,0F 28 C8 48 8B CB E8 ** ** ** ** 48 8B CB)
aobscanmodule(_StaminaBase,RDR2.exe,F3 0F 59 44 24 70 45 33)
aobscanmodule(_DeadEyeBase,RDR2.exe,0F 2F 70 20 72 11)
aobscanmodule(_GetPlayerHealthBase,RDR2.exe,48 8B 41 10 0F 2F 78 20 72 07)
aobscanmodule(_GodMode,RDR2.exe,48 8D 68 98 48 81 EC 30 01 00 00 41 F6)
aobscanmodule(_NoReload,RDR2.exe,0F 57 DB 0F 57 D2 8B)
aobscanmodule(_InfiniteAmmo,RDR2.exe,44 38 B1 B0 00 00 00)
aobscanmodule(_sPYcAM,RDR2.exe,41 0F 10 54 24 40 F3)
aobscanmodule(_HealthBaseHorse,RDR2.exe,48 8B 48 10 0F 2F 41 20 0F 82 10)
aobscanmodule(_GetpHorse,RDR2.exe,F2 48 8B 02 FF 90 B8 00 00 00 48)
aobscanmodule(_Money,RDR2.exe,03 70 28 48 83 C3 10)
aobscanmodule(_Bounty,RDR2.exe,8B 90 0C 72 00 00) //
aobscanmodule(_NoSpread,RDR2.exe,F3 0F 11 4B 10 F3 0F 10 05)
aobscanmodule(_GetpAnyModel,RDR2.exe,48 8B 01 FF 90 F0 00 00 00 4C 8B F0)
alloc(newmemPlayer,$1000,RDR2.exe)
alloc(_pAnyModelBase,8)
alloc(_pPlayer,8)
alloc(_enableInfiniteStaminaHorse,8)
alloc(_enableInfiniteDeadEye,8)
alloc(_enableInfiniteHealth,8)
alloc(_enableInfiniteHealthCostumModel,8)
alloc(_pStaminaHorse,8)
alloc(_pDeadEye,8)
alloc(_pStaminaBase,8)
alloc(_enableInfiniteStamina,8)
alloc(_pPlayerHealthBase,8)
alloc(_enableNoReload,8)
alloc(_enableInfiniteAmmo,8)
alloc(_addCamHeight,8)
alloc(_subCamHeight,8)
alloc(_ResetCamHeight,8)
alloc(_CamHeightVar,8)
alloc(_pHealthBaseHorse,8)
alloc(_enableInfiniteHealthHorse,8)
alloc(_pHorse,8)
alloc(_pMoney,8)
alloc(_pBounty,8)
alloc(_enableNoSpread,8)
registersymbol(_enableNoSpread)
registersymbol(_NoSpread)
registersymbol(_pBounty)
registersymbol(_Bounty)
registersymbol(_pMoney)
registersymbol(_Money)
registersymbol(_pHorse)
registersymbol(_GetpHorse)
registersymbol(_enableInfiniteHealthHorse)
registersymbol(_pHealthBaseHorse)
registersymbol(_HealthBaseHorse)
registersymbol(_enableInfiniteAmmo)
registersymbol(_InfiniteAmmo)
registersymbol(_enableNoReload)
registersymbol(_NoReload)
registersymbol(_pPlayer)
registersymbol(_Player)
registersymbol(_enableInfiniteHealth)
registersymbol(_enableInfiniteHealthCostumModel)
registersymbol(_pPlayerHealthBase)
registersymbol(_GetPlayerHealthBase)
registersymbol(_enableInfiniteStaminaHorse)
registersymbol(_enableInfiniteDeadEye)
registersymbol(_VitaliySystem)
registersymbol(_pDeadEye)
registersymbol(_DeadEyeBase)
registersymbol(_pStaminaHorse)
registersymbol(_StaminaHorseBase)
registersymbol(_InfiniteDeadEye)
registersymbol(_pStaminaBase)
registersymbol(_enableInfiniteStamina)
registersymbol(_StaminaBase)
registersymbol(_GodMode)
registersymbol(_addCamHeight)
registersymbol(_subCamHeight)
registersymbol(_ResetCamHeight)
registersymbol(_CamHeightVar)
registersymbol(_sPYcAM)
registersymbol(_pAnyModelBase)
registersymbol(_GetpAnyModel)
newmemPlayer:
mov [_pPlayer],rbx
codePlayer:
mov rax,[rbx]
add r14,r14
jmp returnPlayer
newmem:
code:
movaps xmm1,xmm6
cmp rdi,[_pStaminaHorse]
je StaminaHorse
cmp rdi,[_pStaminaBase]
je Stamina
Next:
call qword ptr [rax+40]
jmp return
StaminaHorse:
cmp [_enableInfiniteStaminaHorse],1
jne Next
jmp return
Stamina:
cmp [_enableInfiniteStamina],1
jne Next
jmp return
//////////////
newmemStaminaHorseBase:
mov [_pStaminaHorse],rax
codeStaminaHorseBase:
mov rcx,r14
movss xmm12,[rax+20]INJECT
jmp returnStaminaHorseBase
newmemDeadEyeBase:
mov [_pDeadEye],rax
codeDeadEyeBase:
comiss xmm6,[rax+20]
jb _DeadEyeBase+17
jmp returnDeadEyeBase
newmemInfiniteDeadEye:
cmp [_enableInfiniteDeadEye],1
jne codeInfiniteDeadEye
mov rcx,rbx
jmp returnInfiniteDeadEye
codeInfiniteDeadEye:
movaps xmm1,xmm0
mov rcx,rbx
jmp returnInfiniteDeadEye
newmemStaminaBase:
mov [_pStaminaBase],rax
codeStaminaBase:
movss xmm0,[rax+20]
jmp returnStaminaBase
newmemHealthBase:
codeHealthBase:
mov rax,[rcx+10]
mov [_pPlayerHealthBase],rax
comiss xmm7,[rax+20]
jmp returnHealthBase
newmemGodMode:
cmp rdx,[_pPlayer]
je PlayerHealth
cmp rdx,[_pHorse]
je HorseHealth
cmp rdx,[_pAnyModelBase]
je PlayerHealthAnyModel
codeGodMode:
mov rax,rsp
mov [rax+08],rbx
jmp returnGodMode
PlayerHealth:
cmp [_enableInfiniteHealth],1
jne codeGodMode
RET
HorseHealth:
cmp [_enableInfiniteHealthHorse],1
jne codeGodMode
RET
PlayerHealthAnyModel:
cmp [_enableInfiniteHealthCostumModel],1
jne codeGodMode
RET
newmemNoReload:
CMP rbx,[_pPlayer]
jne codeNoReload
cmp [_enableNoReload],1
jne codeNoReload
RET
codeNoReload:
mov [rsp+08],rbx
jmp returnNoReload
newmemInfiniteAmmo:
cmp [_enableInfiniteAmmo],1
jne codeInfiniteAmmo
RET
codeInfiniteAmmo:
mov rax,rsp
mov [rax+08],rbx
jmp returnInfiniteAmmo
newmemsPYcAM:
cmp [_addCamHeight],1
je AddCamHeight
cmp [_subCamHeight],1
je SubCamHeight
cmp [_ResetCamHeight],1
je ResetCamHeight
jmp codesPYcAM
AddCamHeight:
mov [_addCamHeight],0
fld [r12+48]
fld [_CamHeightVar]
faddp
fstp [r12+48]
jmp codesPYcAM
SubCamHeight:
mov [_subCamHeight],0
cmp [r12+48],(float)1
jle ResetCamHeight
fld [r12+48]
fld [_CamHeightVar]
fsubp
fstp [r12+48]
jmp codesPYcAM
ResetCamHeight:
mov [_ResetCamHeight],0
mov [r12+48],(float)1
jmp codesPYcAM
codesPYcAM:
movups xmm2,[r12+40]
jmp returnsPYcAM
newmemHealthBaseHorse:
codeHealthBaseHorse:
mov rcx,[rax+10]
mov [_pHealthBaseHorse],rcx
comiss xmm0,[rcx+20]
jmp returnHealthBaseHorse
newmemGetpHorse:
mov [_pHorse],rdx
codeGetpHorse:
mov rax,[rdx]
call qword ptr [rax+000000B8]
jmp returnGetpHorse
newmemMoney:
mov [_pMoney],rax
codeMoney:
add esi,[rax+28]
add rbx,10
jmp returnMoney
newmemBounty:
mov [_pBounty],rax
codeBounty:
mov edx,[rax+0000720C]
jmp returnBounty
newmemNoSpread:
cmp [_enableNoSpread],1
jne codeNoSpread
mov [rbx+10],0
jmp returnNoSpread
codeNoSpread:
movss [rbx+10],xmm1
jmp returnNoSpread
newmemNoSpread2:
cmp [_enableNoSpread],1
jne codeNoSpread
mov [rbx+10],0
codeNoSpread2:
movss xmm1,[rbx+10]
jmp returnNoSpread2
pAnyModelmem:
mov [_pAnyModelBase],rcx
pAnyModelcode:
mov rax,[rcx]
call qword ptr [rax+000000F0]
jmp pAnyModelreturn
_Player:
jmp newmemPlayer
nop
returnPlayer:
_VitaliySystem:
jmp newmem
nop
return:
_StaminaHorseBase:
jmp newmemStaminaHorseBase
nop
nop
nop
nop
returnStaminaHorseBase:
_DeadEyeBase:
jmp newmemDeadEyeBase
nop
returnDeadEyeBase:
_InfiniteDeadEye:
jmp newmemInfiniteDeadEye
nop
returnInfiniteDeadEye:
_StaminaBase+37:
jmp newmemStaminaBase
returnStaminaBase:
_GetPlayerHealthBase:
jmp newmemHealthBase
nop
nop
nop
returnHealthBase:
_GodMode-1A:
jmp newmemGodMode
nop
nop
returnGodMode:
_NoReload-3D:
jmp newmemNoReload
returnNoReload:
_InfiniteAmmo-24:
jmp newmemInfiniteAmmo
nop
nop
returnInfiniteAmmo:
_sPYcAM:
jmp newmemsPYcAM
nop
returnsPYcAM:
_HealthBaseHorse:
jmp newmemHealthBaseHorse
nop
nop
nop
returnHealthBaseHorse:
_GetpHorse+01:
jmp newmemGetpHorse
nop
nop
nop
nop
returnGetpHorse:
_Money:
jmp newmemMoney
nop
nop
returnMoney:
_Bounty:
jmp newmemBounty
nop
returnBounty:
_NoSpread:
jmp newmemNoSpread
returnNoSpread:
_NoSpread-C:
jmp newmemNoSpread2
returnNoSpread2:
_GetpAnyModel:
jmp pAnyModelmem
nop
nop
nop
nop
pAnyModelreturn:
_pPlayer:
dq 0
_enableInfiniteStaminaHorse:
dd 0
_enableInfiniteDeadEye:
dd 0
_pStaminaHorse:
dd 0
_pDeadEye:
dd 0
_pStaminaBase:
dd 0
_enableInfiniteStamina:
dd 0
_pPlayerHealthBase:
dd 0
_enableInfiniteHealth:
dd 0
_enableNoReload:
dd 0
_enableInfiniteAmmo:
dd 0
_addCamHeight:
dd 0
_subCamHeight:
dd 0
_ResetCamHeight:
dd 0
_CamHeightVar:
dq (float)1
_pHealthBaseHorse:
dd 0
_enableInfiniteHealthHorse:
dd 0
_pHorse:
dd 0
_pMoney:
dd 0
_pBounty:
dd 0
_enableNoSpread:
dd 0
_pAnyModelBase:
dq 0
[DISABLE]
_Player:
db 48 8B 03 4D 03 F6
_VitaliySystem:
db 0F 28 CE FF 50 40
_StaminaHorseBase:
db 49 8B CE F3 44 0F 10 60 20
_DeadEyeBase:
db 0F 2F 70 20 72 11
_InfiniteDeadEye:
db 0F 28 C8 48 8B CB
_StaminaBase+37:
db F3 0F 10 40 20
_GetPlayerHealthBase:
db 48 8B 41 10 0F 2F 78 20
_GodMode-1A:
db 48 8B C4 48 89 58 08
_NoReload-3D:
db 48 89 5C 24 08
_InfiniteAmmo-24:
db 48 8B C4 48 89 58 08
_sPYcAM:
db 41 0F 10 54 24 40
_HealthBaseHorse:
db 48 8B 48 10 0F 2F 41 20
_GetpHorse+01:
db 48 8B 02 FF 90 B8 00 00 00
_Money:
db 03 70 28 48 83 C3 10
_Bounty:
db 8B 90 0C 72 00 00
_NoSpread:
db F3 0F 11 4B 10
_NoSpread-C:
db F3 0F 10 4B 10
_GetpAnyModel:
db 48 8B 01 FF 90 F0 00 00 00
dealloc(newmemPlayer)
dealloc(_pPlayer)
dealloc(_enableInfiniteStaminaHorse)
dealloc(_enableInfiniteDeadEye)
dealloc(_enableInfiniteHealth)
dealloc(_pStaminaHorse)
dealloc(_pDeadEye)
dealloc(_pStaminaBase)
dealloc(_enableInfiniteStamina)
dealloc(_pPlayerHealthBase)
dealloc(_enableNoReload)
dealloc(_enableInfiniteAmmo)
dealloc(_addCamHeight)
dealloc(_subCamHeight)
dealloc(_ResetCamHeight)
dealloc(_CamHeightVar)
dealloc(_pHealthBaseHorse)
dealloc(_enableInfiniteHealthHorse)
dealloc(_pHorse)
dealloc(_pMoney)
dealloc(_pBounty)
dealloc(_enableNoSpread)
dealloc(_enableInfiniteHealthCostumModel)
unregistersymbol(_GetpAnyModel)
unregistersymbol(_pAnyModelBase)
dealloc(_pAnyModelBase)
unregistersymbol(_enableInfiniteHealthCostumModel)
unregistersymbol(_enableNoSpread)
unregistersymbol(_NoSpread)
unregistersymbol(_pBounty)
unregistersymbol(_Bounty)
unregistersymbol(_pMoney)
unregistersymbol(_Money)
unregistersymbol(_pHorse)
unregistersymbol(_GetpHorse)
unregistersymbol(_enableInfiniteHealthHorse)
unregistersymbol(_pHealthBaseHorse)
unregistersymbol(_HealthBaseHorse)
unregistersymbol(_enableInfiniteAmmo)
unregistersymbol(_InfiniteAmmo)
unregistersymbol(_enableNoReload)
unregistersymbol(_NoReload)
unregistersymbol(_pPlayer)
unregistersymbol(_Player)
unregistersymbol(_enableInfiniteHealth)
unregistersymbol(_pPlayerHealthBase)
unregistersymbol(_GetPlayerHealthBase)
unregistersymbol(_enableInfiniteStaminaHorse)
unregistersymbol(_enableInfiniteDeadEye)
unregistersymbol(_VitaliySystem)
unregistersymbol(_pDeadEye)
unregistersymbol(_DeadEyeBase)
unregistersymbol(_pStaminaHorse)
unregistersymbol(_StaminaHorseBase)
unregistersymbol(_InfiniteDeadEye)
unregistersymbol(_pStaminaBase)
unregistersymbol(_enableInfiniteStamina)
unregistersymbol(_StaminaBase)
unregistersymbol(_GodMode)
unregistersymbol(_addCamHeight)
unregistersymbol(_subCamHeight)
unregistersymbol(_ResetCamHeight)
unregistersymbol(_CamHeightVar)
unregistersymbol(_sPYcAM)
{
// ORIGINAL CODE - INJECTION POINT: "RDR2.exe"+4277D2
"RDR2.exe"+4277B0: B0 01 - mov al,01
"RDR2.exe"+4277B2: EB C4 - jmp RDR2.exe+427778
"RDR2.exe"+4277B4: 40 53 - push rbx
"RDR2.exe"+4277B6: 48 83 EC 20 - sub rsp,20
"RDR2.exe"+4277BA: E8 F9 F0 5E 02 - call RDR2.exe+2A168B8
"RDR2.exe"+4277BF: 48 8B D8 - mov rbx,rax
"RDR2.exe"+4277C2: 48 85 C0 - test rax,rax
"RDR2.exe"+4277C5: 74 22 - je RDR2.exe+4277E9
"RDR2.exe"+4277C7: 8B 0D 1F DE 4A 03 - mov ecx,[RDR2.exe+38D55EC]
"RDR2.exe"+4277CD: 48 8D 54 24 38 - lea rdx,[rsp+38]
// ---------- INJECTING HERE ----------
"RDR2.exe"+4277D2: 4C 8B 00 - mov r8,[rax]
"RDR2.exe"+4277D5: 89 4C 24 38 - mov [rsp+38],ecx
// ---------- DONE INJECTING ----------
"RDR2.exe"+4277D9: 48 8B C8 - mov rcx,rax
"RDR2.exe"+4277DC: 41 FF 50 08 - call qword ptr [r8+08]
"RDR2.exe"+4277E0: 84 C0 - test al,al
"RDR2.exe"+4277E2: 74 05 - je RDR2.exe+4277E9
"RDR2.exe"+4277E4: 48 8B C3 - mov rax,rbx
"RDR2.exe"+4277E7: EB 02 - jmp RDR2.exe+4277EB
"RDR2.exe"+4277E9: 33 C0 - xor eax,eax
"RDR2.exe"+4277EB: 48 83 C4 20 - add rsp,20
"RDR2.exe"+4277EF: 5B - pop rbx
"RDR2.exe"+4277F0: C3 - ret
}
Teleporter:
[ENABLE]
aobscanmodule(_Teleport,RDR2.exe,EB 23 F3 41 0F 6F 47 70) // should be unique
alloc(newmem,$1000,"RDR2.exe"+66AC6F)
alloc(_xPos,8)
alloc(_yPos,8)
alloc(_zPos,8)
alloc(_xPosUndo,8)
alloc(_yPosUndo,8)
alloc(_zPosUndo,8)
alloc(_savePos,8)
alloc(_loadPos,8)
alloc(_undoPos,8)
alloc(_pPos,8)
registersymbol(_pPos)
registersymbol(_xPos)
registersymbol(_yPos)
registersymbol(_zPos)
registersymbol(_xPosUndo)
registersymbol(_yPosUndo)
registersymbol(_zPosUndo)
registersymbol(_savePos)
registersymbol(_loadPos)
registersymbol(_undoPos)
registersymbol(_Teleport)
label(code)
label(return)
newmem:
cmp r14,[_pPlayer]
jne code
movdqu xmm0,[r15+70]
mov [_pPos],r15
cmp [_savePos],1
je Save
cmp [_loadPos],1
je Load
cmp [_undoPos],1
je Undo
jmp code
Save:
mov [_savePos],0
push rax
mov rax,[r15+70]
mov [_xPos],rax
mov rax,[r15+74]
mov [_yPos],rax
mov rax,[r15+78]
mov [_zPos],rax
pop rax
jmp code
Load:
mov [_loadPos],0
///
push rax
mov rax,[r15+70]
mov [_xPosUndo],rax
mov rax,[r15+74]
mov [_yPosUndo],rax
mov rax,[r15+78]
mov [_zPosUndo],rax
///
mov rax,[_xPos]
mov [r15+70],rax
mov rax,[_yPos]
mov [r15+74],rax
mov rax,[_zPos]
mov [r15+78],rax
pop rax
jmp code
Undo:
mov [_undoPos],0
push rax
mov rax,[_xPosUndo]
mov [r15+70],rax
mov rax,[_yPosUndo]
mov [r15+74],rax
mov rax,[_zPosUndo]
mov [r15+78],rax
pop rax
jmp code
code:
movdqu xmm0,[r15+70]
jmp return
_Teleport+02:
jmp newmem
nop
return:
_xPos:
dd 0
_yPos:
dd 0
_zPos:
dd 0
_xPosUndo:
dd 0
_yPosUndo:
dd 0
_zPosUndo:
dd 0
_savePos:
dd 0
_loadPos:
dd 0
_undoPos:
dd 0
[DISABLE]
_Teleport+02:
db F3 41 0F 6F 47 70
unregistersymbol(_Teleport)
dealloc(_xPos,8)
dealloc(_yPos,8)
dealloc(_zPos,8)
dealloc(_xPosUndo,8)
dealloc(_yPosUndo,8)
dealloc(_zPosUndo,8)
dealloc(_savePos,8)
dealloc(_loadPos,8)
dealloc(_undoPos,8)
dealloc(newmem)
unregistersymbol(_xPos)
unregistersymbol(_yPos)
unregistersymbol(_zPos)
unregistersymbol(_xPosUndo)
unregistersymbol(_yPosUndo)
unregistersymbol(_zPosUndo)
unregistersymbol(_savePos)
unregistersymbol(_loadPos)
unregistersymbol(_undoPos)
unregistersymbol(_Teleport)
{
// ORIGINAL CODE - INJECTION POINT: "RDR2.exe"+66AC6F
"RDR2.exe"+66AC45: E8 0A 59 CE FF - call RDR2.exe+350554
"RDR2.exe"+66AC4A: 0F 28 55 87 - movaps xmm2,[rbp-79]
"RDR2.exe"+66AC4E: 66 0F 6F C2 - movdqa xmm0,xmm2
"RDR2.exe"+66AC52: 66 0F 69 C2 - punpckhwd xmm0,xmm2
"RDR2.exe"+66AC56: 66 0F 72 E0 10 - psrad ,xmm010
"RDR2.exe"+66AC5B: 0F 5B C0 - cvtdq2ps xmm0,xmm0
"RDR2.exe"+66AC5E: 66 0F 70 C8 EE - pshufd xmm1,xmm0-12
"RDR2.exe"+66AC63: 0F 59 0D 66 18 B8 02 - mulps xmm1,[RDR2.exe+31EC4D0]
"RDR2.exe"+66AC6A: 0F 58 CA - addps xmm1,xmm2
"RDR2.exe"+66AC6D: EB 23 - jmp RDR2.exe+66AC92
// ---------- INJECTING HERE ----------
"RDR2.exe"+66AC6F: F3 41 0F 6F 47 70 - movdqu xmm0,[r15+70]
// ---------- DONE INJECTING ----------
"RDR2.exe"+66AC75: 66 0F 69 C0 - punpckhwd xmm0,xmm0
"RDR2.exe"+66AC79: 66 0F 72 E0 10 - psrad ,xmm010
"RDR2.exe"+66AC7E: 0F 5B C0 - cvtdq2ps xmm0,xmm0
"RDR2.exe"+66AC81: 66 0F 70 C8 EE - pshufd xmm1,xmm0-12
"RDR2.exe"+66AC86: 0F 59 0D 43 18 B8 02 - mulps xmm1,[RDR2.exe+31EC4D0]
"RDR2.exe"+66AC8D: 41 0F 58 4F 70 - addps xmm1,[r15+70]
"RDR2.exe"+66AC92: 0F 29 4C 24 20 - movaps [rsp+20],xmm1
"RDR2.exe"+66AC97: 48 8D 7C 24 20 - lea rdi,[rsp+20]
"RDR2.exe"+66AC9C: F3 0F 6F 37 - movdqu xmm6,[rdi]
"RDR2.exe"+66ACA0: 33 C9 - xor ecx,ecx
}
Inventory item hack:
[ENABLE]
aobscanmodule(_Inventory,RDR2.exe,48 8B 40 28 48 01 07) // should be unique
alloc(newmem,$1000,"RDR2.exe"+7153E3)
alloc(_pInvItemCount,8)
alloc(_pAmmo,8)
registersymbol(_pAmmo)
registersymbol(_pInvItemCount)
registersymbol(_Inventory)
label(code)
label(return)
newmem:
push rdx
mov rdx,[rax+40]
cmp [rdx+30],00010001
je Check
cmp [rdx+30],00030003
je Check1
cmp [rdx+30],00000000
je code
mov [_pInvItemCount],rax
code:
pop rdx
mov rax,[rax+28]
add [rdi],rax
jmp return
Check:
cmp [rdx+1C],00500000 // Ammo
je Ammo
jmp code
Check1:
cmp [rdx+1C],02100000
je Item
jmp code
Ammo:
mov [_pAmmo],rax
jmp code
Item:
mov [_pInvItemCount],rax
jmp code
_Inventory:
jmp newmem
nop
nop
return:
_pInvItemCount:
dd 0
_pAmmo:
dd 0
[DISABLE]
_Inventory:
db 48 8B 40 28 48 01 07
unregistersymbol(_Inventory)
unregistersymbol(_pInvItemCount)
unregistersymbol(_pAmmo)
dealloc(_pAmmo)
dealloc(_pInvItemCount)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "RDR2.exe"+7153E3
"RDR2.exe"+7153C1: 49 8B 47 10 - mov rax,[r15+10]
"RDR2.exe"+7153C5: 8D 4E FF - lea ecx,[rsi-01]
"RDR2.exe"+7153C8: 48 03 C9 - add rcx,rcx
"RDR2.exe"+7153CB: 41 8B D4 - mov edx,r12d
"RDR2.exe"+7153CE: 44 8B 44 C8 0C - mov r8d,[rax+rcx*8+0C]
"RDR2.exe"+7153D3: 49 8B C9 - mov rcx,r9
"RDR2.exe"+7153D6: E8 A9 DA 01 00 - call RDR2.exe+732E84
"RDR2.exe"+7153DB: 45 33 C0 - xor r8d,r8d
"RDR2.exe"+7153DE: 48 85 C0 - test rax,rax
"RDR2.exe"+7153E1: 74 07 - je RDR2.exe+7153EA
// ---------- INJECTING HERE ----------
"RDR2.exe"+7153E3: 48 8B 40 28 - mov rax,[rax+28]
"RDR2.exe"+7153E7: 48 01 07 - add [rdi],rax
// ---------- DONE INJECTING ----------
"RDR2.exe"+7153EA: 41 0F B7 46 18 - movzx eax,word ptr [r14+18]
"RDR2.exe"+7153EF: FF C5 - inc ebp
"RDR2.exe"+7153F1: 3B E8 - cmp ebp,eax
"RDR2.exe"+7153F3: 0F 8C FC FE FF FF - jl RDR2.exe+7152F5
"RDR2.exe"+7153F9: 48 8B 5C 24 50 - mov rbx,[rsp+50]
"RDR2.exe"+7153FE: 48 8B 6C 24 58 - mov rbp,[rsp+58]
"RDR2.exe"+715403: 48 8B 74 24 60 - mov rsi,[rsp+60]
"RDR2.exe"+715408: 48 83 C4 20 - add rsp,20
"RDR2.exe"+71540C: 41 5F - pop r15
"RDR2.exe"+71540E: 41 5E - pop r14
}