Silverlight uygulamanızı Dotfuscator ile gizleme

Sayfa güncel :
Sayfa oluşturma tarihi :

Dotfuscator Hakkında

Dotfuscator, .NET Framework ile yazılmış uygulamalar söküldüğünde kaynak kodunun okunmasını zorlaştıran bir gizlemedir. Dotfuscator, Visual Studio ile birlikte gelen hem ücretsiz hem de ücretli perakende sürümlerinde kullanılabilir.

Ücretsiz sürüm yalnızca birçok sınırlı özellik ve Visual Studio'nun çalıştığı varsayımıyla kullanılabilir, ancak Visual Studio'nun yüklü olduğu herkes bunu kullanabilir. Ücretli sürüm, ücretsiz sürümde bulunmayan birçok güçlü gizleme özelliğine sahiptir, ancak genel halkın karşılaması zor bir fiyata sunulması can sıkıcı olabilir.

Dotfuscator, sürüme bağlı olarak farklı özelliklere, fiyatlara ve sürümlere sahip olabilir, bu nedenle ayrıntılar için lütfen aşağıdaki web sitesine bakın.

Dotfuscator

Ayrıştırılmış kod

Yukarıda belirtildiği gibi, .NET Framework ile oluşturulan uygulamalar özgün kaynak kodunu sökerek kolayca okuyabilir, ancak gerçekte olan şey, şekilde gösterildiği gibi bir derleme dosyasını söktüğünüzde, ad alanları, sınıf adları ve yöntem adları gibi özgün kaynak kodunun çoğunun yeniden üretilebilmesidir.

解析されたコード

Gizleme prosedürü

Silverlight uygulamasını her zamanki gibi oluşturarak ve bir Sürüm derlemesi yaparak başlayın. Burada, yalnızca iki düğme yerleştiren bir uygulama oluşturuyoruz.

Release ビルド

Projenin bulunduğu klasörün Bin\Release klasöründe, . xap", Silverlight uygulamalarında kullanılan programları ve dosyaları özetleyen bir paket dosyasıdır.

XAP ファイル

Aslında, bu dosya bir ZIP dosyası olarak sıkıştırılır ve derlenir, bu nedenle uzantı ". zip".

拡張子を .zip に変更

Bir ZIP dosyası olarak değiştirildi.

ZIP ファイル

Dosyayı açtığınızda, bir bildirim dosyası ve bir DLL içerir. Bu DLL, uygulama olarak çalışan programın derlenmiş sürümüdür.

Bu arada, DLL dosyası da oluşturulduğunda Yayın klasörüne yerleştirilir, bu yüzden bu sefer bu dosyayı gizleyeceğiz.

ZIP ファイルの中身

Visual Studio menüsünden Araçlar'ı ve ardından PreEmptive Dotfuscator And Analytics'i seçin.

İlk kez başlarken, "Lisans Sözleşmesi" iletişim kutusu görüntülenecektir, bu nedenle içeriği dikkatlice okuyun, "Evet, lisans sözleşmesini kabul ediyorum." seçeneğini işaretleyin ve "Tamam" düğmesini tıklayın.

PreEmptive Dotfuscator And Analytics を選択

PreEmptive Dotfuscator And Analytics CE başlar.

PreEmptive Dotfuscator And Analytics CE

Soldaki ağaçtan "Girişler" i seçin ve "Giriş Ekle" düğmesini tıklayın.

入力の追加

Yapı sırasında oluşturduğunuz DLL dosyasını seçin.

ビルドで生成した DLL ファイルを選択

Eklediğiniz DLL dosyasını seçin ve XAML Dönüştürme'> Kitaplık Modu'nun işaretini kaldırın.

"Kütüphane modu" işaretlenirse, genel olarak tanımlanan sınıflar ve yöntemler gizlenmez.

"XAML dönüşümü" işaretlenirse, XAML'de tanımlanan sınıflar gizlenir, ancak nasıl oluşturduğunuza bağlı olarak bir başlangıç hatasına neden olur, bu nedenle gerçekleşirse lütfen işaretini kaldırın.

「ライブラリ モード」「XAML の変換」のチェックを外す

Temel olarak, tüm sınıflar, yöntemler, özellikler ve değişken adları gizlenir, ancak serileştirme nedeniyle belirli bir ad alanını veya sınıfı gizlemek istemiyorsanız, soldaki ağaçtan "Yeniden Adlandır" ı seçin, "Hariç tut" sekmesini seçin ve hedef ad alanını veya sınıfı kontrol edin.

難読化の除外

Yerleşik Kurallar altında, Silverlight ve WPF UserControls için Alanlar işaretli olduğundan emin olun. Bunu işaretlemek, UserControls alanını gizlerdi ve başarıyla çalışır. Gizleme işleminden sonra bile düzgün çalışıyor gibi görünüyorsa işaretini kaldırabilirsiniz.

