¿Cómo abrir archivos .dll para ver qué está escrito en su interior?

96

Perdí la solución de class-library, ¿puedo abrir el .dllarchivo creado por class-library.

Buzar
fuente
10
Reflector ......
Mitch Wheat
23
DotPeek .........
gastador
7
Además: intente usar el control de código fuente ...
Mitch Wheat
1
posible duplicado de DLL
Daniel Powell

Respuestas:

34

Siga los pasos a continuación ...

  1. Vaya al menú Inicio.
  2. Escriba Visual Studio Tool.
  3. Vaya a la carpeta de arriba.
  4. Haga clic en "Símbolo del sistema para desarrolladores para VS 2013" en el caso de VS 2013 o simplemente "Símbolo del sistema de Visual Studio" en el caso de VS 2010.
  5. Después de cargar el símbolo del sistema en la pantalla, escriba, ILDASM.EXEpresione ENTRAR.
  6. ILDASMSe abrirá la ventana. Arrastre el .dllarchivo a la ventana desde su carpeta. O haga clic en. File->NewLuego Agregar el .dll archivo requerido .
  7. Después de los pasos anteriores, Mainfest y el .dllarchivo aparecerán. Haga doble clic en estos archivos para ver qué contienen.
Abhi
fuente
Seguí sus instrucciones claras usando VS 2012 y 2015 / Windows 7 Pro. Sin embargo, ILDASM emitió el siguiente mensaje para el archivo .dll he tratado de examinar: has no valid CLR header and cannot be disassembled.
LECTURA DE CÓDIGO
2
Este proceso se utiliza para desensamblar el lenguaje intermedio generado por CLR.
mmushtaq
7

Creo que ha descargado .NET Reflector y este complemento FileGenerator http://filegenreflector.codeplex.com/ , si lo hace,

  1. Abra el Reflector.exe,

  2. Vaya a Ver y haga clic en Complementos,

  3. En la ventana Complementos, haga clic en Agregar ...,

  4. Luego busque el dll que ha descargado

  5. FileGenerator.dll (que viene con el complemento FileGenerator),

  6. Luego cierre la ventana Complementos.

  7. Vaya a Archivo y haga clic en Abrir y elija la dll que desea descompilar,

  8. Después de abrirlo, aparecerá en la vista de árbol,

  9. Vaya a Herramientas y haga clic en Generar archivos (Crtl + Shift + G),

  10. seleccione el directorio de salida y seleccione la configuración adecuada como desee, haga clic en generar archivos.

O

utilizar http://ilspy.net/

retractarse
fuente
específicamente a cuál aconsejas? ILspy o Reflector? pros y contras
T.Todua
3

No puede obtener el código exacto, pero puede obtener una versión descompilada.

