2010-06-15 3 views
19

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

+2

«Это я, Леклерк» – Galwegian

+3

Если вам сказали, чтобы выполнить его, спросите людей, которые дали это вам, а не нам. – 2010-06-15 10:54:01

+0

@Galwegian +10 для Allo Allo шутка. – Salgar

ответ

26

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

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

DllName путь и имя файла DLL, EntryPoint это имя функции, и необязательные аргументы аргументы функции

0

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

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

+0

см. Отредактированный пост ... – vs4vijay

+3

DLL как исполняемые файлы EXE. Они оба основаны на формате PE и фактически отличаются только одним битом. – Ron

4

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

-4

Следующая последовательность действий может быть полезно:

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

некоторые детали могут пропустить на основе предположения. Действительное предположение, потому что, поскольку пользователь смог опубликовать этот вопрос и использовать компьютер и интернет, поэтому «это он должен знать». Ссылаясь на «щелчок правой кнопкой мыши» и «выберите переименование», щелкните ok и т. Д. –

+0

Хотя сам вопрос содержит слово «выполнить», он не ссылается на преобразование dll в exe - с минимальными усилиями. Вещи просто не работают, изменяя расширение и наблюдая, как происходит волшебство. Выполнение означает вызов метода в dll. Вот почему я дал -1. – ozanmuyes

+0

По той же причине, чем выше. Цель состоит в том, чтобы понять dll, а не пытаться по волшебству отойти от него. –

0

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

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

0

Чтобы запустить .dll file..First выяснить, какие функции она exporting..Dll файлы Выполнение выражений функций, указанных в Экспортно Category..To знать, какие функции он Экспорт см «FileAlyzer» Application .. Он покажет вам функцию экспорта в разделе «PE EXPORT».Notedown функции name-- Затем откройте командную строку, введите Rundll32 DllName, FunctionName (DllName - имя вашей DLL) (Functionname-- имя функции, которую вы нашли под PE экспорта) Примечания: Makesure что ваше местоположение командной строки - это местоположение вашего dll-файла.

0

Хотя многие люди указали, что вы не можете выполнять 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

Смежные вопросы