Protože je v projektu použit .net obfuscator, mnoho modelů je vyhledáváno online, například Dotfuscator, xeoncode, foxit atd.
Ale většina poplatků samozřejmě obsahuje crackované verze a společnost vyžaduje, aby pirátský software nebyl používán.
Po dlouhém hledání jsem konečně našel ConfuserEX a bylo v pořádku ho používat, takže jsem ho rychle vytáhl a sdílel s vámi.
Protože na internetu je málo čínských seznamů, udělám zde test, který vám to předvedu:
1. Vytvořit novou knihovnu tříd v C#, název nezměním, jen ji nazvám ClassLibrary1 a pod třídu Class1.cs přidám jednoduchou metodu:
2. Vytvořte další konzolovou aplikaci ConsoleTest, přidejte referenční ClassLibrary1.dll a vyvolejte testovací metodu v ClassLibrary1. Class1 v hlavní metodě:
Po kompilaci otevřete ConsoleTest.exe pomocí ILSpy a uvidíte zdrojový kód, jak je uvedeno níže:
3, Teď se pokusme zaměnit s ConfuserEx:
Po stažení ConfuserEx jej rozbalte a otevřete ConfuserEx.exe, jak je znázorněno na následujícím obrázku:
4. Vidíte výzvu "Tahat vstupní moduly sem"?
Pak teď ConsoleTest.exe dejte právě teď, jak je vidět na obrázku níže:
5. Klikněte na Nastavení
- Vyberte Packer
- Moduly->ConsoleTest.exe
- Klikněte na znaménko + pro Pravidla, true
Jak je uvedeno níže:
6. Klikněte na protest!->Chraňte! , což vyvolalo úspěšný export (v adresáři Confused),
7. Začněte s ILspy... Zmateně, podívejte se ConsoleTest.exe zdrojový kód:
Pokud je metoda prázdná, zkopírujte ClassLibrary1.dll ConsoleTest.exe závislostí do adresáře Confused, klikněte na Run ConsoleTest.exe a vypíšte správný výsledek.
Poznámka
8. Pokud si jen spletíte exe soubor, je to v pořádku, pokud jen spléštíte dll soubor, uvidíte následující chybu:
Chyba: Žádný spustitelný modul, žádný spustitelný tělo?
Není tam žádný exe soubor? Dejme ConsoleTest.exe a zaměňme si ho s ClassLibrary1.dll, podívej.
9. Podle předchozí metody jsem ConsoleTest.exe a ClassLibrary1.dll přetáhl a upustil do ConfuserEx, abych je zamotal dohromady.
Jak je uvedeno níže:
Rychlý úspěch.
10. Ale znovu jsme to otevřeli... Zmatený, nalezen jen zmatený ConsoleTest.exe souborech, kam ClassLibrary1.dll zmizel?
Nemůžeš si splést soubor dll?
Nebojte se, klikněme ConsoleTest.exe zkusíme to, jdu na to, běží to úspěšně, jak je vidět na obrázku níže:
Jediné vysvětlení je, že ConfuserEx vkládá dll do exe.
Nyní je zmatený ConsoleTest.exe 17KB, zatímco původní ConsoleTest.exe má 5KB a ClassLibrary1.dll také 5KB.
11. Použijme ILSpy k zobrazení ConsoleTest.exe generovaného po záměně ConsoleTest.exe a ClassLibrary1.dll zároveň.
Nevidím metodu, ani odkazovaný soubor DLL.
Tak to je pro dnešek vše.
Připojeno: Protože jsem nenašel způsob, jak v poledne zvlášť zmást dll, tento student našel způsob odpoledne @四毛的家, a já přidám, jak dll zmást zvlášť.
Podle kroku 8 jsme zjistili, že při záměně dll podle metody EXE byla hlášena chyba, a měli jsme postupovat podle následujících kroků:
Po přetažení dll do ConfuserEx nemůžete v nastavení vybrat Packer, ale kliknout na tlačítko tužky vpravo, jak je vidět níže.
Po kliknutí na tlačítko tužkou se objeví dialogové okno Upravit pravidlo, vyberu jednu položku v přednastavení, zde vyberu Maximum, pak kliknu na tlačítko "+" níže, vyberu anti ildasm (asi proto, aby se zabránilo kompilaci přes IL), a export je úspěšný.
Používáme ILSpy k ověření ClassLibrary1.dll, který byl právě zmatený, jak je znázorněno na obrázku níže,
Nic není vidět.
Abych otestoval dostupnou obfuskovanou dll, umístil jsem neobfuskovanou ConsoleTest.exe a obfuskovanou ClassLibrary1.dll do jednoho adresáře, klikl na Run ConsoleTest.exe a uspěl jsem.
|