Aplikasi obfuscate yang dibuat menggunakan Dotfuscator
Ringkasan
Oleh kerana aplikasi berdasarkan Rangka Kerja .NET dicipta dalam apa yang dipanggil bahasa perantaraan biasa, ia boleh dibaca dalam bentuk yang dekat dengan kod sumber asal dengan menggunakan alat pembongkaran dan sebagainya. Bahagian ini menerangkan cara mengelirukan Dotfuscator, obfuscator yang disertakan dengan Visual Studio, untuk mengelirukan nama kelas dan kaedah ke dalam format yang tidak mudah dibaca.
Kita bercakap mengenainya di sini menggunakan Visual Studio 2010, tetapi anda boleh menggunakan Dotfuscator pada tahun 2005 dan 2008 juga.
Persekitaran Operasi
Versi Studio Visual yang Disokong
- 2005
- 2008
- 2010
Semak Versi Studio Visual
- 2005
- 2008
- 2010
Bahan
Tentang Dotfuscator
Dotfuscator ialah alat obfuscation yang menjadikan kod sumber sukar dibaca apabila dibongkar dalam aplikasi yang ditulis dengan Rangka Kerja .NET. Dotfuscator dilengkapi dengan Visual Studio secara percuma dan dengan bayaran.
Versi percuma tidak tersedia melainkan banyak ciri-cirinya terhad atau Visual Studio dimulakan, tetapi sesiapa sahaja boleh menggunakannya selagi mereka telah memasang Visual Studio. Versi berbayar mempunyai banyak ciri kekeliruan yang kuat yang tidak terdapat dalam versi percuma, tetapi ia ditawarkan pada harga yang sukar bagi orang awam untuk mampu.
Dotfuscator mempunyai ciri, harga, dan edisi yang berbeza bergantung pada versi, jadi sila rujuk laman utama berikut untuk maklumat lanjut.
Prosedur kekeliruan
Saya menyebut sebelum ini bahawa aplikasi yang dibuat dengan Rangka Kerja .NET boleh membongkar dan dengan mudah membaca kod sumber asal, tetapi keadaan sebenar ialah jika anda membongkar fail exe seperti yang ditunjukkan dalam angka di sebelah kanan, anda hampir boleh menghasilkan semula kod sumber asal seperti ruang nama, nama kelas, nama kaedah, dll.
Menerangkan langkah-langkah untuk menjadikan nama-nama ini mengelirukan dan mengelirukan.
Mencipta aplikasi dalam Visual Studio dan mencipta fail exe adalah sama dengan cara biasa untuk menciptanya.
Selepas anda membina dan mencipta fail exe, pilih Alat daripada menu Visual Studio, kemudian pilih Perkhidmatan Perisian Dotfuscator.
Apabila anda memulakan buat kali pertama, dialog "Perjanjian Lesen" dipaparkan seperti yang ditunjukkan dalam gambar di sebelah kanan, jadi baca kandungan dengan teliti, semak "Ya, saya bersetuju dengan perjanjian lesen." dan klik butang "OK".
Perkhidmatan Perisian Dotfuscator bermula.
Exe (atau fail dll) yang akan dikelirukan tidak semestinya dari projek yang sedang dibuka.
Pilih Perhimpunan Input dari pokok di sebelah kiri, dan klik Perhimpunan Input di sebelah kanan untuk mengklik butang ....
Pilih fail exe yang anda mahu mengelirukan.
Fail exe yang dipilih ditambah ke senarai. Jika anda ingin mengelirukan berbilang fail, klik butang "..." selepas baris kedua untuk menambahnya.
Sebaik sahaja anda telah memilih exe yang anda ingin mengelirukan, klik butang Bina Projek dari bar alat.
Sekiranya terdapat sebarang perubahan pada projek, dialog pengesahan penjimatan projek dipaparkan, jadi klik "Ya" untuk menyimpan.
Projek ini dipanggil ". fail xml". Fail exe obfuscated juga akan disimpan di lokasi yang sama, jadi simpan fail .xml ke mana-mana folder.
Binaan akan bermula dan tunggu sehingga selesai. Perhatikan bahawa semakin besar program, semakin lama masa yang diperlukan untuk membina. Jika ia kelihatan seperti angka di sebelah kanan, binaan selesai.
Medan mesej memaparkan hasil yang mudah, seperti kemajuan binaan dan bagaimana mengelirukannya.
Jika anda memilih "Hasil" dari pokok di sebelah kiri, anda boleh melihat butiran bagaimana nama kelas dan kaedah telah berubah.
Di bawah nama kelas dan kaedah, terdapat ikon Dotfuscator dan nama seperti "a" atau "b", yang merupakan nama yang mengelirukan. Dengan menukar nama kelas atau nama kaedah kepada nama yang tidak bermakna seperti ini, anda boleh membuat kandungan kod sumber sukar dibaca walaupun ia dibongkar.
Fail exe obfuscated dicipta dalam folder .xml fail yang disimpan dalam Save Project, yang dipanggil "Dotfuscated", dan dicipta di dalamnya. Sebagai tambahan kepada fail exe, fail "Map .xml" telah dibuat, tetapi ini adalah hasil kekeliruan dan tidak boleh digunakan.
Exes obfuscated boleh dijalankan dan digunakan sebagai-is. Walau bagaimanapun, terdapat kes di mana ia tidak dapat dimulakan kerana ralat yang tidak diketahui seperti yang ditunjukkan dalam gambar di sebelah kanan.
Kali ini, saya menulis aplikasi dalam WPF, tetapi kerana fail XAML tetingkap pertama untuk dipaparkan ditentukan sebagai rentetan, nama semula kerana kekeliruan akan menyebabkan rujukan hilang, mengakibatkan ralat.
Aplikasi Borang Windows merujuk kelas Daripada secara langsung, supaya ia boleh berjalan tanpa ralat walaupun ia mengelirukan. Walau bagaimanapun, jika anda menentukan nama kelas, jenis enum, dan lain-lain dengan nama, anda perlu berhati-hati kerana terdapat kemungkinan bahawa ralat yang sama akan berlaku.
Jika anda tidak mahu mengelirukan kelas atau sesuatu, pilih Namakan semula daripada pokok di sebelah kiri Dotfuscator dan pilih Kecualikan daripada tab tengah.
Setiap ruang nama, nama kelas, dan lain-lain akan dipaparkan dalam senarai di sebelah kanan, jadi semak item yang anda tidak mahu mengelirukan.
Di sini, saya tidak mahu menukar nama kelas tetingkap yang akan dipaparkan terlebih dahulu, jadi saya menyemak "MainWindow".
Apabila anda melakukan binaan, anda dapat melihat bahawa tidak ada nama yang diubah di bawah nama kelas di MainWindows. (Kelas aplikasi telah ditukar kepada "a")
Apabila anda menjalankan fail exe yang mengelirukan, anda dapat melihat bahawa tetingkap dipaparkan dengan betul.
Jika anda membongkar fail exe yang mengelirukan, anda dapat melihat bahawa nama kelas dan nama kaedah telah ditukar kepada "a" atau "b" dengan betul.
Tetapi sebagai tambahan. Perpustakaan Rangka Kerja BERSIH seperti nama kelas tidak tertakluk kepada penamaan semula kerana ia adalah perhimpunan yang telah dipasang pada Windows dan di tempat lain.
Kali ini, saya mengelirukan projek lalai yang dibuat seperti itu, jadi saya fikir ada imej yang tidak begitu bingung, tetapi saya fikir kesan kekeliruan menjadi jelas kerana bilangan kelas dan lain-lain meningkat apabila projek itu berkembang.
Juga, walaupun kami telah memasukkan prosedur dalam versi percuma kali ini, versi berbayar membolehkan kekeliruan yang lebih kompleks dan juga menghalang pembongkaran itu sendiri. Walau bagaimanapun, kekeliruan mempunyai pelbagai kesan buruk dan potensi untuk berlaku, jadi apabila obfuscating dilakukan, adalah perlu untuk membuatnya sambil mempertimbangkan sama ada ia akan berfungsi dengan baik dari awal reka bentuk.