Far Cry 5 Megathread - EAC Bypass & Table Compilation
Posted: Wed Apr 25, 2018 4:32 pm
anyone figured out Time Of Day already?'
as far i can see daytime is same as far cry 4 changes only when walk/move crosshair.
but i cannot really find the value
i tried unkown scan and then value between 0-24 , but no luck so far
Edit:
NVM Found it
Here's my Time Of Day Script:
Copy and paste into CE
Page Up - Add Daytime
Page Down - Sub Daytime
There's also a Current Time of Day Pointer, value goes from 0 to 86300
[CODE]
2989
"Time Of Day"
Auto Assembler Script
{ Game : FarCry5.exe
Version:
Date : 2018-04-25
Author : l0wb1
This script does blah blah blah
}
[ENABLE]
aobscanmodule(_TimeOfDay,FC_m64.dll,F3 0F 10 00 F3 0F 11 45 00 4C) // should be unique
alloc(newmem,$1000,FC_m64.dll)
alloc(_IncreaseTime,8)
alloc(_DecreaseTime,8)
alloc(_CurrentTimeOfDay,8)
alloc(_ValueTimeOfDay,8)
registersymbol(_TimeOfDay)
registersymbol(_IncreaseTime)
registersymbol(_DecreaseTime)
registersymbol(_CurrentTimeOfDay)
registersymbol(_ValueTimeOfDay)
label(code)
label(return)
label(IncToD)
label(DecToD)
label(SetTod0)
label(SetTod23)
newmem:
push rax
mov [_CurrentTimeOfDay],rax
pop rax
cmp [_IncreaseTime],1
je IncToD
cmp [_DecreaseTime],1
je DecToD
jmp code
IncToD:
cmp [rax],(float)86000
jg SetTod0
mov [_IncreaseTime],0
fld [rax]
fld [_ValueTimeOfDay]
faddp
fstp [rax]
jmp code
DecToD:
cmp [rax],(float)1000
jl SetTod23
mov [_DecreaseTime],0
fld [rax]
fld [_ValueTimeOfDay]
fsubp
fstp [rax]
jmp code
SetTod0:
mov [rax],(float)0
jmp code
SetTod23:
mov [rax],(float)86000
jmp code
code:
movss xmm0,[rax]
movss [rbp+00],xmm0
jmp return
_TimeOfDay:
jmp newmem
nop
nop
nop
nop
return:
_IncreaseTime:
dd 0
_DecreaseTime:
dd 0
_CurrentTimeOfDay:
dd 0
_ValueTimeOfDay:
dq (float)1000.0
[DISABLE]
_TimeOfDay:
db F3 0F 10 00 F3 0F 11 45 00
dealloc(_IncreaseTime)
dealloc(_DecreaseTime)
dealloc(_CurrentTimeOfDay)
dealloc(_ValueTimeOfDay)
unregistersymbol(_TimeOfDay)
unregistersymbol(_IncreaseTime)
unregistersymbol(_DecreaseTime)
unregistersymbol(_CurrentTimeOfDay)
unregistersymbol(_ValueTimeOfDay)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "FC_m64.dll"+A45BA02
"FC_m64.dll"+A45B9DC: 74 46 - je FC_m64.dll+A45BA24
"FC_m64.dll"+A45B9DE: 48 89 5C 24 50 - mov [rsp+50],rbx
"FC_m64.dll"+A45B9E3: 4C 39 F3 - cmp rbx,r14
"FC_m64.dll"+A45B9E6: 74 09 - je FC_m64.dll+A45B9F1
"FC_m64.dll"+A45B9E8: F0 FF 43 08 - lock inc [rbx+08]
"FC_m64.dll"+A45B9EC: 48 8B 5C 24 50 - mov rbx,[rsp+50]
"FC_m64.dll"+A45B9F1: 48 8B 4B 10 - mov rcx,[rbx+10]
"FC_m64.dll"+A45B9F5: 48 81 C1 30 01 00 00 - add rcx,00000130
"FC_m64.dll"+A45B9FC: 48 8B 01 - mov rax,[rcx]
"FC_m64.dll"+A45B9FF: FF 50 28 - call qword ptr [rax+28]
// ---------- INJECTING HERE ----------
"FC_m64.dll"+A45BA02: F3 0F 10 00 - movss xmm0,[rax]
"FC_m64.dll"+A45BA06: F3 0F 11 45 00 - movss [rbp+00],xmm0
// ---------- DONE INJECTING ----------
"FC_m64.dll"+A45BA0B: 4C 39 F3 - cmp rbx,r14
"FC_m64.dll"+A45BA0E: 74 14 - je FC_m64.dll+A45BA24
"FC_m64.dll"+A45BA10: F0 0F C1 7B 08 - lock xadd [rbx+08],edi
"FC_m64.dll"+A45BA15: 83 FF 01 - cmp edi,01
"FC_m64.dll"+A45BA18: 75 0A - jne FC_m64.dll+A45BA24
"FC_m64.dll"+A45BA1A: 48 8B 4C 24 50 - mov rcx,[rsp+50]
"FC_m64.dll"+A45BA1F: E8 9C E0 E2 F5 - call FC_m64.dll+289AC0
"FC_m64.dll"+A45BA24: 48 8B 5C 24 40 - mov rbx,[rsp+40]
"FC_m64.dll"+A45BA29: 48 8B 6C 24 58 - mov rbp,[rsp+58]
"FC_m64.dll"+A45BA2E: 48 83 C4 20 - add rsp,20
}
2990
"Increase Time"
Byte
_IncreaseTime
Set Value
33
1
0
Activate
2991
"Decrease Time"
Byte
_DecreaseTime
Set Value
34
1
0
2994
"Current Time of Day (0-86000)"
Float
_CurrentTimeOfDay
0
[/CODE]
[automerge]1524675164[/automerge]
as far i can see daytime is same as far cry 4 changes only when walk/move crosshair.
but i cannot really find the value
i tried unkown scan and then value between 0-24 , but no luck so far
Edit:
NVM Found it
Here's my Time Of Day Script:
Copy and paste into CE
Page Up - Add Daytime
Page Down - Sub Daytime
There's also a Current Time of Day Pointer, value goes from 0 to 86300
[CODE]
Version:
Date : 2018-04-25
Author : l0wb1
This script does blah blah blah
}
[ENABLE]
aobscanmodule(_TimeOfDay,FC_m64.dll,F3 0F 10 00 F3 0F 11 45 00 4C) // should be unique
alloc(newmem,$1000,FC_m64.dll)
alloc(_IncreaseTime,8)
alloc(_DecreaseTime,8)
alloc(_CurrentTimeOfDay,8)
alloc(_ValueTimeOfDay,8)
registersymbol(_TimeOfDay)
registersymbol(_IncreaseTime)
registersymbol(_DecreaseTime)
registersymbol(_CurrentTimeOfDay)
registersymbol(_ValueTimeOfDay)
label(code)
label(return)
label(IncToD)
label(DecToD)
label(SetTod0)
label(SetTod23)
newmem:
push rax
mov [_CurrentTimeOfDay],rax
pop rax
cmp [_IncreaseTime],1
je IncToD
cmp [_DecreaseTime],1
je DecToD
jmp code
IncToD:
cmp [rax],(float)86000
jg SetTod0
mov [_IncreaseTime],0
fld [rax]
fld [_ValueTimeOfDay]
faddp
fstp [rax]
jmp code
DecToD:
cmp [rax],(float)1000
jl SetTod23
mov [_DecreaseTime],0
fld [rax]
fld [_ValueTimeOfDay]
fsubp
fstp [rax]
jmp code
SetTod0:
mov [rax],(float)0
jmp code
SetTod23:
mov [rax],(float)86000
jmp code
code:
movss xmm0,[rax]
movss [rbp+00],xmm0
jmp return
_TimeOfDay:
jmp newmem
nop
nop
nop
nop
return:
_IncreaseTime:
dd 0
_DecreaseTime:
dd 0
_CurrentTimeOfDay:
dd 0
_ValueTimeOfDay:
dq (float)1000.0
[DISABLE]
_TimeOfDay:
db F3 0F 10 00 F3 0F 11 45 00
dealloc(_IncreaseTime)
dealloc(_DecreaseTime)
dealloc(_CurrentTimeOfDay)
dealloc(_ValueTimeOfDay)
unregistersymbol(_TimeOfDay)
unregistersymbol(_IncreaseTime)
unregistersymbol(_DecreaseTime)
unregistersymbol(_CurrentTimeOfDay)
unregistersymbol(_ValueTimeOfDay)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "FC_m64.dll"+A45BA02
"FC_m64.dll"+A45B9DC: 74 46 - je FC_m64.dll+A45BA24
"FC_m64.dll"+A45B9DE: 48 89 5C 24 50 - mov [rsp+50],rbx
"FC_m64.dll"+A45B9E3: 4C 39 F3 - cmp rbx,r14
"FC_m64.dll"+A45B9E6: 74 09 - je FC_m64.dll+A45B9F1
"FC_m64.dll"+A45B9E8: F0 FF 43 08 - lock inc [rbx+08]
"FC_m64.dll"+A45B9EC: 48 8B 5C 24 50 - mov rbx,[rsp+50]
"FC_m64.dll"+A45B9F1: 48 8B 4B 10 - mov rcx,[rbx+10]
"FC_m64.dll"+A45B9F5: 48 81 C1 30 01 00 00 - add rcx,00000130
"FC_m64.dll"+A45B9FC: 48 8B 01 - mov rax,[rcx]
"FC_m64.dll"+A45B9FF: FF 50 28 - call qword ptr [rax+28]
// ---------- INJECTING HERE ----------
"FC_m64.dll"+A45BA02: F3 0F 10 00 - movss xmm0,[rax]
"FC_m64.dll"+A45BA06: F3 0F 11 45 00 - movss [rbp+00],xmm0
// ---------- DONE INJECTING ----------
"FC_m64.dll"+A45BA0B: 4C 39 F3 - cmp rbx,r14
"FC_m64.dll"+A45BA0E: 74 14 - je FC_m64.dll+A45BA24
"FC_m64.dll"+A45BA10: F0 0F C1 7B 08 - lock xadd [rbx+08],edi
"FC_m64.dll"+A45BA15: 83 FF 01 - cmp edi,01
"FC_m64.dll"+A45BA18: 75 0A - jne FC_m64.dll+A45BA24
"FC_m64.dll"+A45BA1A: 48 8B 4C 24 50 - mov rcx,[rsp+50]
"FC_m64.dll"+A45BA1F: E8 9C E0 E2 F5 - call FC_m64.dll+289AC0
"FC_m64.dll"+A45BA24: 48 8B 5C 24 40 - mov rbx,[rsp+40]
"FC_m64.dll"+A45BA29: 48 8B 6C 24 58 - mov rbp,[rsp+58]
"FC_m64.dll"+A45BA2E: 48 83 C4 20 - add rsp,20
}
_IncreaseTime
_DecreaseTime
_CurrentTimeOfDay
[/CODE]
[automerge]1524675164[/automerge]