Я пытаюсь изучить несколько различных методов вызова функций по адресу.
bool gl_draw_text(uint x, uint y, uint color, uint alpha, char *fmt);
Эта функция - то, что я называю. Вот как я сейчас это называю. (И это прекрасно работает.)
static void glDrawText(char* text, int x, int y)
{
DWORD func = 0x10057970;
__asm
{
push text
push 255
push 14
push y
push x
call dword ptr [func]
}
}
Вот метод, который я хочу использовать.
void Hack()
{
bool (draw*)(uint, uint, uint, uint, char*);
draw = 0x10057970;
(draw)(20, 20, 14, 255, "Text");
}
Но я не знаю, как правильно привести адрес к функции, чтобы она работала \ компилировалась.
Есть также метод, который использует виртуальную функцию, мне интересно, как этот метод работает тоже. (Я также могу использовать MS Detours, чтобы перехватить, а затем вызвать такую функцию, как этот метод работает за сценой, если вы знаете.)
Итак, чтобы быть ясным, я просто спрашиваю о различных методах выполнения этой задачи, но перечислил несколько, которые мне интересны после прочтения о них и т. Д.,