UPD.
Проблему решил взяв другую инструкцию, почему-то именно в этой у меня не работало сравнение и просто приводило к крашу.
UPD.
Проблему решил взяв другую инструкцию, почему-то именно в этой у меня не работало сравнение и просто приводило к крашу.
UPD.
Проблему решил взяв другую инструкцию, почему-то именно в этой у меня не работало сравнение и просто приводило к крашу.
@Partizan1078 Пробывал, результат тот же. Я сейчас вручную поставил в next единицу, работает, но если там два числа что не равны друг другу - крашит. Думал из-за того что в dd передаю rax а не eax, но нет.
Вкратце опишу.
У меня при сравнение [next] с 0, всё нормально работает, но стоит мне написать сравнение с 1 или больше, когда в [next] лежит 0, почему-то вместо jne code у меня крашит игру, хотя должно просто перебросить в оригинальный код.
В чём я ошибся?
[ENABLE]
aobscanmodule(myCord,UnityPlayer.dll,0F 28 40 10 41 0F 54 C2 0F 58 D8 0F 28 C3 F3 0F 11 5C)
aobscanmodule(metka,UnityPlayer.dll,39 41 34 76 06)
registersymbol(myCord)
registersymbol(metka)
registersymbol(next)
alloc(newmem,$1000,myCord)
label(newmem_metka)
label(code)
label(return)
label(code_metka)
label(return_metka)
label(x_1)
label(y_1)
label(z_1)
label(x_2)
label(y_2)
label(z_2)
//1
newmem:
cmp dword ptr [next],0
je jumps_1
jne code
jumps_1:
movss xmm5,[x_1]
movss [rax+10],xmm5
movss xmm6,[y_1]
movss [rax+14],xmm6
movss xmm7,[z_1]
movss [rax+18],xmm7
cmp dword ptr [next],1
je jumps_2
jne code
jumps_2:
movss xmm5,[x_2]
movss [rax+10],xmm5
movss xmm6,[y_2]
movss [rax+14],xmm6
movss xmm7,[z_2]
movss [rax+18],xmm7
jmp code
code:
movaps xmm0,[rax+10]
andps xmm0,xmm10
jmp return
//2
newmem_metka:
mov rax,[rcx+34]
mov [next],rax
code_metka:
cmp [rcx+34],eax
jna UnityPlayer.dll+FC015B
jmp return_metka
//3
next:
dd 0
x_1:
dq (float)-0.4942475855
y_1:
dq (float)1.800000072
z_1:
dq (float)12.02723598
x_2:
dq (float)12.224123
y_2:
dq (float)1.800000072
z_2:
dq (float)-0.09221532196
//4
metka:
jmp newmem_metka
return_metka:
myCord:
jmp newmem
nop 3
return:
[DISABLE]
myCord:
db 0F 28 40 10 41 0F 54 C2
metka:
db 39 41 34 76 06
unregistersymbol(myCord)
unregistersymbol(metka)
unregistersymbol(next)
dealloc(newmem)