Kosongkan aplikasi Silverlight anda dengan Dotfuscator
Tentang Dotfuscator
Dotfuscator adalah obfuscator yang menjadikan kod sumber sukar dibaca apabila aplikasi yang ditulis dengan Rangka Kerja .NET dibongkar. Dotfuscator boleh didapati dalam kedua-dua versi runcit percuma dan berbayar yang disertakan dengan Visual Studio.
Versi percuma hanya tersedia dengan banyak ciri terhad dan andaian bahawa Visual Studio sedang berjalan, tetapi sesiapa sahaja yang memasang Visual Studio boleh menggunakannya. Versi berbayar mempunyai banyak ciri obfuscation berkuasa yang tidak tersedia dalam versi percuma, tetapi mungkin menjengkelkan bahawa ia ditawarkan pada harga yang sukar untuk orang awam mampu.
Dotfuscator mungkin mempunyai ciri, harga, dan edisi yang berbeza bergantung pada versi, jadi sila rujuk laman web berikut untuk maklumat lanjut.
Kod parsed
Seperti yang dinyatakan di atas, aplikasi yang dibuat dengan Rangka Kerja .NET boleh membaca kod sumber asal dengan mudah dengan membongkar, tetapi apa yang sebenarnya berlaku ialah apabila anda membongkar fail pemasangan seperti yang ditunjukkan dalam rajah, kebanyakan kod sumber asal seperti ruang nama, nama kelas, dan nama kaedah boleh diterbitkan semula.
Prosedur obfuscation
Mulakan dengan mencipta aplikasi Silverlight seperti biasa dan lakukan binaan Pelepasan. Di sini, kami membuat aplikasi yang hanya meletakkan dua butang.
Dalam folder Bin\Release folder tempat projek terletak, taip . xap" ialah fail pakej yang meringkaskan program dan fail yang digunakan dalam aplikasi Silverlight.
Sebenarnya, fail ini dimampatkan dan disusun sebagai fail ZIP, jadi pelanjutan adalah ". zip".
Ia telah ditukar kepada fail ZIP.
Apabila anda membuka fail, ia mengandungi fail manifes dan DLL. DLL ini adalah versi disusun program yang berjalan sebagai aplikasi.
Dengan cara ini, fail DLL juga diletakkan dalam folder Lepaskan apabila ia dibina, jadi kali ini kami akan mengaburkan fail ini.
Daripada menu Visual Studio, pilih Alat, kemudian pilih PreEmptive Dotfuscator And Analytics.
Apabila bermula buat kali pertama, dialog "Perjanjian Lesen" akan dipaparkan, jadi baca kandungannya dengan teliti, semak "Ya, saya terima perjanjian lesen." dan klik butang "OK".
PreEmptive Dotfuscator And Analytics CE bermula.
Pilih "Input" dari pokok di sebelah kiri dan klik butang "Tambah Input".
Pilih fail DLL yang anda jana semasa membina.
Pilih fail DLL yang anda tambah dan nyahtanda Mod Pustaka > Penukaran XAML.
Jika "Mod perpustakaan" diperiksa, kelas dan kaedah yang ditakrifkan di khalayak ramai tidak akan diabaikan.
Jika "penukaran XAML" diperiksa, kelas yang ditakrifkan dalam XAML akan dikaburkan, tetapi bergantung pada cara anda menciptanya, ia akan menyebabkan ralat permulaan, jadi jika ia berlaku, sila nyahtandainya.
Pada asasnya, semua kelas, kaedah, sifat, dan nama pemboleh ubah dikaburkan, tetapi jika anda tidak mahu mengaburkan ruang nama atau kelas tertentu kerana serialisasi, pilih "Namakan semula" dari pokok di sebelah kiri, pilih tab "Kecualikan", dan semak ruang nama atau kelas sasaran.
Di bawah Peraturan Terbina dalam, pastikan Medan untuk Silverlight dan WPF UserControls ditandakan. Menyemak ini akan menjadikan medan UserControls dikaburkan dan akan berjalan dengan jayanya. Anda boleh menyahtandainya jika ia kelihatan berfungsi dengan betul walaupun selepas mengaburkan.
Apabila anda selesai, klik butang "Bina Projek" dari bar alat.
Sekiranya terdapat perubahan pada projek, dialog pengesahan simpan projek akan dipaparkan, jadi klik "Ya" untuk menyimpan.
Projek ini dipanggil ". xml" fail. Fail yang diabaikan disimpan di lokasi yang sama.
Tunggu binaan selesai apabila ia bermula. Perhatikan bahawa semakin besar program ini, semakin lama diperlukan untuk membina. Apabila kelihatan seperti angka itu, binaan selesai.
Medan mesej menunjukkan kemajuan binaan dan hasil ringkas seperti cara mengaburkannya.
Jika anda memilih Hasil daripada pokok di sebelah kiri, anda boleh melihat butiran tentang cara nama kelas dan kaedah telah berubah.
Di bawah nama kelas dan kaedah, akan ada ikon Dotfuscator dan nama seperti "a" dan "b", yang akan menjadi nama yang kabur. Dengan menukar nama kelas atau nama kaedah kepada nama yang tidak bermakna dengan cara ini, walaupun ia dibongkar, ia boleh menjadikan kandungan kod sumber sukar dibaca.
Fail yang kabur dicipta dalam folder yang dipanggil "Dotfuscated" dalam folder fail .xml yang disimpan dalam Simpan Projek. Sebagai tambahan kepada fail yang kabur, fail "Peta.xml" telah dibuat, tetapi ini adalah hasil daripada penolakan dan tidak digunakan.
Jika anda membongkar fail yang kabur, anda dapat melihat bahawa beberapa nama kelas dan kaedah telah ditukar kepada "a" atau "b".
Kali ini, projek lalai yang dibuat telah dikaburkan hampir seperti itu, jadi saya fikir ada imej yang tidak begitu kabur, tetapi saya fikir kesan obfuscation menjadi lebih jelas kerana bilangan kelas dan lain-lain meningkat apabila projek itu berkembang.
Sebagai tambahan, . Perpustakaan Rangka Kerja NET dan tidak tertakluk kepada penamaan semula kerana ia adalah perhimpunan yang telah dipasang pada Windows, sebagai contoh.
Silverlight tidak menggunakan DLL sebagaimana adanya, jadi ia dibungkus sebagai fail XAP. Seperti yang dinyatakan pada mulanya, fail XAP hanyalah perubahan dalam pelanjutan fail ZIP, jadi ia mencipta fail ZIP dengan mengumpul fail yang terkandung dalam fail XAP dan DLL yang kabur.
Mencipta fail ZIP boleh dilakukan menggunakan ciri OS standard.
Fail ZIP dicipta.
Pelanjutan ditukar kepada '. xap" dan jika nama fail berbeza, tukar kepada nama fail pakej asal.
Letakkan fail XAP di lokasi edaran.
Sila semak operasi dan lihat sama ada ia berfungsi dengan baik.
Jika ia tidak bermula, periksa sehingga ia berfungsi seperti biasa dengan mengurangkan kod yang tidak jelas. Perhatikan bahawa Silverlight sering terjebak dalam perkara yang berkaitan dengan XAML.
Walaupun arahan tidak disenaraikan di sini, jika anda ingin menandatangani program, membinanya dalam keadaan yang ditandatangani kelewatan, mengaburkan perhimpunan, dan kemudian menandatangani semula. Walaupun anda mengaburkannya semasa ia ditandatangani, kod tandatangan yang dilampirkan pada masa binaan dan kod tandatangan selepas obfuscation tidak akan sepadan, jadi anda tidak akan dapat memulakannya.
Dalam artikel ini, saya telah menyenaraikan langkah-langkah untuk versi percuma, tetapi jika anda menggunakan versi berbayar, anda boleh melakukan obfuscation yang lebih kompleks dan mencegah pembongkaran itu sendiri. Walau bagaimanapun, obfuscation berpotensi menyebabkan pelbagai kesan buruk, jadi apabila obfuscating dibuat, perlu dipertimbangkan sama ada ia akan berfungsi dengan baik dari awal reka bentuk.