Silverlight および WPF UserControls のフィールド

İşiniz bittiğinde, araç çubuğundan "Proje Oluştur" düğmesini tıklayın.

プロジェクトのビルド

Projede değişiklikler varsa, proje kaydetme onayı iletişim kutusu görüntülenecektir, bu nedenle kaydetmek için "Evet" i tıklayın.

プロジェクト保存確認ダイアログ

Projenin adı ". xml" dosyasını açın. Gizlenmiş dosyalar aynı konuma kaydedilir.

プロジェクト保存

Yapının başlarken tamamlanmasını bekleyin. Program ne kadar büyük olursa, oluşturulmasının o kadar uzun sürdüğünü unutmayın. Şekle benzediğinde, yapı tamamlanmıştır.

İleti alanı, yapının ilerlemesini ve ne kadar gizlenmiş olduğu gibi kısa bir sonucu gösterir.

ビルド完了

Soldaki ağaçtan Sonuçlar'ı seçerseniz, sınıf ve yöntem adlarının nasıl değiştiğiyle ilgili ayrıntıları görebilirsiniz.

Sınıf ve yöntem adlarının altında bir Dotfuscator simgesi ve "a" ve "b" gibi adlar olacaktır ve bu isimler karıştırılmış ad olacaktır. Sınıf adını veya yöntem adını bu şekilde anlamsız bir adla değiştirerek, sökülse bile, kaynak kodunun içeriğinin okunmasını zorlaştırabilir.

難読化結果

Gizlenmiş dosya, Save Project'te kaydedilen .xml dosyasının klasöründeki "Dotfuscated" adlı bir klasörde oluşturulur. Gizlenmiş dosyaya ek olarak, bir "Harita.xml" dosyası oluşturulmuştur, ancak bu gizlemenin sonucudur ve kullanılmaz.

難読化したファイル

Gizlenmiş dosyayı sökerseniz, bazı sınıf ve yöntem adlarının "a" veya "b" olarak değiştirildiğini görebilirsiniz.

Bu sefer oluşturulan varsayılan proje neredeyse olduğu gibi gizlendi, bu yüzden o kadar da karmakarışık olmadığına dair bir imaj olduğunu düşünüyorum ama proje büyüdükçe sınıf sayısı vs. arttığı için gizlemenin etkisinin daha da netleştiğini düşünüyorum.

Bir kenara, . NET Framework kitaplıklarını içerir ve örneğin Windows'ta zaten yüklü olan derlemeler oldukları için yeniden adlandırmaya tabi değildirler.

難読化したコードの解析

Silverlight, DLL'leri olduğu gibi kullanmaz, bu nedenle XAP dosyaları olarak paketlenirler. Başlangıçta belirtildiği gibi, bir XAP dosyası yalnızca ZIP dosyasının uzantısındaki bir değişikliktir, bu nedenle XAP dosyasında bulunan dosyaları ve gizlenmiş DLL'leri toplayarak bir ZIP dosyası oluşturur.

Bir ZIP dosyası oluşturmak, standart işletim sistemi özellikleri kullanılarak yapılabilir.

ファイルを ZIP 化

Bir ZIP dosyası oluşturulur.

ZIP ファイル

Uzantı ' olarak değiştirilir. xap" komutunu kullanıyorsanız ve dosya adı farklıysa, özgün paket dosyası adıyla değiştirin.

XAP dosyasını bir dağıtım konumuna yerleştirin.

XAP ファイルに変更

Lütfen işlemi kontrol edin ve düzgün çalışıp çalışmadığını görün.

Başlamazsa, gizlenmiş kodu azaltarak normal şekilde çalışana kadar kontrol edin. Silverlight'ın genellikle XAML ile ilgili konularda sıkışıp kaldığını unutmayın.

動作確認

Yönergeler burada listelenmese de, bir programı imzalamak istiyorsanız, programı gecikmeli imzalanmış durumda oluşturun, derlemeyi gizleyin ve ardından yeniden imzalayın. İmzalanırken gizleseniz bile, oluşturma sırasında eklenen imza kodu ile gizleme işleminden sonra eklenen imza kodu eşleşmez, bu nedenle başlatamazsınız.

Bu makalede, ücretsiz sürüm için adımları listeledim, ancak ücretli sürümü kullanıyorsanız, daha karmaşık gizleme yapabilir ve sökülmesini önleyebilirsiniz. Bununla birlikte, gizleme çeşitli olumsuz etkilere neden olma potansiyeline sahiptir, bu nedenle gizleme yapıldığında, tasarımın başlangıcından itibaren düzgün çalışıp çalışmayacağını düşünmek gerekir.