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

Вид: 14165|Відповідь: 3

Сьогодні я хотів би познайомити вас із відкритим .net обфускатором — ConfuserEx

[Копіювати посилання]
Опубліковано 05.01.2016 23:28:23 | | | |
Оскільки в проєкті використовується обфускатор .net, в інтернеті шукають багато моделей, таких як Dotfuscator, xeoncode, foxit тощо.

Але більшість комісій, звісно, є зламаними версіями, і компанія вимагає, щоб піратське програмне забезпечення не використовувалося.

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


Оскільки в Інтернеті мало китайських знайомств, я проведу тест, щоб продемонструвати вам:

1. Створіть нову бібліотеку класів на C#, назву не змінюватиму, просто назвемо ClassLibrary1 і додам простий метод під Class1.cs клас:




2. Створіть інший консольний додаток ConsoleTest, додайте посиланий ClassLibrary1.dll та викликайте тестовий метод у ClassLibrary1.Class1 у методі Main:






Після компіляції відкрийте ConsoleTest.exe за допомогою ILSpy, і ви побачите вихідний код, як показано нижче:




3. Тепер спробуємо заплутати з ConfuserEx:

Після завантаження ConfuserEx розпакуйте його і відкрийте ConfuserEx.exe, як показано на наступному рисунку:



4. Бачите запит «Перетягніть модулі введення тут»?

Потім поставте ConsoleTest.exe щойно, як показано на зображенні нижче:



5. Натисніть «Налаштування»
  • Select Packer
  • Модулі->ConsoleTest.exe
  • Натисніть на знак + для «Правила, правда»


Як показано нижче:



6. Натисніть «Протестувати»! ->Захистити! , що спричиняє успішний експорт (у каталозі Confused),



7. Відкрийте з ILspy... Заплутався, подивіться ConsoleTest.exe вихідний код:




Якщо метод порожній, скопіюйте ClassLibrary1.dll ConsoleTest.exe залежностей у папку Confused, натисніть Run ConsoleTest.exe і виведіть правильний результат.

Примітка

8. Якщо ви просто переплутали exe-файл — це нормально, якщо просто переплутати dll-файл, ви побачите таку помилку:



Помилка: Немає виконуваного модуля, немає виконуваного тіла?

Чи немає EXE-файлу? Давай додамо ConsoleTest.exe і переплутаємо з ClassLibrary1.dll, дивись.

9. За попереднім методом я перетягнув і відпустив ConsoleTest.exe і ClassLibrary1.dll у ConfuserEx, щоб заплутати їх разом.

Як показано нижче:



Швидкий успіх.

10. Але ми відкрили його знову... Заплутався, знайшов лише плутанину ConsoleTest.exe файлами, куди ClassLibrary1.dll подівся?

Хіба не можна переплутати файл dll?

Не хвилюйтеся, давайте натиснемо ConsoleTest.exe спробуємо, о, я йду, все працює успішно, як показано на фото нижче:



Єдине пояснення тут — ConfuserEx вбудовує dll у exe.

Тепер заплутаний ConsoleTest.exe — 17 КБ, тоді як оригінальний ConsoleTest.exe — 5 КБ, а ClassLibrary1.dll теж 5 КБ.

11. Давайте використаємо ILSpy, щоб побачити, які ConsoleTest.exe виникають після одночасного плутання ConsoleTest.exe і ClassLibrary1.dll.



Я не бачу методу, а також не бачу згаданий dll-файл.

Ну, на сьогодні все.

Прикріплені: Оскільки я не знайшов способу плутати dll окремо опівдні, цей учень знайшов спосіб у @四毛的家 після обіду, і я додам, як плутати dll окремо.

Згідно з кроком 8, ми виявили, що при плутанні dll за методом EXE була виявлена помилка, і ми мали виконати наступні кроки:

Після перетягування dll у ConfuserEx ви не можете вибрати Packer у налаштуваннях, але натисніть кнопку pencil праворуч, як показано нижче.



Після натискання кнопки олівця з'являється діалогове вікно «Редагувати правило», обираю один елемент у Пресеті, я вибираю Максимум тут, потім натискаю кнопку «+» нижче, вибираю anti ildasm (мабуть, щоб запобігти компіляції через IL), і тоді експорт успішний.

Ми використовуємо ILSpy, щоб перевірити ClassLibrary1.dll, який щойно був сплутаний, як показано на рисунку нижче,



Нічого не видно.

Щоб протестувати доступний обфускований dll, я поміщаю незаблокований ConsoleTest.exe і обфускований ClassLibrary1.dll в одну директорію, натискаю Run ConsoleTest.exe і досягаю успіху.




Попередній:[Pro-test] C# виконує збережені процедури і повертає первинний ключ GUID
Наступний:.NET заплутаний, шелінг, confuserex v0.6.0 Китайська версія туторіал
 Орендодавець| Опубліковано 05.01.2016 23:29:18 |
ConfuserEx підтримує фреймворки .NET 2.0 - 4.5 та Mono (існують також інші .NET-фреймворки):

Перейменування символу
Перейменування WPF/BAML
Обфускація керуючого потоку
Приховування посилань методу
Антивідлагоджувачі/профайлери
Анти-дампінг пам'яті
Антипідробка
Вбудовані залежності
Постійне шифрування
Шифрування ресурсів
Вихід стиснення
API плагінів розширення
Опубліковано 06.01.2016 01:53:46 |
Дякую, що поділилися, я раніше користувався версією 4.0, і нарешті існує версія 6.0!
 Орендодавець| Опубліковано 06.01.2016 07:58:20 |
Lynx опубліковано 2016-1-6 01:53
Дякую, що поділилися, я раніше користувався версією 4.0, і нарешті існує версія 6.0!

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

Mail To:help@itsvse.com