Як переглянути функції DLL?


Відповіді:


73

Для рідного коду, мабуть, найкраще використовувати ходунок залежності . Також можливо використовувати утиліту командного рядка dumpbin, яка постачається разом з Visual Studio.


1
З новішими виданнями VS спробуйте DumpBin як зовнішній інструмент .
Лорі Стерн

Є стаття у Вікіпедії про Уокера залежностей. Мабуть, програма застаріла і не працює з деякими новими можливостями Windows, але є заміна: github.com/lucasg/Dependitions
user1324109

50

Використовуйте безкоштовний переглядач експорту DLL , користуватися ним дуже просто.


8
@sumit Ви можете бути більш конкретними? цей інструмент працює для мене протягом багатьох років.
Кен Д

6
Насправді інструмент працює добре, просто і просто, саме те, що мені було потрібно.
informatik01

5
Це чудовий інструмент для генерування списку методів / функцій, але він не показує параметрів методів (а також їх типів).
bvdb

1
Дуже здорово мати щось маленьке і компактне, а не такий роздутий продукт, як офіційні продукти MS.
ワ イ き ん ぐ

38

Ви можете спробувати браузер об’єктів у Visual Studio.

Виберіть " Змінити набір спеціальних компонентів" . Звідти ви можете обрати різні бібліотеки .NET, COM або проектів або просто імпортувати зовнішні dll через Огляд.


16
Visual Studio каже, що "Вибраний компонент не можна переглядати" при використанні Огляд і вибір DLL :( - msdn.microsoft.com/query/…
Xdg

5
браузер об’єктів переміщено до View. І так, це не працює (чому б це було, це
мікрософт

1
Більше постачальник, ніж проблема з MS. Ймовірно, в DLL немає типуліб. Див: stackoverflow.com/a/13903040/1614903
Хольгер Авіейшн

@ HolgerBöhnke також не вводить користувача в userdll32
Kimmax

2
@Kimmax Так, але user32.dll - це рідна DLL Windows, а не COM-сервер. Тільки COM-сервери (наприклад, COM-dll, ActiveX-елементи керування, * .ocx ...), можливо, мають, наприклад, typelibs, якщо вони були складені. Для рідних (= не COM-об’єктів) DLL можуть працювати деякі інші згадані тут інструменти (дампбін та ін.). Тобто, якщо DLL експортує це функції за назвою, а не лише порядковими.
Holger Böhnke

27

Використовуйте dumpbinкомандний рядок .

  • dumpbin /IMPORTS <path-to-file> має надати функцію, імпортовану в цю DLL.
  • dumpbin /EXPORTS <path-to-file> має забезпечувати функції, які експортує.

9

Використовуйте dotPeek від JetBrains.

https://www.jetbrains.com/decompiler/

dotPeek - це безкоштовний інструмент, заснований на ReSharper. Він може надійно декомпілювати будь-яку збірку .NET у код C # або IL.


Отже, це специфічно для DLL-файлів, що використовують рамки .NET?
Джоель Боденман

8

Для DLL-файлів .NET можна використовувати ildasm


Оскільки ildasm є продуктом Microsoft і встановлений на ПК за замовчуванням, якщо у вас встановлений Visual Studio. Я вважаю, що це найкращий варіант. Також він має інтерфейс користувача, тому вам не потрібно використовувати командний рядок. Спасибі
Мехрдад Бабакі

Його можна знайти: C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ <VERSION> \ bin
f4d0

6

Не розказуючи нам, з якої мови ця dll / Assembly, ми можемо лише здогадуватися.

Так як щодо .NET Reflector


2
Тоді це має бути ваш хлопець.
Адріан Стандер

1
.net-рефлектор раніше був безкоштовним, але зараз це комерційний продукт. Для .net dll "JustDecompile" - безкоштовна альтернатива.
bvdb

декомпілятор лише підкаже, які функції існують. чи можемо ми побачити їх реалізацію також якось?
vipin8169

2

Якщо DLL написана однією з мов .NET і якщо ви хочете лише переглянути, які функції, в проекті є посилання на цю DLL.

Потім двічі клацніть DLL у папці з посиланнями, і тоді ви побачите, які функції він має у вікні OBJECT EXPLORER

Якщо ви хочете переглянути вихідний код цього файлу DLL, ви можете скористатися програмою декомпілятора, наприклад рефлектором .NET. сподіваюся, що це вам допоможе.

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