195
"Modify FOV"
Auto Assembler Script
{ Game : ShadowOfWar.exe
Version:
Date : 2017-10-12
Author : SeiKur0
This script does blah blah blah
}
[ENABLE]
aobscanmodule(fov,ShadowOfWar.exe,0F 28 D8 8B 08 89 8B)
alloc(newmem_fov,$1000,fov)
label(return)
label(limit)
registersymbol(new_fov)
label(new_fov)
newmem_fov:
movaps xmm3,xmm0
mov ecx,[rax]
movss xmm0,[rax+04]//real value
movss xmm2,[new_fov+4]//min value
movss xmm1,[new_fov] //new max value
ucomiss xmm0,xmm1 //beyond new max value no scaling
ja return
ucomiss xmm2,xmm0 //below min value no scaling
ja return
movss xmm1,[new_fov+8]//old max value
ucomiss xmm0,xmm1 //between old max and new max everything should go to the new max
ja limit
subss xmm0,xmm2
subss xmm1,xmm2
divss xmm0,xmm1
movss xmm1,[new_fov]
subss xmm1,xmm2
mulss xmm0,xmm1
addss xmm0,xmm2
movss [rax+04],xmm0
jmp return
limit:
movss xmm1,[new_fov]
movss [rax+04],xmm1
jmp return
new_fov:
dd (float)1.3//new max
dd (float)0.5236//min (30°) slightly higher
dd (float)0.6980 //max (40°) slightly lower
dd (float)0.0
fov:
jmp newmem_fov
return:
registersymbol(fov)
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
fov:
db 0F 28 D8 8B 08
unregistersymbol(fov)
unregistersymbol(new_fov)
dealloc(newmem_fov)
{
// ORIGINAL CODE - INJECTION POINT: "ShadowOfWar.exe"+42A5EF
"ShadowOfWar.exe"+42A5C3: 4C 8D 40 C8 - lea r8,[rax-38]
"ShadowOfWar.exe"+42A5C7: 0F 57 C0 - xorps xmm0,xmm0
"ShadowOfWar.exe"+42A5CA: 48 8D 48 08 - lea rcx,[rax+08]
"ShadowOfWar.exe"+42A5CE: 0F 57 D2 - xorps xmm2,xmm2
"ShadowOfWar.exe"+42A5D1: 48 8D 50 E0 - lea rdx,[rax-20]
"ShadowOfWar.exe"+42A5D5: 0F 28 D9 - movaps xmm3,xmm1
"ShadowOfWar.exe"+42A5D8: F3 0F 7F 40 E0 - movdqu [rax-20],xmm0
"ShadowOfWar.exe"+42A5DD: F3 0F 7F 50 C8 - movdqu [rax-38],xmm2
"ShadowOfWar.exe"+42A5E2: E8 E9 21 DF FF - call ShadowOfWar.exe+21C7D0
"ShadowOfWar.exe"+42A5E7: F3 0F 10 05 C1 A4 87 01 - movss xmm0,[ShadowOfWar.exe+1CA4AB0]
// ---------- INJECTING HERE ----------
"ShadowOfWar.exe"+42A5EF: 0F 28 D8 - movaps xmm3,xmm0
"ShadowOfWar.exe"+42A5F2: 8B 08 - mov ecx,[rax]
// ---------- DONE INJECTING ----------
"ShadowOfWar.exe"+42A5F4: 89 8B 80 06 00 00 - mov [rbx+00000680],ecx
"ShadowOfWar.exe"+42A5FA: 8B 40 04 - mov eax,[rax+04]
"ShadowOfWar.exe"+42A5FD: 89 83 84 06 00 00 - mov [rbx+00000684],eax
"ShadowOfWar.exe"+42A603: F3 0F 10 83 84 06 00 00 - movss xmm0,[rbx+00000684]
"ShadowOfWar.exe"+42A60B: 0F 28 D0 - movaps xmm2,xmm0
"ShadowOfWar.exe"+42A60E: F3 0F 10 83 80 06 00 00 - movss xmm0,[rbx+00000680]
"ShadowOfWar.exe"+42A616: 0F 28 C8 - movaps xmm1,xmm0
"ShadowOfWar.exe"+42A619: F3 0F 5F D3 - maxss xmm2,xmm3
"ShadowOfWar.exe"+42A61D: F3 0F 5F CB - maxss xmm1,xmm3
"ShadowOfWar.exe"+42A621: F3 0F 11 93 84 06 00 00 - movss [rbx+00000684],xmm2
}
196
"new FOV (Rad)"
Float
new_fov