вызов внешней dll на ассемблере (обратный инжиниринг)
У меня есть exe-файл игры, в которую я хотел бы добавить некоторую реализацию.
Для этого мне нужно добавить в ассемблер "прыжок", который выполняет функцию из внешней dll.
Мне нужно добавить скачок внутри функции:
int __cdecl sub_43AC70(char *a1, int a2)
{
call my_function(a1) from mylibrary.dll
int i; // [esp+0h] [ebp-4h]
for ( i = sub_43BC50(); i; i = *(_DWORD *)i )
{
if ( *(_DWORD *)(i + 88) == a2 && (!a1 || !stricmp((const char *)(i + 4), a1)) )
return i;
}
return 0;
У меня нет опыта работы с ассемблером и я не знаю, насколько сложно добавить этот прыжок.
На данный момент я нашел этот учебник:
https://www.youtube.com/watch?v=80bjkJcCQO4&feature=emb_logo
которые выполняют внешний exe, это не совсем то, что мне нужно...
Однако, если есть способ выполнить внешний exe из командной строки с параметром:
вызовите myprogram.exe -a1
в ассемблере может быть компромиссом, поэтому вместо создания dll с параметром я могу создать командную строку с параметром, оба являются хорошим решением.
Подскажите, пожалуйста, код сборки, который выполняет функцию с параметром из внешней библиотеки dll или выполняет внешнюю командную строку с параметром?
Благодарность!