Obfuscate aplikasi yang dibuat menggunakan Dotfuscator
ringkasan
Karena aplikasi berdasarkan .NET Framework dibuat dalam apa yang disebut bahasa perantara umum, mereka dapat dibaca dalam bentuk yang dekat dengan kode sumber asli dengan menggunakan alat pembongkaran dan sejenisnya. Bagian ini menjelaskan cara mengaburkan Dotfuscator, obfuscator yang dilengkapi dengan Visual Studio, untuk mengaburkan nama kelas dan metode ke dalam format yang tidak mudah dibaca.
Kita membicarakannya di sini menggunakan Visual Studio 2010, tetapi Anda dapat menggunakan Dotfuscator pada tahun 2005 dan 2008 juga.
Lingkungan Operasi
Versi Visual Studio yang Didukung
- 2005
- 2008
- 2010
Periksa Versi Visual Studio
- 2005
- 2008
- 2010
zat
Tentang Dotfuscator
Dotfuscator adalah alat pengaburan yang membuat kode sumber sulit dibaca ketika dibongkar dalam aplikasi yang ditulis dengan .NET Framework. Dotfuscator hadir dengan Visual Studio secara gratis dan dengan biaya tertentu.
Versi gratis tidak tersedia kecuali banyak fiturnya terbatas atau Visual Studio dimulai, tetapi siapa pun dapat menggunakannya selama mereka menginstal Visual Studio. Versi berbayar memiliki banyak fitur pengaburan yang kuat yang tidak ditemukan dalam versi gratis, tetapi ditawarkan dengan harga yang sulit bagi masyarakat umum untuk membeli.
Dotfuscator memiliki fitur, harga, dan edisi yang berbeda tergantung pada versinya, jadi silakan merujuk ke beranda berikut untuk detailnya.
Prosedur pengaburan
Saya sebutkan sebelumnya bahwa aplikasi yang dibuat dengan .NET Framework dapat membongkar dan dengan mudah membaca kode sumber asli, tetapi situasi sebenarnya adalah jika Anda membongkar file exe seperti yang ditunjukkan pada gambar di sebelah kanan, Anda hampir dapat mereproduksi kode sumber asli seperti namespace, nama kelas, nama metode, dll.
Menjelaskan langkah-langkah untuk membuat nama-nama ini membingungkan dan dikaburkan.
Membuat aplikasi di Visual Studio dan membuat file exe persis sama dengan cara normal untuk membuatnya.
Setelah Anda membuat dan membuat file exe, pilih Alat dari menu Visual Studio, lalu pilih Dotfuscator Software Services.
Ketika Anda mulai untuk pertama kalinya, dialog "Perjanjian Lisensi" ditampilkan seperti yang ditunjukkan pada gambar di sebelah kanan, jadi baca isinya dengan cermat, centang "Ya, saya setuju dengan perjanjian lisensi." dan klik tombol "OK".
Layanan Perangkat Lunak Dotfuscator dimulai.
Exe (atau file dll) yang akan dikaburkan tidak harus dari proyek yang saat ini terbuka.
Pilih Rakitan Input dari pohon di sebelah kiri, dan klik Rakitan Input di sebelah kanan untuk mengklik tombol ...
Pilih file exe yang ingin Anda alakan.
File exe yang dipilih ditambahkan ke daftar. Jika Anda ingin mengaburkan banyak file, klik tombol "..." setelah baris kedua untuk menambahkannya.
Setelah Anda memilih exe yang ingin Anda usangkan, klik tombol Build Project dari toolbar.
Jika ada perubahan pada proyek, dialog konfirmasi penyimpanan proyek ditampilkan, jadi klik "Ya" untuk menyimpan.
Proyek ini disebut ". xml" file. File exe yang dikaburkan juga akan disimpan di lokasi yang sama, jadi simpan file .xml ke folder mana pun.
Build akan dimulai dan menunggu sampai selesai. Perhatikan bahwa semakin besar program, semakin lama waktu yang dibutuhkan untuk membangun. Jika terlihat seperti sosok di sebelah kanan, build selesai.
Bidang pesan menampilkan hasil sederhana, seperti kemajuan build dan seberapa dikaburkannya.
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, ada ikon Dotfuscator dan nama seperti "a" atau "b", yang merupakan nama yang dikaburkan. Dengan mengubah nama kelas atau nama metode menjadi nama yang tidak berarti seperti ini, Anda dapat membuat konten kode sumber sulit dibaca meskipun dibongkar.
File exe yang dikaburkan dibuat di folder file .xml yang disimpan di Save Project, yang disebut "Dotfuscated", dan dibuat di dalamnya. Selain file exe, file "Map .xml" telah dibuat, tetapi ini adalah hasil dari pengaburan dan tidak boleh digunakan.
Mantan yang dikaburkan dapat dijalankan dan digunakan apa adanya. Namun, ada beberapa kasus di mana itu tidak dapat dimulai karena kesalahan yang tidak diketahui seperti yang ditunjukkan pada gambar di sebelah kanan.
Kali ini, saya menulis aplikasi di WPF, tetapi karena file XAML dari jendela pertama yang ditampilkan ditentukan sebagai string, penggantian nama karena pengaburan akan menyebabkan referensi hilang, yang mengakibatkan kesalahan.
Aplikasi Windows Form mereferensikan kelas From secara langsung, sehingga mereka dapat berjalan tanpa kesalahan bahkan jika mereka dikaburkan. Namun, jika Anda menentukan nama kelas, jenis enum, dll. berdasarkan nama, Anda harus berhati-hati karena ada kemungkinan kesalahan yang sama akan terjadi.
Jika Anda tidak ingin mengaburkan kelas atau sesuatu, pilih Ganti Nama dari pohon di sisi kiri Dotfuscator dan pilih Kecualikan dari tab tengah.
Setiap namespace, nama kelas, dll. akan ditampilkan dalam daftar di sebelah kanan, jadi periksa item yang tidak ingin Anda usangkan.
Di sini, saya tidak ingin mengubah nama kelas jendela yang akan ditampilkan terlebih dahulu, jadi saya memeriksa "MainWindow".
Saat Anda melakukan build, Anda dapat melihat bahwa tidak ada nama yang diubah di bawah nama kelas di MainWindows. (Kelas aplikasi telah dikonversi menjadi "a")
Ketika Anda menjalankan file exe yang dikaburkan, Anda dapat melihat bahwa jendela ditampilkan dengan benar.
Jika Anda membongkar file exe yang dikaburkan, Anda dapat melihat bahwa nama kelas dan nama metode telah diubah menjadi "a" atau "b" dengan benar.
Tapi sebagai tambahan. Pustaka NET Framework seperti nama kelas tidak dapat diganti namanya karena mereka adalah rakitan yang sudah diinstal pada Windows dan di tempat lain.
Kali ini, saya mengaburkan proyek default yang dibuat apa adanya, jadi saya pikir ada gambar yang tidak begitu dikaburkan, tetapi saya pikir efek pengaburan menjadi jelas karena jumlah kelas dll meningkat seiring pertumbuhan proyek.
Juga, meskipun kami telah memasukkan prosedur dalam versi gratis kali ini, versi berbayar memungkinkan pengaburan yang lebih kompleks dan juga mencegah pembongkaran itu sendiri. Namun, pengaburan memiliki berbagai efek samping dan potensi terjadi, sehingga ketika pengaburan dilakukan, perlu untuk membuatnya sambil mempertimbangkan apakah itu akan bekerja dengan baik sejak awal desain.