@daniman
Yep, same here. Sorry, I was a little tired and I made several things at the same time, so I could not test it properly. Here, this one should be ok.
Code: Select all
[ENABLE]
aobscan(InfHP,F3 0F 11 28 48 8B 86 68 01 00 00)
alloc(newmem,$100,43F04514)
label(code)
label(return)
newmem:
cmp [rax+3A],00610046
jne code
movss [rax],xmm2
mov rax,[rsi+00000168]
jmp return
code:
movss [rax],xmm5
mov rax,[rsi+00000168]
jmp return
InfHP:
jmp newmem
nop
nop
nop
nop
nop
nop
return:
registersymbol(InfHP)
[DISABLE]
+InfHP:
db F3 0F 11 28 48 8B 86 68 01 00 00
unregistersymbol(InfHP)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: 43F04514
""+43F044E8: F3 0F 11 6D F0 - movss [rbp-10],xmm5
""+43F044ED: 48 8B 86 68 01 00 00 - mov rax,[rsi+00000168]
""+43F044F4: 33 C9 - xor ecx,ecx
""+43F044F6: F3 0F 10 45 F0 - movss xmm0,[rbp-10]
""+43F044FB: F3 0F 5A C0 - cvtss2sd xmm0,xmm0
""+43F044FF: 48 63 C9 - movsxd rcx,ecx
""+43F04502: 39 48 18 - cmp [rax+18],ecx
""+43F04505: 0F 86 77 02 00 00 - jbe Pathea.ActorNs:Actor:ValidateValue+422
""+43F0450B: 48 8D 44 88 20 - lea rax,[rax+rcx*4+20]
""+43F04510: F2 0F 5A E8 - cvtsd2ss xmm5,xmm0
// ---------- INJECTING HERE ----------
""+43F04514: F3 0F 11 28 - movss [rax],xmm5
""+43F04518: 48 8B 86 68 01 00 00 - mov rax,[rsi+00000168]
// ---------- DONE INJECTING ----------
""+43F0451F: B9 01 00 00 00 - mov ecx,00000001
""+43F04524: 48 63 C9 - movsxd rcx,ecx
""+43F04527: 39 48 18 - cmp [rax+18],ecx
""+43F0452A: 0F 86 4B 02 00 00 - jbe Pathea.ActorNs:Actor:ValidateValue+41b
""+43F04530: 48 8D 44 88 20 - lea rax,[rax+rcx*4+20]
""+43F04535: F3 0F 10 00 - movss xmm0,[rax]
""+43F04539: F3 0F 5A C0 - cvtss2sd xmm0,xmm0
""+43F0453D: F2 0F 5A E8 - cvtsd2ss xmm5,xmm0
""+43F04541: F3 0F 11 6D F0 - movss [rbp-10],xmm5
""+43F04546: F3 0F 10 45 F0 - movss xmm0,[rbp-10]
}