STD047 wrote: ↑Thu Jan 07, 2021 2:19 pmI could not find any tables about 'honor' so i tried to search
and ,took a whole day, I finally found a related code
it still works in current newest version but i have some problem
just like [Law] pointer, i want to modify exact honor value...
and also, are there any other ways to make more clean & simple script??
-- I'm new to here, and don't know cheat engine well.. any kind of comment would be appreciated
oh here's my table.
main table is from l0wb1t and many other masters.
i just changed AOB addresses for health, stamina etc. (but couldn't found horse health address...)
++ sorry reworked
I reworked again
now, i solved some error of disabling my honor code
but i have some question here
what's difference of two script below here?
1st one works but 2nd one doesn't
any comment would be appreciated
first code
[ENABLE]
aobscanmodule(INJECT,RDR2.exe,48 89 04 D1 E9 49 F1 FF FF) // should be unique
alloc(newmem,$1000,"RDR2.exe"+2A97458)
alloc(p_honor,8)
alloc(address_r14,8)
label(code)
label(return)
newmem:
push [r14]
pop [address_r14]
add [address_r14],15bf8
cmp rcx,[address_r14]
jne code
cmp rdx,23
jne code
mov [p_honor],rax
code:
mov [rcx+rdx*8],rax
jmp RDR2.exe+2A965AA
jmp return
INJECT:
jmp newmem
nop 4
return:
registersymbol(INJECT)
registersymbol(p_honor)
registersymbol(address_r14)
p_honor:
dd 0
address_r14:
dq 0
[DISABLE]
INJECT:
db 48 89 04 D1 E9 49 F1 FF FF
unregistersymbol(INJECT)
unregistersymbol(p_honor)
unregistersymbol(address_r14)
dealloc(newmem)
dealloc(p_honor)
{
// ORIGINAL CODE - INJECTION POINT: "RDR2.exe"+2A97458
"RDR2.exe"+2A97432: E9 73 F1 FF FF - jmp RDR2.exe+2A965AA
"RDR2.exe"+2A97437: 48 83 C3 08 - add rbx,08
"RDR2.exe"+2A9743B: 48 FF C7 - inc rdi
"RDR2.exe"+2A9743E: 0F B6 07 - movzx eax,byte ptr [rdi]
"RDR2.exe"+2A97441: E9 23 01 00 00 - jmp RDR2.exe+2A97569
"RDR2.exe"+2A97446: 0F B7 57 01 - movzx edx,word ptr [rdi+01]
"RDR2.exe"+2A9744A: 48 83 EB 08 - sub rbx,08
"RDR2.exe"+2A9744E: 49 8B 0E - mov rcx,[r14]
"RDR2.exe"+2A97451: 48 83 C7 02 - add rdi,02
"RDR2.exe"+2A97455: 49 8B 00 - mov rax,[r8]
// ---------- INJECTING HERE ----------
"RDR2.exe"+2A97458: 48 89 04 D1 - mov [rcx+rdx*8],rax
"RDR2.exe"+2A9745C: E9 49 F1 FF FF - jmp RDR2.exe+2A965AA
// ---------- DONE INJECTING ----------
"RDR2.exe"+2A97461: 41 8B 00 - mov eax,[r8]
"RDR2.exe"+2A97464: 48 83 EB 08 - sub rbx,08
"RDR2.exe"+2A97468: 31 03 - xor [rbx],eax
"RDR2.exe"+2A9746A: E9 3B F1 FF FF - jmp RDR2.exe+2A965AA
"RDR2.exe"+2A9746F: 48 83 C3 08 - add rbx,08
"RDR2.exe"+2A97473: C7 03 00 00 80 3F - mov [rbx],3F800000
"RDR2.exe"+2A97479: E9 2C F1 FF FF - jmp RDR2.exe+2A965AA
"RDR2.exe"+2A9747E: 44 0F B6 4F 02 - movzx r9d,byte ptr [rdi+02]
"RDR2.exe"+2A97483: 44 0F B6 47 01 - movzx r8d,byte ptr [rdi+01]
"RDR2.exe"+2A97488: 41 8B C1 - mov eax,r9d
}
2nd code- makes CTD
[ENABLE]
aobscanmodule(INJECT,RDR2.exe,48 83 c7 02 49 8B 00 48 89 04 D1 E9) // should be unique
alloc(newmem,$1000,INJECT+4)
alloc(p_honor,8)
alloc(address_r14,8)
label(code)
label(return)
newmem:
mov rax,[r8]//original code
// push [7ff629988420]
push [r14]
pop [address_r14]
add [address_r14],15bf8
cmp rcx,[address_r14]
jne code
cmp rdx,23
jne code
mov [p_honor],rax
code:
mov rax,[r8]
mov [rcx+rdx*8],rax
jmp return
INJECT+4:
jmp newmem
nop 2
return:
registersymbol(INJECT)
registersymbol(p_honor)
registersymbol(address_r14)
p_honor:
dd 0
address_r14:
dq 0
[DISABLE]
INJECT+4:
db 49 8B 00 48 89 04 D1
unregistersymbol(INJECT)
unregistersymbol(p_honor)
unregistersymbol(address_r14)
dealloc(newmem)
dealloc(p_honor)
dealloc(address_r14,8)
{
// ORIGINAL CODE - INJECTION POINT: "RDR2.exe"+2A97455
"RDR2.exe"+2A9742C: C7 03 00 00 80 BF - mov [rbx],BF800000
"RDR2.exe"+2A97432: E9 73 F1 FF FF - jmp RDR2.exe+2A965AA
"RDR2.exe"+2A97437: 48 83 C3 08 - add rbx,08
"RDR2.exe"+2A9743B: 48 FF C7 - inc rdi
"RDR2.exe"+2A9743E: 0F B6 07 - movzx eax,byte ptr [rdi]
"RDR2.exe"+2A97441: E9 23 01 00 00 - jmp RDR2.exe+2A97569
"RDR2.exe"+2A97446: 0F B7 57 01 - movzx edx,word ptr [rdi+01]
"RDR2.exe"+2A9744A: 48 83 EB 08 - sub rbx,08
"RDR2.exe"+2A9744E: 49 8B 0E - mov rcx,[r14]
"RDR2.exe"+2A97451: 48 83 C7 02 - add rdi,02
// ---------- INJECTING HERE ----------
"RDR2.exe"+2A97455: 49 8B 00 - mov rax,[r8]
"RDR2.exe"+2A97458: 48 89 04 D1 - mov [rcx+rdx*8],rax
// ---------- DONE INJECTING ----------
"RDR2.exe"+2A9745C: E9 49 F1 FF FF - jmp RDR2.exe+2A965AA
"RDR2.exe"+2A97461: 41 8B 00 - mov eax,[r8]
"RDR2.exe"+2A97464: 48 83 EB 08 - sub rbx,08
"RDR2.exe"+2A97468: 31 03 - xor [rbx],eax
"RDR2.exe"+2A9746A: E9 3B F1 FF FF - jmp RDR2.exe+2A965AA
"RDR2.exe"+2A9746F: 48 83 C3 08 - add rbx,08
"RDR2.exe"+2A97473: C7 03 00 00 80 3F - mov [rbx],3F800000
"RDR2.exe"+2A97479: E9 2C F1 FF FF - jmp RDR2.exe+2A965AA
"RDR2.exe"+2A9747E: 44 0F B6 4F 02 - movzx r9d,byte ptr [rdi+02]
"RDR2.exe"+2A97483: 44 0F B6 47 01 - movzx r8d,byte ptr [rdi+01]
}
How to use this cheat table?
- Install Cheat Engine
- Double-click the .CT file in order to open it.
- Click the PC icon in Cheat Engine in order to select the game process.
- Keep the list.
- Activate the trainer options by checking boxes or setting values from 0 to 1