Когда я вызываю функцию (эта функция использует функцию в качестве некоторых аргументов) в программе с внедренной dll, она не работает, как запланировано, с помощью __asm.
Я попробовал следующий код в (imдаже не уверен, должен ли он там быть)
DLL_PROCESS_ATTACH
Я положил
_asm
{
push 0;
push 0x005D0260; //1
push 0x005D0270; //2
push 0x005D01E0; //3
push 0x005D02B0; //4
push 0x005D02B0; //5
mov ecx, 0x007288E0; //6
call 0x004B6520; //7
}
1-4 - это адреса к функциям 5 - это char Studio 6 - это unk_7288E0, а 7 - это функцияЯ пытаюсь позвонить
Я также попробовал следующие
push 0;
push 0x005D0260;
push 0x005D0270;
push 0x005D01E0;
push 0x005D02B0;
push "Studio";
mov ecx, 0x007288E0;
call 0x004B6520;
1-4 - адреса к функциям
Я ожидал, что он выполнит следующий код
Main::runCodes_Register(
&unk_7288E0, //0x007288E0
aStudio, //0x005D02B0
(int)unknown_libname_388, //0x005D02B0
(int)Studio::Init, //0x005D01E0
(int)Studio::Done, //0x005D0270
(int)Studio::PostInit, //0x005D0260
0);
но вместо этого я ничего не получаю - программа просто сворачивается и ломает все, и я проверил все адреса, и ни одна из функций не требует аргументов, кроме Register one
Когда я имею в виду сворачивание самого себя, я имею в виду, что это приводит к сбою всей программы. Я знаю, что у него нет никакой защиты, потому что я могу вводить другие dll, используя в них __asm