Тъй като .net обфускаторът се използва в проекта, много модели се търсят онлайн, като Dotfuscator, xeoncode, foxit и др.
Но повечето такси, разбира се, са с cracked версии и компанията изисква пиратски софтуер да не може да се използва.
След дълго търсене най-накрая намерих ConfuserEX и беше окей за използване, затова бързо го извадих и го споделих с вас.
Тъй като в интернет има малко китайски въведения, ще направя тест тук, за да ви покажа:
1. Създам нова C# библиотека с класове, няма да променя името, просто ще я нарека ClassLibrary1 и ще добавя прост метод под Class1.cs класа:
2. Създайте друго конзолно приложение ConsoleTest, добавете референтен ClassLibrary1.dll и извикайте тестовия метод в ClassLibrary1.Class1 в основния метод:
След компилиране, отворете ConsoleTest.exe с ILSpy и ще видите изходния код, както е показано по-долу:
3, Сега нека опитаме да объркаме с ConfuserEx:
След като изтеглите ConfuserEx, го разархивирайте и отворете ConfuserEx.exe, както е показано на следващата фигура:
4. Вижте подканата "Drag input modules here"?
След това сложете 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 е 17KB, докато оригиналният ConsoleTest.exe е 5KB, а ClassLibrary1.dll също е 5KB.
11. Нека използваме ILSpy, за да видим ConsoleTest.exe, генериран след като объркваме ConsoleTest.exe и ClassLibrary1.dll едновременно.
Не виждам метода, нито мога да видя споменатия dll файл.
Е, това е всичко за днес.
Прикачено: Тъй като не намерих начин да объркам DLL отделно на обяд, този ученик намери начин следобед @四毛的家, и ще добавя как да объркам DLL отделно.
Според стъпка 8 установихме, че е докладвана грешка при объркване на dll според метода EXE, и трябваше да следваме стъпките по-долу:
След като плъзнете dll в ConfuserEx, не можете да изберете Packer в Настройките, а кликнете върху бутона за молив вдясно, както е показано по-долу.
След като кликна бутона за молив, се появява диалоговото прозорче Edit правило, избирам един елемент в Пресета, избирам Maximum тук, след това натискам бутона "+" по-долу, избирам anti ildasm (предполагам, за да предотвратя компилация през IL), и експортът е успешен.
Използваме ILSpy, за да проверим ClassLibrary1.dll, който току-що е объркан, както е показано на фигурата по-долу,
Нищо не се вижда.
За да тествам наличния obfuscated dll, слагам незабелязания ConsoleTest.exe и obfuscated ClassLibrary1.dll в една директория, натискам Run ConsoleTest.exe и успявам.
|