Как мне выполнить файл * .dll - PullRequest
25 голосов
/ 15 июня 2010

У меня есть файл DLL, и я хочу выполнить его в Windows. Я получил эту DLL с сайта Challenge, который утверждает, что DLL должна выполняться независимо.

Ответы [ 8 ]

37 голосов
/ 15 июня 2010

Чтобы запустить функции в DLL, сначала выясните, какие функции используют любая аналитическая программа PE ( Portable Executable ) (например, Dependency Walker ).Затем используйте RUNDLL32.EXE с этим синтаксисом :

 RUNDLL32.EXE <dllname>,<entrypoint> <optional arguments>

dllname - это путь и имя вашего dll-файла, точка входа - это имя функции, а необязательные аргументыаргументы функции

5 голосов
/ 15 июня 2010

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

2 голосов
/ 23 сентября 2016

Хотя многие отмечают, что вы не можете напрямую выполнять dll и должны использовать вместо этого rundll32.exe для выполнения экспортированных функций, ниже приведен скриншот реального файла dll, работающего так же, как исполняемый файл:

enter image description here

Хотя вы не можете запускать файлы dll напрямую, я подозреваю, что возможно запустить их из другого процесса, используя функцию WinAPI CreateProcess:

https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx

0 голосов
/ 03 ноября 2018

Следует отметить, что, поскольку можно полностью запускать DLL, как и любой другой исполняемый файл, это уже давно считается проблемой безопасности.Таким образом, произошел ряд улучшений безопасности и взломов реестра (извините, у меня больше нет ссылок на ссылки), которые мешают запускать DLL из обычного пространства пользователя без дополнительных привилегий.

Как хороший пример.Я вспоминаю, как делал эти хаки, но так как уже не помню, что именно я делал.Я больше не могу запускать какие-либо библиотеки DLL из обычной среды оболочки пользователя, даже несмотря на то, что запуск различных приложений Win из графического интерфейса работает нормально.

При этом обязательно нужно прочитать " Безопасность библиотеки Dynamic-Link "и" Рекомендации по предотвращению перехвата DLL".

0 голосов
/ 09 сентября 2016

Для запуска .dll-файла. Сначала выясните, какие функции он экспортирует. функции, указанные в категории экспорта. Чтобы узнать, какую функцию экспортирует, обратитесь к «filealyzer» Приложение .. Он покажет вам функцию экспорта в категории "PE EXPORT". имя функции-- Затем откройте командную строку, введите Rullll32 dllname, имя функции (dllname - имя вашей dll) (Имя функции - имя функции, которую вы нашли в Экспорт PE) Примечание. Убедитесь, что в качестве местоположения командной строки используется местоположение файла DLL

0 голосов
/ 26 февраля 2015

Вы не можете "выполнить" DLL. Вы можете выполнять функции внутри DLL, как объяснено в других ответах. Хотя файлы .EXE и .DLL по сути одинаковы по формату, отличительной особенностью .EXE является то, что он содержит обозначенную «точку входа», чтобы идти и делать то, для чего был создан EXE-файл. Библиотеки DLL на самом деле имеют что-то похожее, но цель "dll main" - просто выполнить инициализацию, а не выполнить основную цель DLL; то есть для (предположительно) различных других функций, которые он содержит.

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

0 голосов
/ 30 сентября 2013

Может быть полезен следующий ряд шагов:

  1. Откройте проводник Windows
  2. В верхнем левом углу нажмите «Организовать»
  3. выберите «Папка»и параметры поиска "
  4. Переключитесь на вкладку" Вид "
  5. Прокрутите вниз и снимите флажок" Скрыть расширения файлов для известных типов файлов "
  6. Нажмите OK
  7. Теперь найдите файл dll
  8. Щелкните правой кнопкой мыши на нем и выберите «Переименовать»
  9. Измените расширение (которое следует за последним .) и измените его на .exe
0 голосов
/ 15 июня 2010

.DLL-файлы не являются исполняемыми в том смысле, что .EXE / .COM / .BAT-файлы являются исполняемыми, поэтому я не уверен, что вы имеете в виду.

Вы можете использовать приложение Dependency Walker, поставляемое с Windows SDK, для опроса .DLL и просмотра функций, экспортируемых файлом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...