Obfuscate aplikasi Silverlight Anda dengan Dotfuscator
Tentang Dotfuscator
Dotfuscator adalah obfuscator yang membuat kode sumber sulit dibaca ketika aplikasi yang ditulis dengan .NET Framework dibongkar. Dotfuscator tersedia dalam versi ritel gratis dan berbayar yang disertakan dengan Visual Studio.
Versi gratis hanya tersedia dengan banyak fitur terbatas dan asumsi bahwa Visual Studio sedang berjalan, tetapi siapa pun dengan Visual Studio yang diinstal dapat menggunakannya. Versi berbayar memiliki banyak fitur pengaburan yang kuat yang tidak tersedia dalam versi gratis, tetapi mungkin menjengkelkan karena ditawarkan dengan harga yang sulit bagi masyarakat umum untuk membelinya.
Dotfuscator mungkin memiliki fitur, harga, dan edisi yang berbeda tergantung pada versinya, jadi silakan merujuk ke situs web berikut untuk detailnya.
Kode yang diurai
Seperti disebutkan di atas, aplikasi yang dibuat dengan .NET Framework dapat dengan mudah membaca kode sumber asli dengan membongkar, tetapi yang sebenarnya terjadi adalah ketika Anda membongkar file perakitan seperti yang ditunjukkan pada gambar, sebagian besar kode sumber asli seperti namespace, nama kelas, dan nama metode dapat direproduksi.
Prosedur pengaburan
Mulailah dengan membuat aplikasi Silverlight seperti biasa dan lakukan build Release. Di sini, kami membuat aplikasi yang hanya menempatkan dua tombol.
Di folder Bin\Release dari folder tempat proyek berada, ketik . xap" adalah file paket yang merangkum program dan file yang digunakan dalam aplikasi Silverlight.
Sebenarnya, file ini dikompresi dan dikompilasi sebagai file ZIP, jadi ekstensinya adalah ". ritsleting".
Itu telah diubah menjadi file ZIP.
Ketika Anda membuka file, itu berisi file manifes dan DLL. DLL ini adalah versi kompilasi dari program yang berjalan sebagai aplikasi.
Omong-omong, file DLL juga ditempatkan di folder Release ketika dibangun, jadi kali ini kami akan mengaburkan file ini.
Dari menu Visual Studio, pilih Alat, lalu pilih PreEmptive Dotfuscator And Analytics.
Saat memulai untuk pertama kalinya, dialog "Perjanjian Lisensi" akan ditampilkan, jadi baca isinya dengan cermat, centang "Ya, saya menerima perjanjian lisensi." dan klik tombol "OK".
PreEmptive Dotfuscator Dan Analytics CE dimulai.
Pilih "Input" dari pohon di sebelah kiri dan klik tombol "Add Input".
Pilih file DLL yang Anda buat selama build.
Pilih file DLL yang Anda tambahkan dan hapus centang Mode Perpustakaan > Konversi XAML.
Jika "Mode perpustakaan" dicentang, kelas dan metode yang ditentukan di depan umum tidak akan dikaburkan.
Jika "konversi XAML" dicentang, kelas yang ditentukan dalam XAML akan dikaburkan, tetapi tergantung pada bagaimana Anda membuatnya, itu akan menyebabkan kesalahan startup, jadi jika itu terjadi, silakan hapus centang.
Pada dasarnya, semua kelas, metode, properti, dan nama variabel dikaburkan, tetapi jika Anda tidak ingin mengaburkan namespace atau kelas tertentu karena serialisasi, pilih "Ganti nama" dari pohon di sebelah kiri, pilih tab "Kecualikan", dan periksa namespace atau kelas target.
Di bawah Aturan Bawaan, pastikan Bidang untuk Silverlight dan WPF UserControls dicentang. Memeriksa ini akan membuat bidang UserControls dikaburkan dan akan berjalan dengan sukses. Anda dapat menghapus centang jika tampaknya berfungsi dengan benar bahkan setelah mengaburkan.
Setelah selesai, klik tombol "Build Project" dari toolbar.
Jika ada perubahan pada proyek, dialog konfirmasi penyimpanan proyek akan ditampilkan, jadi klik "Ya" untuk menyimpan.
Proyek ini disebut ". xml" file. File yang dikaburkan disimpan di lokasi yang sama.
Tunggu hingga build selesai saat dimulai. Perhatikan bahwa semakin besar program, semakin lama waktu yang dibutuhkan untuk membangun. Ketika terlihat seperti gambar, build selesai.
Bidang pesan menunjukkan kemajuan build dan hasil singkat seperti seberapa kaburnya itu.
Jika Anda memilih Hasil dari pohon di sebelah kiri, Anda dapat melihat detail tentang bagaimana nama kelas dan metode telah berubah.
Di bawah nama kelas dan metode, akan ada ikon dan nama Dotfuscator seperti "a" dan "b", yang akan menjadi nama yang dikaburkan. Dengan mengubah nama kelas atau nama metode menjadi nama yang tidak berarti dengan cara ini, bahkan jika dibongkar, itu dapat membuat isi kode sumber sulit dibaca.
File yang dikaburkan dibuat dalam folder bernama "Dotfuscated" di folder file .xml yang disimpan di Save Project. Selain file yang dikaburkan, file "Peta.xml" telah dibuat, tetapi ini adalah hasil dari pengaburan dan tidak digunakan.
Jika Anda membongkar file yang dikaburkan, Anda dapat melihat bahwa beberapa nama kelas dan metode telah diubah menjadi "a" atau "b".
Kali ini, proyek default yang dibuat dikaburkan hampir seperti sebelumnya, jadi saya pikir ada gambar yang tidak begitu dikaburkan, tetapi saya pikir efek pengaburan menjadi lebih jelas karena jumlah kelas dll. meningkat seiring pertumbuhan proyek.
Sebagai tambahan, . Pustaka NET Framework dan tidak dapat diganti namanya karena merupakan rakitan yang sudah diinstal pada Windows, misalnya.
Silverlight tidak menggunakan DLL apa adanya, sehingga dikemas sebagai file XAP. Seperti disebutkan di awal, file XAP hanyalah perubahan dalam ekstensi file ZIP, sehingga membuat file ZIP dengan mengumpulkan file yang terkandung dalam file XAP dan DLL yang dikaburkan.
Membuat file ZIP dapat dilakukan dengan menggunakan fitur OS standar.
File ZIP dibuat.
Ekstensi diubah menjadi '. xap" dan jika nama file berbeda, ubah ke nama file paket asli.
Tempatkan file XAP di lokasi distribusi.
Silakan periksa operasi dan lihat apakah itu berfungsi dengan baik.
Jika tidak dimulai, periksa sampai berfungsi normal dengan mengurangi kode yang dikaburkan. Perhatikan bahwa Silverlight sering terjebak dalam hal-hal yang berhubungan dengan XAML.
Meskipun instruksi tidak tercantum di sini, jika Anda ingin menandatangani program, membangunnya dalam keadaan tertunda-ditandatangani, mengaburkan perakitan, dan kemudian menandatangani ulang. Bahkan jika Anda mengaburkannya saat ditandatangani, kode tanda tangan yang dilampirkan pada saat build dan kode tanda tangan setelah pengaburan tidak akan cocok, sehingga Anda tidak akan dapat memulainya.
Pada artikel ini, saya telah membuat daftar langkah-langkah untuk versi gratis, tetapi jika Anda menggunakan versi berbayar, Anda dapat melakukan pengaburan yang lebih kompleks dan mencegah pembongkaran itu sendiri. Namun, pengaburan berpotensi menimbulkan berbagai efek samping, sehingga ketika pengaburan dilakukan, perlu dipertimbangkan apakah akan berfungsi dengan baik sejak awal desain.