Aplikasi obfuscate yang dibuat menggunakan Dotfuscator

Laman dikemaskini :
Tarikh penciptaan halaman :

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.

Dotfuscator を使用して作成したアプリケーションを難読化する

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.

Dotfuscator Software Services

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".

Dotfuscator Software Services

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 ....

難読化する exe ファイル

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.