Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 20394|Відповідь: 0

[Розбирання] c# Інструмент декомпіляції програм Tutorial.net дизассемблювання (ILSpy)

[Копіювати посилання]
Опубліковано 06.06.2015 11:09:21 | | | |
Використання інструменту декомпіляції ILSpy. Однак ILspy вимагає встановлення .NET Framework 4.0 на вашому комп'ютері. ILspy може конвертувати dll-файл у мову C# або VB. ILspy може зберегти один файл як .cs або .vb файл, а коли файлів багато, ви можете обрати збереження його як проєктного файлу. Оператори C# можна декомпілювати за допомогою ILspy, і вони можуть підтримувати декомпіляцію операторів yield return та лямбдас-виразів.

Раніше я користувався Reflector для перегляду інформації про бібліотеку .NET, але з лютого 2011 року Reflector перейшов на платне програмне забезпечення, тому розробники, які люблять вільне програмне забезпечення, перейшли до створення власного декомпільованого програмного забезпечення. Отже, ILspy народився завдяки удачі. ILSPY — це інструмент з відкритим кодом, який замінює рефлектори та декомпілює код, подібно до рефлекторів.

SharpDevelop — ще один і неповторний. Відкритий інструмент .NET, і він є відкритим кодом. Вона також пропонує досить хороші функції, майже переписуючи Visual Studio. У останній версії підтримка файлів безпеки рішень Visual Studio та файлів проєктів була додана напряму. ILSpy — це інструмент декомпілятора з групи SharpDevelop і також є відкритим кодом, а його налагоджувач і декомпілятор описані нижче.


Скріншот інтерфейсу ILspy


Інтерфейс ILSpy схожий на Reflector: деревові елементи керування показують асемблер і її тип зліва, а відповідний вихідний код — справа. Базова функція декомпіляції не така вже й складна у порівнянні з Reflector, іноді її навіть можна декомпілювати за допомогою ILSpy для збірок, які не можна декомпілювати (через шифрування) за допомогою Reflector.

ILspy вимагає, щоб на вашому комп'ютері був встановлений .NET Framework 4.0.Існує кілька поширених функцій ILspy

Доступна базова функція декомпіляції типів

Тепер підтримується лише декомпіляція вихідного коду на мови C# та IL, а не VB.

Візуалізації:

Функція збереження коду ILSpy

При натисканні на тип, вибір File-> Save Code декомпілює поточний тип і зберігає його у вказаний файл, а при виборі асемблера Save Code зберігається як файл проєкту (csproj), і всі його типи додаються до проєкту.


Функція відлагодження ILSpy

Відлагоджувач тут не стосується Visual Studioджерелорівень відлагоджувача, але стосується відлагоджувача збірки. Reflector має аддін, який можна підключити безпосередньо до Visual Studio для налагодження бібліотек сторонніх типів без необхідності декомпіляції сторонніх бібліотек типів і додавання їх до проєкту у вигляді вихідного коду.

ILSpy також має цю функцію, яка дозволяє безпосередньо налагоджувати сторонні збірки з двома опціями

Якщо бібліотека типів третьої сторони є виконуваним файлом, ви можете запустити програму з Debug виконуваного файлу.

Якщо стороння бібліотека типів — це асемблер (DLL), ви можете приєднати її за допомогою Attach to запущеного додатку, щоб почати налагоджувати асемблер.


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

Різниця між ними полягає в тому, що коли Attach до запущеного додатку налагоджується, якщо компілятор оптимізує код, монітор не отримає його значення.

Як показано на зображенні, значення змінного num, що відлагоджується, не можна відобразити, оскільки код оптимізовано. Офіційно рекомендований метод — Debug виконуваного файлу


Як і при налагодженні .NET вихідного коду у Visual Studio, ви можете зайти, перейти до них, продовжити, і в рядку стану з'явиться режим очікування, запуск і налагодження.

Окрім налагодження коду у форматі C#/VB асемблера, його також можна налагоджувати в IL коді, як показано на рисунку нижче

Відлагоджувач ILSpy існує як плагін, обов'язково додайте плагін ILSpy.Debugger.


Але налагодження. .NET-асемблі повинні вимагати PDB-файли. Однак ILSpy не генерує PDB-файли (PDB-файли не генеруються) і не може налагоджувати ASP.NET веб-додатках і веб-сервісах.






Попередній:>> <<
Наступний:Шеньчжень Ляньтянься Технолоджи Ко., ТОВ
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com