Code: Select all
{
Process : mgsvtpp.exe - (x64)
Module : mgsvtpp.exe
Game Title : Metal Gear Solid 5 Phantom Pain
Game Version : 1.0.12.0
CE Version : 6.7
Script Version : 0.0.1
Date : 01/19/18
Author : ShyTwig16
Name : HealthWrtHook
Health Wrt Hook
39xx0F47xx89xx35xxxxxxxx81xxxxxxxxxx41xxxxxx41xxxxxxB8xxxxxxxx66xxxxxx0F2FxxF3xxxxxxF3xxxxxxxx0F93xxF3xxxxxxxx0F2Fxx73xx0F28xx0F28xxF3xxxxxx0F2Fxx73xx0F28xx0F2FxxF3xxxxxxF3xxxxxxxx77xxB9xxxxxxxx66xxxxxx74xx41xxxxxxxxxxxxxxxx
3Bxx0F47xx8Bxx35xxxxxxxx81xxxxxxxxxx41xxxxxx41xxxxxxB8xxxxxxxx66xxxxxx0F2FxxF3xxxxxxF3xxxxxxxx0F93xxF3xxxxxxxx0F2Fxx
3xxx0F47xx8xxx35xxxxxxxx81xxxxxxxxxx41xxxxxx41xxxxxxB8xxxxxxxx66xxxxxx0F2FxxF3xxxxxxF3xxxxxxxx0F93xxF3xxxxxxxx0F2Fxx
}
{$STRICT}
define(address, mgsvtpp.exe+411FD3A)
// define(bytes, F3 0F 10 0E F3 0F 10 5E 04)
define(bytes, F3 0F 10 0F F3 0F 10 5F 04)
////
//// ------------------------------ ENABLE ------------------------------
[ENABLE]
aobScanModule(aobHealthWrtHook, mgsvtpp.exe, 3xxx0F47xx8xxx35xxxxxxxx81xxxxxxxxxx41xxxxxx41xxxxxxB8xxxxxxxx66xxxxxx0F2FxxF3xxxxxxF3xxxxxxxx0F93xxF3xxxxxxxx0F2Fxx)
// i2AobScan(aobHealthWrtHook, 3xxx0F47xx8xxx35xxxxxxxx81xxxxxxxxxx41xxxxxx41xxxxxxB8xxxxxxxx66xxxxxx0F2FxxF3xxxxxxF3xxxxxxxx0F93xxF3xxxxxxxx0F2Fxx)
define(injHealthWrtHook, aobHealthWrtHook+26)
assert(injHealthWrtHook, bytes)
// i2Assert(injHealthWrtHook, bytes)
registerSymbol(injHealthWrtHook)
alloc(memHealthWrtHook, 0x400, injHealthWrtHook)
label(ptrHealthWrtHook)
registerSymbol(ptrHealthWrtHook)
label(n_code)
label(o_code)
label(exit)
label(return)
memHealthWrtHook:
dd (float)0
align 10
ptrHealthWrtHook:
dq 0
align 10 CC
n_code:
mov [ptrHealthWrtHook],rdi
movss xmm1,[rdi+04]
movss xmm3,[rdi+04]
movss xmm8,[memHealthWrtHook]
o_code:
// movss xmm1,[rdi] // movss xmm1,[rsi]
// movss xmm1,[rdi+04] // movss xmm3,[rsi+04]
exit:
jmp return
////
//// ---------- Injection Point ----------
injHealthWrtHook:
jmp n_code
nop
nop
nop
nop
return:
////
//// ------------------------------ DISABLE ------------------------------
[DISABLE]
////
//// ---------- Injection Point ----------
injHealthWrtHook:
db bytes
unregisterSymbol(injHealthWrtHook)
unregisterSymbol(ptrHealthWrtHook)
dealloc(memHealthWrtHook)
{
//// Injection Point: mgsvtpp.exe+411FD3A - 000000014411FD3A
//// AOB address: 000000014411FD14 - mgsvtpp.exe+411FD14
//// Process: mgsvtpp.exe - 0000000140000000
//// Module: mgsvtpp.exe - 0000000140000000
//// Module Size: 0000000008434000
mgsvtpp.exe+411FCE9: 0F47 C8 - cmova ecx,eax
mgsvtpp.exe+411FCEC: 89 C8 - mov eax,ecx
mgsvtpp.exe+411FCEE: 81 F1 ACD5FB94 - xor ecx,94FBD5AC
mgsvtpp.exe+411FCF4: 35 2FEA9DB4 - xor eax,B49DEA2F
mgsvtpp.exe+411FCF9: 41 89 4E 3C - mov [r14+3C],ecx
mgsvtpp.exe+411FCFD: 41 8B 4E 04 - mov ecx,[r14+04]
mgsvtpp.exe+411FD01: 41 89 46 08 - mov [r14+08],eax
mgsvtpp.exe+411FD05: 41 8B 46 0C - mov eax,[r14+0C]
mgsvtpp.exe+411FD09: 81 F1 2FEA9DB4 - xor ecx,B49DEA2F
mgsvtpp.exe+411FD0F: 35 2FEA9DB4 - xor eax,B49DEA2F
mgsvtpp.exe+411FD14: 39 C8 - cmp eax,ecx <<<--- AOB Starts Here
mgsvtpp.exe+411FD16: 0F47 C8 - cmova ecx,eax
mgsvtpp.exe+411FD19: 89 C8 - mov eax,ecx
mgsvtpp.exe+411FD1B: 35 2FEA9DB4 - xor eax,B49DEA2F
mgsvtpp.exe+411FD20: 81 F1 ACD5FB94 - xor ecx,94FBD5AC
mgsvtpp.exe+411FD26: 41 89 4E 40 - mov [r14+40],ecx
mgsvtpp.exe+411FD2A: 41 89 46 0C - mov [r14+0C],eax
mgsvtpp.exe+411FD2E: B8 00100000 - mov eax,00001000
mgsvtpp.exe+411FD33: 66 09 43 22 - or [rbx+22],ax
mgsvtpp.exe+411FD37: 0F2F 36 - comiss xmm6,[rsi]
//// INJECTING START ----------------------------------------------------------
mgsvtpp.exe+411FD3A: F3 0F10 0E - movss xmm1,[rsi]
mgsvtpp.exe+411FD3E: F3 0F10 5E 04 - movss xmm3,[rsi+04]
//// INJECTING END ----------------------------------------------------------
mgsvtpp.exe+411FD43: 0F93 D0 - setae al
mgsvtpp.exe+411FD46: F3 41 0F5C C8 - subss xmm1,xmm8
mgsvtpp.exe+411FD4B: 0F2F CE - comiss xmm1,xmm6
mgsvtpp.exe+411FD4E: 73 03 - jae 14411FD53
mgsvtpp.exe+411FD50: 0F28 CE - movaps xmm1,xmm6
mgsvtpp.exe+411FD53: 0F28 C3 - movaps xmm0,xmm3
mgsvtpp.exe+411FD56: F3 0F5C C1 - subss xmm0,xmm1
mgsvtpp.exe+411FD5A: 0F2F C6 - comiss xmm0,xmm6
mgsvtpp.exe+411FD5D: 73 03 - jae 14411FD62
mgsvtpp.exe+411FD5F: 0F28 CB - movaps xmm1,xmm3
mgsvtpp.exe+411FD62: 0F2F CE - comiss xmm1,xmm6
mgsvtpp.exe+411FD65: F3 0F11 0E - movss [rsi],xmm1
mgsvtpp.exe+411FD69: F3 45 0F58 D8 - addss xmm11,xmm8
mgsvtpp.exe+411FD6E: 77 14 - ja 14411FD84
mgsvtpp.exe+411FD70: B9 00200000 - mov ecx,00002000
mgsvtpp.exe+411FD75: 66 85 4B 22 - test [rbx+22],cx
mgsvtpp.exe+411FD79: 74 09 - je 14411FD84
mgsvtpp.exe+411FD7B: 41 83 8C 24 B4000000 04 - or dword ptr [r12+000000B4],04
mgsvtpp.exe+411FD84: 45 30 F6 - xor r14l,r14l
//// Template: I2CEA_AOBFullInjection
//// Generated with: I2 Cheat Engine Auto Assembler Script Template Generator
//// Code Happy, Code Freely, Be Awesome.
}
{
mgsvtpp.exe+11F2259 - 3B C1 - cmp eax,ecx
mgsvtpp.exe+11F225B - 0F47 C8 - cmova ecx,eax
mgsvtpp.exe+11F225E - 8B C1 - mov eax,ecx
mgsvtpp.exe+11F2260 - 35 2FEA9DB4 - xor eax,B49DEA2F
mgsvtpp.exe+11F2265 - 81 F1 ACD5FB94 - xor ecx,94FBD5AC
mgsvtpp.exe+11F226B - 41 89 4F 40 - mov [r15+40],ecx
mgsvtpp.exe+11F226F - 41 89 47 0C - mov [r15+0C],eax
mgsvtpp.exe+11F2273 - B8 00100000 - mov eax,00001000
mgsvtpp.exe+11F2278 - 66 09 43 22 - or [rbx+22],ax
mgsvtpp.exe+11F227C - 0F2F 37 - comiss xmm6,[rdi]
mgsvtpp.exe+11F227F - F3 0F10 0F - movss xmm1,[rdi]
mgsvtpp.exe+11F2283 - F3 0F10 5F 04 - movss xmm3,[rdi+04]
mgsvtpp.exe+11F2288 - 0F93 C0 - setae al
mgsvtpp.exe+11F228B - F3 41 0F5C C8 - subss xmm1,xmm8
mgsvtpp.exe+11F2290 - 0F2F CE - comiss xmm1,xmm6
mgsvtpp.exe+11F2293 - 73 03 - jae mgsvtpp.exe+11F2298
mgsvtpp.exe+11F2295 - 0F28 CE - movaps xmm1,xmm6
mgsvtpp.exe+11F2298 - 0F28 C3 - movaps xmm0,xmm3
mgsvtpp.exe+11F229B - F3 0F5C C1 - subss xmm0,xmm1
mgsvtpp.exe+11F229F - 0F2F C6 - comiss xmm0,xmm6
mgsvtpp.exe+11F22A2 - 73 03 - jae mgsvtpp.exe+11F22A7
}