2010-06-15 31 views
19

Tengo un archivo DLL y quiero ejecutarlo en Windows. Obtuve esta DLL desde un sitio de Challenge que alega que la DLL debe ejecutarse de forma independiente.Cómo ejecuto un archivo * .dll

+2

"Soy yo, Leclerc" – Galwegian

+3

Si le han indicado para ejecutarlo, pregunte a las personas que se lo dieron, no a nosotros. –

+0

@Galwegian +10 para la broma de Allo Allo. – Salgar

Respuesta

26

Para ejecutar las funciones en una DLL, primero descubra cuáles son esas funciones que están usando cualquier programa de análisis PE (Portable Executable) (por ejemplo, Dependency Walker). A continuación, utilice RUNDLL32.EXE con this syntax:

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

dllname es la ruta y el nombre de su archivo DLL, punto de entrada es el nombre de la función, y los argumentos opcionales son los argumentos de la función

0

.Los archivos .DLL no son ejecutables en el sentido de que los archivos .EXE/.COM/.BAT son ejecutables, por lo que no estoy seguro de lo que quiere decir.

Puede utilizar la aplicación Dependency Walker que viene con el SDK de Windows para interrogar a un .DLL y ver qué funciones exporta el archivo.

+0

ver la publicación editada ... – vs4vijay

+3

Las DLL son tan ejecutables como los archivos EXE. Ambos están basados ​​en formato PE y en realidad solo difieren en un solo bit. – Ron

4

puede ejecutar una función definida en una Archivo DLL utilizando el comando rundll. Puede explorar las funciones disponibles usando Dependency Walker.

-4

La siguiente serie de pasos podría ser útil:

  1. Abra el Explorador de Windows
  2. En la esquina superior izquierda, haga clic en "Organizar"
  3. seleccione "Opciones de carpeta y búsqueda"
  4. conmutador a la pestaña "Ver"
  5. Desplácese hacia abajo y desmarque "Ocultar extensiones de archivo para tipos de archivos conocidos"
  6. Haga clic en Aceptar
  7. Ahora encontrar el archivo dll
  8. Haga clic derecho sobre él y seleccione "Cambiar nombre"
  9. cambiar la extensión (lo que viene después de la última .) y el cambio a .exe
+1

se pueden omitir algunos detalles sobre la base de suposiciones. Hipótesis válida porque el usuario pudo publicar esta pregunta y usar una computadora e Internet, por lo tanto, "esto debería saber". Al hacer referencia con "clic derecho" y "seleccionar cambio de nombre", haga clic en Aceptar, etc. –

+0

Aunque la pregunta en sí contiene la palabra "ejecutar", no se refiere a convertir un dll en exe -con un esfuerzo mínimo-. Las cosas simplemente no funcionan así, cambiando una extensión y viendo cómo sucede la magia. Ejecución significa invocar un método en el dll. Es por eso que di -1. – ozanmuyes

+0

La misma razón que la anterior. El propósito es comprender dll, no intentar por arte de magia alejarse de él. –

0

no se puede " ejecutar "una DLL". Puede ejecutar funciones dentro de la DLL, como se explica en las otras respuestas. Aunque los archivos .EXE y .DLL son esencialmente idénticos en términos de formato, la característica distintiva de un .EXE es que contiene un "punto de entrada" designado para ir y hacer aquello para lo que se creó el EXE. Las DLL en realidad tienen algo similar, pero el propósito de la "DLL principal" es solo realizar la inicialización y no cumplir el propósito principal de la DLL; eso es para (presumiblemente) varias otras funciones que contiene.

Puede ejecutar cualquiera de las funciones exportadas por una DLL, suponiendo que sabe cuál quiere ejecutar; un EXE puede contener una gran cantidad de funciones, pero una y solo una está especialmente diseñada para ejecutarse simplemente "ejecutándola".

0

para ejecutar un .dll file..First averiguar cuáles son las funciones que se van a archivos exporting..Dll excecute las funciones especificadas en el Category..To exportación saber qué función es la exportación se refiere "FileAlyzer" Aplicación .. Le mostrará la función de exportación en la categoría "PE EXPORT".Notedown la función nombre-- continuación, abra el símbolo del sistema, dllname Tipo Rundll32, functionname (dllname - nombre de la DLL) (nombre Functionname-- de la función que encontrar bajo la Exportación PE) Nota: makesure que la ubicación del símbolo del sistema es la ubicación del archivo dll

0

Si bien muchas personas han señalado que no se pueden ejecutar dlls directamente y deben usar rundll32.exe para ejecutar funciones exportadas, aquí hay una captura de pantalla de un archivo dll real ejecutando como un ejecutable:

enter image description here

Aunque no se puede ejecutar directamente los archivos DLL, sospecho que es posible ejecutarlos desde otro proceso utilizando una función API de Windows de CreateProcess:

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

Cuestiones relacionadas