Оскільки в проєкті використовується обфускатор .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 і досягаю успіху.
|