La herramienta más popular (y mejor) es Reflector , pero también hay otros descompiladores de .Net (como Dis # ).

También puede descompilar el IL usando ILDASM , que viene incluido con las herramientas del SDK de .Net Framework.

Rohit
fuente
1

Abrir .dllarchivo con visual studio. O editor de recursos.

vusan
fuente
2
Cuando intenté abrir un archivo .dll usando Visual Studio Express 2013 / Windows 7 Pro, emitió el siguiente mensaje:There is no editor available for (file I tried to open). Make sure the application for the file type (.dll) is installed.
LECTURA DE CÓDIGO
1

Utilizo el software Jetbrains Dot peek, tú también puedes probarlo

usuario13570405
fuente
-11

* Los archivos .dll son archivos de almacenamiento abiertos con winzip / 7zip, etc. Eso no quiere decir que todos los archivos .dll sean archivos. Puede guardar cualquier cosa con la extensión .dll; sin embargo, la mayoría de los archivos .dll de Windows se generan para ser archivos. Ejemplos de esto son Windows. > twain_32.dll, que es un archivo de almacenamiento, sin embargo twain.dll no lo es. Si observa twain.dll, verá un MZ® como los primeros tres caracteres del bloc de notas, lo que indica un archivo / programa C compilado o parte de un programa. Mientras que MZ parece ser un archivo.

Además, la mayoría de los archivos .exe son archivos que contienen en su mayoría una imagen de icono, etc. para el archivo y los paquetes de instalación de Windows, además contienen toda la información que el programa necesita para ejecutar imágenes, películas, etc. y también directorios que incluyen información de instalación y archivos de texto sin formato.

Tengo un juego aquí game.exe y contiene archivos de clase Java, una imagen, un puntero que indica que .exe ejecute un archivo .bat. Obviamente, su archivo .bat ejecutará una llamada javac desde el archivo y ejecutará el juego. También hay algunos archivos .dll que contienen archivos de clase Java.

[autorun]
ICON=AUTORUN\MINCRAFTLOGO.ICO

redirigir el icono estándar aquí .ico es un archivo de imagen dentro de un archivo .dll dentro de un archivo .exe. Entonces, la imagen que se ve en el archivo .exe es el logotipo de Minecraft. Está en un archivo llamado autorun.inf. Segundo ejemplo

[discstarter]
    startpage=Autostart\Disk1.html
    uselanguagestartpage=1
    windowcaption=Solid Edge
    licensee=Siemens PLM Software
    productguid=05B227DF-DB00-4934-B3C8-40B7D8FAA54A
    singleinstance=1
    hidesplashscreen=1
    noscrollbars=0
    showstatusbar=1
    splashscreentime=0
    windowwidth=750
    windowheight=775
    buttondir=Autostart
    toolbarcolor=16777215
    toolbar=goback,goforward,gohome,print,exit
    [autorun]
    open=autostart.exe
    icon=Autostart\ENGINE.ICO

Este es el archivo autorun.inf de solid edge contenido en solidedge.exe Autostart \ es el directorio Autostart.dll. open = autostart.exe especifica el archivo autostart.exe que se ejecutará desde el archivo original solidedge.exe. Aquí hay un programa de muestra que utiliza los archivos .dll (biblioteca de vínculos dinámicos) http://www.flipcode.com/archives/Creating_And_Using_DLLs.shtml .

También muestra cómo se crean. Como puede ver, el contenido del archivo dll es llamado por un archivo exe como expliqué anteriormente, también hay un tutorial aquí http://msdn.microsoft.com/en-us/library/ms235636.aspx y como dije antes 7zip o winzip abrirán una biblioteca de vínculos dinámicos como un archivo siempre que tenga el archivo .dll. Si el contenido de la biblioteca de enlaces dinámicos se ha compilado, obviamente, necesita un programa que pueda leer el archivo.

Sin embargo, dado que los archivos .dll son, por definición, solo archivos de biblioteca de archivos, el dll en sí debe ser legible y no un archivo C, C # compilado, etc., etc. creado y cualquier información que almacene en el archivo dll está encriptada. En su mayoría, este cifrado lo maneja Visual Studio y, por lo general, no se edita a mano. Cuando lee el contenido de un archivo .dll como .exe, el contenido se descifra automáticamente. Ahora, cuando hablamos de compilar un programa, estamos cambiando el contenido a un código de bytes que la máquina interpreta fácilmente.

Este sería más pequeño que el archivo original del mismo contenido. Sin embargo, el tamaño es mayor, lo que sugiere que el archivo ha sido cifrado. Probablemente para evitar que la gente lea su código. Como resultado, la lectura del contenido .dll se denomina descifrado y no descompilación. La descompilación convertiría los archivos txt ya compilados en un código de bytes ilegible. El uso de archivos .dll estándar no es, por definición, de código abierto porque implica la ofuscación deliberada del código de bytes.

David
fuente
8
No estoy seguro de si esto contaría como apostasía o herejía en los círculos de la informática. ¿Cómo puede ser mejorado? Si estuviera en papel, podría usar un fósforo para sacarlo de su miseria.
brewmanz