вызов внешней 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 или выполняет внешнюю командную строку с параметром?

Благодарность!

0 ответов

Другие вопросы по тегам