Eftersom .net-obfuscatorn används i projektet söks många modeller online, såsom Dotfuscator, xeoncode, foxit, etc.
Men de flesta avgifterna finns förstås knäckta versioner, och företaget kräver att piratkopierad programvara inte får användas.
Efter lång sökning hittade jag äntligen ConfuserEX, och det var okej att använda, så jag tog snabbt fram den och delade den med dig.
Eftersom det finns få kinesiska introduktioner på internet, kommer jag att göra ett test här för att visa dig:
1. Skapa ett nytt C#-klassbibliotek, jag kommer inte att ändra namnet, kalla det bara ClassLibrary1 och lägga till en enkel metod under Class1.cs-klassen:
2. Skapa en annan konsolapplikation, ConsoleTest, lägga till en referensmetod ClassLibrary1.dll och anropa testmetoden i ClassLibrary1.Class1 i huvudmetoden:
Efter kompilering, öppna ConsoleTest.exe med ILSpy, och du kan se källkoden som visas nedan:
3, Nu försöker vi förväxla med ConfuserEx:
Efter att ha laddat ner ConfuserEx, packa upp den och öppna ConfuserEx.exe, som visas i följande figur:
4. Ser du prompten "Dra inmatningsmoduler här"?
Lägg sedan ConsoleTest.exe just nu, som visas på bilden nedan:
5. Klicka på Inställningar
- Välj packare
- Moduler->ConsoleTest.exe
- Klicka på +-tecknet för Regler, sant
Som visas nedan:
6. Klicka på Protest!->Skydda! , vilket leder till en lyckad export (i katalogen Confused),
7. Börja med ILspy... Förvirrad, titta på ConsoleTest.exe källkoden:
Om metoden är tom, kopiera ClassLibrary1.dll av de ConsoleTest.exe beroendena till katalogen Confused, klicka på Kör ConsoleTest.exe och ge ut rätt resultat.
Not
8. Om du bara förväxlar exe-filen är detta okej, om du bara blandar ihop en dll-fil kommer du att se följande fel:
Fel: Ingen exekverbar modul, ingen exekverbar kropp?
Finns det ingen exe-fil? Låt oss sätta i ConsoleTest.exe och förvirra det med ClassLibrary1.dll, titta.
9. Enligt den tidigare metoden drog och släppte jag ConsoleTest.exe och ClassLibrary1.dll in i ConfuserEx för att förvirra dem.
Som visas nedan:
Snabb framgång.
10. Men vi öppnade den igen... Förvirrad, hittade bara förvirrade ConsoleTest.exe filer, vart tog ClassLibrary1.dll vägen?
Kan du inte blanda ihop DLL-filen?
Oroa dig inte, låt oss klicka ConsoleTest.exe försöka, åh, jag kör, det går som det ska, som visas på bilden nedan:
Den enda förklaringen här är att ConfuserEx bäddar in dll:n i exe-versionen.
Nu är den förvirrade ConsoleTest.exe 17 KB, medan den ursprungliga ConsoleTest.exe är 5 KB och ClassLibrary1.dll också 5 KB.
11. Låt oss använda ILSpy för att se ConsoleTest.exe genereras efter att ha förväxlat ConsoleTest.exe och ClassLibrary1.dll samtidigt.
Jag kan inte se metoden, och jag kan inte heller se den refererade dll-filen.
Nåväl, det var allt för idag.
Bifogat: Eftersom jag inte hittade något sätt att förväxla dll:n separat vid lunchtid, hittade den här eleven ett sätt på eftermiddagen @四毛的家, och jag kommer att lägga till hur man förväxlar dll:n separat.
Enligt steg 8 fann vi att ett fel rapporterades när dll förväxlades enligt EXE-metoden, och vi borde ha följt stegen nedan:
Efter att ha dragit dll:n till ConfuserEx kan du inte välja Packer i inställningarna, men klicka på pennknappen till höger, som visas nedan.
Efter att ha klickat på pennknappen dyker dialogrutan Redigera regel upp, välj ett element i Preset, jag väljer Maximum här, och klickar sedan på "+"-knappen nedan, välj anti ildasm (antar jag för att förhindra kompilering via IL), och sedan lyckas exporten.
Vi använder ILSpy för att kontrollera den ClassLibrary1.dll som just har blivit förvirrad, som visas i figuren nedan,
Inget syns.
För att testa den obfuskerade dll:n som finns tillgänglig lägger jag den oobfuskerade ConsoleTest.exe och den obfuskerade ClassLibrary1.dll i en mapp, klickar på Kör ConsoleTest.exe och lyckas.
|