ASM: вызов DLL - PullRequest
       15

ASM: вызов DLL

0 голосов
/ 13 июня 2011

Я разобрал игровую DLL и хочу вставить код.Мне нужен код asm для вызова другой DLL в текущем каталоге (я на Windows).Фоном является то, что я хочу иметь возможность выполнять пользовательский код в моей DLL, но я не могу загрузить DLL.Поэтому моя идея состояла в том, чтобы загрузить DLL через измененную игровую DLL.

В игре может быть функция, которая дает мне текущий путь к каталогу, в котором находятся DLL, но я думаю, что не найду его.

Ответы [ 2 ]

3 голосов
/ 13 июня 2011

Microsoft Detours поставляется с setdll.exe и withdll.exe, эти утилиты позволят вам запустить exe с пользовательским файлом dll.

3 голосов
/ 13 июня 2011

Вы ищете следующие вызовы: LoadLibrary , который будет искать в выбранных местах, включая текущий каталог для DLL, а затем загружать ее, затем GetProcAddress .

Если DLL делает любые другие вызовы Win32, она, вероятно, уже связана с kernel32.dll, так что это все, что вам нужно сделать.

Можно утверждать, является ли изменение DLL или использование DLL-инъекция более быстрым с точки зрения того, сколько времени потребуется для написания кода, поскольку вам в любом случае придется выполнить обратный инжиниринг, однако один Преимущество чистого внедрения DLL заключается в том, что весь существующий код остается неизменным с точки зрения установки, что упрощает отмену этих изменений в случае, если пользователь захочет «отсоединить» все, что вы делаете.

...