Obfuscate aplikasi Silverlight Anda dengan Dotfuscator

Halaman Diperbarui :
Tanggal pembuatan halaman :

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.

Dotfuscator

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.

Release ビルド

Di folder Bin\Release dari folder tempat proyek berada, ketik . xap" adalah file paket yang merangkum program dan file yang digunakan dalam aplikasi Silverlight.

XAP ファイル

Sebenarnya, file ini dikompresi dan dikompilasi sebagai file ZIP, jadi ekstensinya adalah ". ritsleting".

拡張子を .zip に変更

Itu telah diubah menjadi file ZIP.

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.

ZIP ファイルの中身

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 And Analytics を選択

PreEmptive Dotfuscator Dan Analytics CE dimulai.

PreEmptive Dotfuscator And Analytics CE

Pilih "Input" dari pohon di sebelah kiri dan klik tombol "Add Input".

入力の追加

Pilih file DLL yang Anda buat selama build.

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

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.

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

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.

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

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.

ファイルを ZIP 化

File ZIP dibuat.

ZIP ファイル

Ekstensi diubah menjadi '. xap" dan jika nama file berbeda, ubah ke nama file paket asli.

Tempatkan file XAP di lokasi distribusi.

XAP ファイルに変更

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.