Verdoezel applicaties gemaakt met Dotfuscator

Pagina bijgewerkt :
Aanmaakdatum van pagina :

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.

Dotfuscator を使用して作成したアプリケーションを難読化する

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.

Dotfuscator Software Services

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

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.

難読化する exe ファイル

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.