Verdoezel applicaties gemaakt met Dotfuscator
samenvatting
Omdat toepassingen op basis van .NET Framework worden gemaakt in wat een gemeenschappelijke tussentaal wordt genoemd, kunnen ze worden gelezen in een vorm die dicht bij de oorspronkelijke broncode ligt met behulp van demontagegereedschappen en dergelijke. In deze sectie wordt beschreven hoe u de obfuscator, de obfuscator die bij Visual Studio wordt geleverd, kunt verbergen om klasse- en methodenamen te verbergen in een indeling die niet gemakkelijk leesbaar is.
We hebben het er hier over met Visual Studio 2010, maar u kunt Dotfuscator ook in 2005 en 2008 gebruiken.
Werkomgeving
Ondersteunde Visual Studio-versies
- 2005
- 2008
- 2010
Visual Studio-versie controleren
- 2005
- 2008
- 2010
stof
Over Dotfuscator
Dotfuscator is een verduisteringstool die het moeilijk maakt om broncode te lezen wanneer deze wordt gedemonteerd in toepassingen die zijn geschreven met .NET Framework. Dotfuscator wordt gratis en tegen betaling geleverd met Visual Studio.
De gratis versie is niet beschikbaar tenzij veel van de functies beperkt zijn of Visual Studio is gestart, maar iedereen kan deze gebruiken zolang Visual Studio is geïnstalleerd. De betaalde versie heeft veel krachtige verduisteringsfuncties die niet te vinden zijn in de gratis versie, maar het wordt aangeboden tegen een prijs die moeilijk te betalen is voor het grote publiek.
Dotfuscator heeft verschillende functies, prijzen en edities, afhankelijk van de versie, dus raadpleeg de volgende startpagina voor meer informatie.
Verduisteringsprocedure
Ik heb eerder vermeld dat toepassingen die met het .NET Framework zijn gemaakt, de originele broncode kunnen demonteren en gemakkelijk kunnen lezen, maar de werkelijke situatie is dat als u het exe-bestand demonteert zoals weergegeven in de afbeelding aan de rechterkant, u de originele broncode bijna kunt reproduceren, zoals naamruimte, klassenaam, methodenaam, enz.
Hierin worden de stappen beschreven om deze namen verwarrend en verduisterd te maken.
Het maken van een toepassing in Visual Studio en het maken van een exe-bestand is precies hetzelfde als de normale manier om het te maken.
Nadat u het exe-bestand hebt gemaakt en gemaakt, selecteert u Extra in het menu Visual Studio en selecteert u vervolgens Dotfuscator Software Services.
Wanneer u voor de eerste keer start, wordt het dialoogvenster "Licentieovereenkomst" weergegeven zoals weergegeven in de afbeelding aan de rechterkant, dus lees de inhoud zorgvuldig, vink "Ja, ik ga akkoord met de licentieovereenkomst" aan en klik op de knop "OK".
Dotfuscator Software Services wordt gestart.
Het exe-bestand (of dll-bestand) dat moet worden verduisterd, hoeft niet afkomstig te zijn van het momenteel geopende project.
Selecteer Invoerassembly's in de structuur aan de linkerkant en klik op de invoerassembly's aan de rechterkant om op de knop ... te klikken.
Selecteer het exe-bestand dat u wilt verbergen.
Het geselecteerde exe-bestand wordt aan de lijst toegevoegd. Als u meerdere bestanden wilt verbergen, klikt u op de knop "..." na de tweede regel om ze toe te voegen.
Nadat u het exe hebt geselecteerd dat u wilt verbergen, klikt u op de knop Project bouwen op de werkbalk.
Als er wijzigingen in het project zijn, wordt het bevestigingsvenster voor het opslaan van het project weergegeven, dus klik op "Ja" om op te slaan.
Het project heet ". xml" bestand. Het verduisterde exe-bestand wordt ook op dezelfde locatie opgeslagen, dus sla het .xml bestand op in een willekeurige map.
De build start en wacht tot deze is voltooid. Merk op dat hoe groter het programma, hoe langer het duurt om te bouwen. Als het lijkt op de figuur aan de rechterkant, is de build voltooid.
Het berichtveld geeft eenvoudige resultaten weer, zoals de voortgang van de build en hoe verduisterd deze was.
Als u "Resultaat" selecteert in de boom aan de linkerkant, kunt u details zien over hoe de klassen- en methodenamen zijn gewijzigd.
Onder de klasse- en methodenamen bevindt zich een Dotfuscator-pictogram en een naam zoals "a" of "b", wat de verduisterde naam is. Door de klassenaam of methodenaam te wijzigen in een betekenisloze naam zoals deze, kunt u de inhoud van de broncode moeilijk leesbaar maken, zelfs als deze is gedemonteerd.
Verduisterde exe-bestanden worden gemaakt in de map .xml bestanden die zijn opgeslagen in Save Project, genaamd "Dotfuscated", en worden daarin gemaakt. Naast het exe-bestand is er een "Map .xml" -bestand gemaakt, maar dit is het resultaat van verduistering en mag niet worden gebruikt.
Verduisterde exen kunnen worden uitgevoerd en gebruikt zoals ze zijn. Er zijn echter gevallen waarin het niet kan worden gestart vanwege een onbekende fout zoals weergegeven in de afbeelding aan de rechterkant.
Deze keer heb ik een toepassing in WPF geschreven, maar omdat het XAML-bestand van het eerste venster dat wordt weergegeven, is opgegeven als een tekenreeks, zal de hernoeming als gevolg van verduistering ervoor zorgen dat de verwijzing verloren gaat, wat resulteert in een fout.
Windows Form-toepassingen verwijzen rechtstreeks naar de klasse From, zodat ze zonder fouten kunnen worden uitgevoerd, zelfs als ze zijn verduisterd. Als u echter een klassenaam, een opsommingstype, enz. bij naam opgeeft, moet u voorzichtig zijn omdat er een mogelijkheid is dat dezelfde fout optreedt.
Als u een klasse of iets dergelijks niet wilt verbergen, selecteert u Naam wijzigen in de structuur aan de linkerkant van Dotfuscator en selecteert u Uitsluiten op het middelste tabblad.
Elke naamruimte, klassenaam, enz. wordt weergegeven in de lijst aan de rechterkant, dus controleer de items die u niet wilt verbergen.
Hier wil ik de klassenaam van het venster dat als eerste moet worden weergegeven niet wijzigen, dus ik vink "MainWindow" aan.
Wanneer u de build uitvoert, kunt u zien dat er geen gewijzigde naam is onder de klassenaam in MainWindows. (App-klasse is geconverteerd naar "a")
Wanneer u het verduisterde exe-bestand uitvoert, kunt u zien dat het venster correct wordt weergegeven.
Als u het verduisterde exe-bestand uit elkaar haalt, kunt u zien dat de klassenaam en de methodenaam correct zijn gewijzigd in 'a' of 'b'.
Maar terzijde. NET Framework-bibliotheken zoals klassenamen kunnen niet worden gewijzigd omdat het assembly's zijn die al op Windows en elders zijn geïnstalleerd.
Deze keer heb ik het standaardproject dat is gemaakt zoals het is, verduisterd, dus ik denk dat er een beeld is dat het niet zo verduisterd is, maar ik denk dat het effect van verduistering duidelijk wordt omdat het aantal klassen enz. toeneemt naarmate het project groeit.
Hoewel we de procedure deze keer in de gratis versie hebben opgenomen, zorgt de betaalde versie ook voor complexere verduistering en voorkomt deze ook demontage zelf. Verduistering heeft echter verschillende nadelige effecten en kan optreden, dus wanneer verduistering wordt uitgevoerd, is het noodzakelijk om het te maken terwijl u overweegt of het vanaf het begin van het ontwerp goed zal werken.