Як відкрити .dll файли, щоб побачити, що написано всередині?


94

Я втратив рішення бібліотеки класів, чи можу я відкрити .dllфайл, який створив class-library.


10
Відбивач ......
Mitch Wheat

23
DotPeek .........
Спендер

7
Також: спробуйте використати Контроль вихідного коду ....
Mitch Wheat

Відповіді:


113

тобі краще з таким декомпілятором, як рефлектор .net відбитків або декомпілятор реакторного мозку реактивного мозку є і такі з відкритим кодом, як

http://www.jetbrains.com/decompiler/

http://ilspy.net/


jetbrains.com/decompiler працював у мене. +1 за це. Дякую за пропозицію!
Вікрам

ilspy +++++++++++++++++++++
Імад

ildpy +1. Хороший.
sonsa

ILSpy. Що ти шпигуєш?
gonzobrains

34

Виконайте кроки нижче.

  1. Перейдіть до меню «Пуск».
  2. Введіть Visual Studio Tool.
  3. Перейдіть до папки вище.
  4. Клацніть на "Командний рядок розробника для VS 2013" для VS 2013 або просто "Командний рядок Visual Studio" для VS 2010.
  5. Після завантаження командного рядка до типу екрана ILDASM.EXEнатисніть ENTER.
  6. ILDASMвідкриється вікно. Перетягніть .dllфайл у вікно зі своєї папки. Або натисніть. File->NewПотім додайте необхідний .dll файл.
  7. Після вищевказаних кроків з’явиться Mainfest та .dllфайл. Двічі клацніть на цих файлах, щоб побачити, що вони містять.

Я дотримувався чітких вказівок за допомогою VS 2012 та 2015 / Windows 7 Pro. Тим НЕ менше, ILDASM опублікував наступне повідомлення для файлу .dll я спробував дослідити: has no valid CLR header and cannot be disassembled.
CODE-REaD

2
Цей процес використовується для розбирання проміжної мови, створеної CLR.
mmushtaq

7

Я думаю, ви завантажили .NET Reflector та цей модуль FileGenerator http://filegenreflector.codeplex.com/ , якщо ви це зробите,

  1. Відкрийте Reflector.exe,

  2. Перейдіть до Переглянути та натисніть Надбудови,

  3. У вікні надбудов натисніть Додати ...,

  4. Потім знайдіть завантажену DLL

  5. FileGenerator.dll (відьма з’явилася з плагіном FileGenerator),

  6. Потім закрийте вікно надбудов.

  7. Перейдіть до «Файл» і натисніть «Відкрити» та виберіть dll, який потрібно декомпілювати,

  8. Після того, як ви його відкриєте, він з’явиться в дереві,

  9. Перейдіть до Інструменти та натисніть Створити файли (Crtl + Shift + G),

  10. виберіть вихідний каталог і виберіть відповідні налаштування за вашим бажанням.

АБО

використовувати http://ilspy.net/


конкретно який із них ви радите? ILspy чи Reflector? за і проти
Т.Тодуа,

3

Ви не можете отримати точний код, але ви можете отримати його декомпільовану версію.

Найпопулярнішим (і найкращим) інструментом є Reflector , але є й інші декомпілятори .Net (наприклад, Dis # ).

Ви також можете декомпілювати IL за допомогою ILDASM , який постачається в комплекті з .Net Framework SDK Tools.


1

Відкрити .dllфайл в Visual Studio. Або редактор ресурсів.


2
Коли я спробував відкрити файл .dll за допомогою Visual Studio Express 2013 / Windows 7 Pro, він видав таке повідомлення:There is no editor available for (file I tried to open). Make sure the application for the file type (.dll) is installed.
CODE-REaD



-11

Файли * .dll - це архівні файли, відкриті за допомогою winzip / 7zip тощо. Це не означає, що всі файли .dll є архівами, ви можете зберегти що завгодно із розширенням .dll, однак більшість файлів .dll для Windows створюються як архіви. Прикладами цього є windows > twain_32.dll - це архівний файл, однак twain.dll - це не так, якщо ви подивитесь на twain.dll, ви побачите MZŽ як перші три символи блокнота, що позначає скомпільований файл C / програму або частину програми. Тоді як MZ здається архівом.

Крім того, більшість файлів .exe - це архіви, які в основному містять зображення піктограм тощо для файлу та пакунків інсталятора Windows, а також містять всю інформацію, необхідну програмі для запуску зображень, фільмів тощо, а також каталоги, включаючи інформацію про встановлення та текстовий файл.

У мене тут є гра game.exe, яка містить файли класу Java, зображення, вказівник, який спрямовує файл .exe на запуск файлу .bat. Очевидно, що ваш .bat-файл запустить виклик javac з архіву та запустить гру, є також декілька архівів .dll, що містять файли класу Java.

[autorun]
ICON=AUTORUN\MINCRAFTLOGO.ICO

стандартне переспрямування піктограм тут .ico - це файл зображення у файлі .dll у файлі .exe. Отже, зображення, яке видно у файлі .exe, є логотипом minecraft. Це є у файлі, який називається autorun.inf. Другий приклад

[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

Це суцільний файл autorun.inf, що міститься в solidedge.exe Autostart \ - це каталог Autostart.dll. open = autostart.exe визначає файл autostart.exe для запуску з оригінального архіву solidedge.exe. Ось зразок програми, що використовує файли .dll (бібліотека динамічних посилань) http://www.flipcode.com/archives/Creating_And_Using_DLLs.shtml .

Це також показує, як вони створюються. Як ви можете бачити, вміст файлу dll викликається файлом exe, як я вже пояснював раніше, тут також є підручник http://msdn.microsoft.com/en-us/library/ms235636.aspx і як я вже говорив раніше 7zip або winzip відкриє бібліотеку динамічних посилань як архів, якщо у вас є файл .dll. Якщо вміст бібліотеки динамічних посилань скомпільовано, очевидно, вам потрібна програма, яка може читати файл.

Однак, оскільки .dll файли за визначенням - це лише архівні файли бібліотеки, сама dll повинна бути читабельною, а не скомпільованим файлом C, C # і т. Д. В основному .dll файли є архівами, і це має бути, коли файл .dll створюється у Visual Studio, dll є і будь-яка інформація, яку ви зберігаєте у файлі dll, зашифрована. Здебільшого цим шифруванням займається сама візуальна студія і, як правило, не редагується вручну. Коли ви читаєте вміст файлу .dll як файл .exe, вміст автоматично розшифровується. Тепер, коли ми говоримо про компіляцію програми, ми перетворюємо вміст на байт-код, який машина легко інтерпретує.

Цей розмір файлу буде меншим за вихідний файл із однаковим вмістом. Однак розмір файлу більший, що свідчить про те, що файл насправді зашифрований. Можливо, щоб зупинити людей читати їх код. В результаті читання вмісту .dll називається дешифруванням, а не декомпіляцією. Декомпіляція перетворить вже скомпільовані файли txt у нечитабельний байт-код. Використання стандартних файлів .dll за визначенням не є відкритим джерелом, оскільки воно передбачає навмисне затухання байт-коду.


8
Я не впевнений, чи це буде зараховуватися до відступництва чи єресі в обчислювальних колах. Як його можна вдосконалити? Якби це було на папері, я міг би використати сірник, щоб вивести його з убогості.
brewmanz
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.