Да, я уже хукнул в начале функи и сделал вызов орига в конце (правда не смотрел работает ли он), вот так, чтобы удостоверится работает ли это, сделал вывод обычный в консоль, оно работает
typedef unsigned long long(*OTVC)(unsigned long long rcx, unsigned long long rdx, unsigned long long r8, unsigned long long r9);
unsigned long long OnTeamVisibilityChange_pattern = 0;
C_ConsoleMessage ConsoleMessage;
unsigned long long hkOTVC(unsigned long long rcx, unsigned long long rdx, unsigned long long r8, unsigned long long r9)
{
for(int i = 0; i < 10; i++)
{
if (rcx == LocalEnt)
{
ConsoleMessage.CMSG("LocalEnt\n");
Visible = (*(int*)r8 == 14 || *(int*)r8 == 30);
break;
}
else
{
ConsoleMessage.CMSG("Wrond Entity\n");
}
}
OTVC origin = (OTVC)OnTeamVisibilityChange_pattern;
return origin(rcx, rdx, r8, r9);
}
На цикл там не смотри, херню написал :))
ну кароче ты можешь делать все что угодно, исследуй, можешь даже без дллки хукать чисто в дебагере
сначала ставишь на паузу приложение в дебагере(там кнопка на панели там где старт стоп рестарт там и пауза есть), потом заходишь в Memory Map, там по пустому месту пкм, Allocate Memory, записываешь себе адрес куда-нибудь, потом в самой функе которую хукаешь просто нажимаешь пкм->Assemble(пробел), вводишь туда mov rax, [твой_адрес] и jmp rax.
твой_адрес это указатель на кусок твоего региона который ты аллоцировал, в этом куске региона в 8байтовую ячейку запиши начало своего хука
и в начале своего хука собираешь оригинальные инструкции которые ты затер, потом ради теста снова mov rax, [твой_адрес_2] и jmp rax
твой_адрес2 это указатель на кусок твоего региона в котором указатель на оригинал+12(ну то место которое идет после того хука)
типа
вкладка CPU:
My_Region:
<original_instrukcii>
mov rax, [My_Region+108]
jmp rax
окно Dump где ты собственно и записываешь данные:
My_Region+100(твой_адрес) My_Region
My_Region+108(твой_адрес_2) Original+12
в итоге оригинал функция считывает с My_Region+100 и прыгает туда
а это My_Region. она выполняет оттуда оригинал инстуркции и потом считывает с My_Region+108, а там оригинал+12
вот пример чистого хука просто с возвратом в оригинал без какого-либо лога или еще чего-то в самом дебагере