Bagikan melalui


Tentang Dotfuscator Community & Visual Studio

PreEmptive Protection - Dotfuscator memberikan perlindungan yang komprehensif untuk aplikasi .NET yang mudah diintegrasikan ke dalam siklus hidup pengembangan perangkat lunak aman Anda. Aplikasi desktop, seluler, server, dan tersemat dapat diperkuat, dilindungi, dan dioptimalkan untuk membantu mengamankan rahasia dagang dan kekayaan intelektual (IP) lainnya, mengurangi pembajakan dan pemalsuan, dan melindungi dari perusakan dan pelacakan kesalahan yang tidak sah. Dotfuscator bekerja pada rakitan yang dikompilasi tanpa perlu lebih banyak pemrograman atau bahkan akses ke kode sumber.

PreEmptive Protection - Dotfuscator

Mengapa perlindungan penting

Penting untuk melindungi kekayaan intelektual (IP) Anda. Kode aplikasi Anda berisi detail desain dan implementasi, yang dapat dianggap IP. Namun, aplikasi yang dibangun di atas .NET Framework berisi metadata yang signifikan dan kode menengah tingkat tinggi, membuatnya mudah untuk direkayasa balik, hanya dengan menggunakan salah satu dari banyak alat otomatis gratis. Dengan mengganggu dan menghentikan rekayasa balik, Anda dapat mencegah pengungkapan IP yang tidak sah, dan menunjukkan bahwa kode Anda berisi rahasia perdagangan. Dotfuscator dapat mengaburkan rakitan .NET Anda untuk menghambat rekayasa balik, sambil mempertahankan perilaku aplikasi asli.

Penting juga untuk melindungi integritas aplikasi Anda. Selain rekayasa terbalik, pelaku jahat dapat mencoba membajak aplikasi Anda, mengubah perilaku aplikasi pada waktu proses, atau memanipulasi data. Dotfuscator dapat menyuntikkan aplikasi Anda dengan kemampuan untuk mendeteksi dan merespons penggunaan yang tidak sah, termasuk perusakan, debug pihak ketiga, dan perangkat berakar.

Untuk informasi selengkapnya tentang bagaimana Dotfuscator cocok dengan siklus hidup pengembangan perangkat lunak yang aman, lihat halaman Perlindungan Aplikasi SDL dari PreEmptive Solutions.

Tentang Dotfuscator Community

Versi Microsoft Visual Studio Anda menyertakan salinan PreEmptive Protection - Dotfuscator Community, untuk penggunaan pribadi secara gratis. (Versi gratis ini sebelumnya dikenal sebagai Dotfuscator Community Edition atau Dotfuscator CE.)

Untuk petunjuk tentang cara menginstal versi Komunitas Dotfuscator yang disertakan dengan Visual Studio, lihat halaman Penginstalan .

Dotfuscator Community menawarkan berbagai perlindungan perangkat lunak dan pengerasan layanan untuk pengembang, arsitek, dan penguji. Contoh .NET Obfuscation dan fitur Perlindungan Aplikasi lainnya yang disertakan dalam Komunitas Dotfuscator adalah:

  • Penggantian nama pengidentifikasi untuk mempersulit rekayasa balik rakitan terkompilasi.
  • Anti-manipulasi untuk mendeteksi eksekusi aplikasi yang dimanipulasi dan mengakhiri atau merespons sesi yang telah dimanipulasi.
  • Anti-debug untuk mendeteksi lampiran debugger ke aplikasi yang sedang berjalan dan mengakhiri atau merespons sesi debug.
  • sistem anti-root untuk mendeteksi apakah aplikasi berjalan pada perangkat Android yang telah di-root dan untuk menghentikan atau merespons sesi di perangkat tersebut.
  • Perilaku kedaluwarsa aplikasi yang mengodekan tanggal "akhir masa pakai" dan mengakhir sesi aplikasi yang kedaluwarsa.

Untuk detail tentang fitur-fitur ini, termasuk bagaimana mereka cocok dengan strategi perlindungan aplikasi Anda, lihat halaman Kemampuan .

Komunitas Dotfuscator menawarkan perlindungan dasar secara langsung. Bahkan lebih banyak langkah perlindungan aplikasi tersedia untuk pengguna terdaftar Dotfuscator Community, dan untuk pengguna PreEmptive Protection - Dotfuscator Professional, .NET Obfuscator terkemuka di dunia. Untuk informasi tentang meningkatkan Dotfuscator, lihat halaman Peningkatan .

Memulai

Untuk mulai menggunakan Komunitas Dotfuscator dari Visual Studio, ketik dotfuscator ke dalam Kotak Pencarian (Ctrl+Q).

  • Jika Dotfuscator Community sudah diinstal, Kotak Pencarian memperlihatkan opsi untuk memulai Dotfuscator Community di bawah bagian Menu. Untuk informasi lebih lanjut, lihat halaman Memulai dari Panduan Pengguna Komunitas lengkap untuk Dotfuscator.
  • Jika Dotfuscator Community belum diinstal, Kotak Pencarian justru menunjukkan Instal Perlindungan PreEmptive - Dotfuscator di bawah judul Komponen Individu. Lihat halaman Penginstalan untuk detailnya.

Anda juga bisa mendapatkan versi terbaru Komunitas Dotfuscator dari halaman Unduhan Dotfuscator di preemptive.com.

Peningkatan dari Komunitas Dotfuscator 5

Pelajari cara meningkatkan ke PreEmptive Protection - Dotfuscator Community 6.

Bergantung pada riwayat penginstalan dan versi Visual Studio, Anda mungkin saat ini menjalankan Dotfuscator Community 5, versi utama sebelumnya. Jika demikian, Anda harus meningkatkan, karena penting untuk memastikan kode Anda diberikan langkah-langkah perlindungan terbaru . Peningkatan tersedia tanpa biaya.

Artikel ini menjelaskan cara menentukan versi apa yang saat ini Anda miliki, cara meningkatkan ke versi 6 jika perlu, dan fitur apa yang telah diganti atau dihapus di antara kedua versi.

Menentukan versi untuk Dotfuscator

Jika Anda tidak yakin versi Dotfuscator apa yang Anda jalankan, Anda dapat menentukan versi dengan melakukan salah satu opsi berikut:

  • Luncurkan antarmuka pengguna grafis (GUI) Dotfuscator Community dengan masuk ke menu Alat Visual Studio dan pilih PreEmptive Protection - Dotfuscator Community.

    Pada GUI Dotfuscator, buka menu Bantuan, dan pilih Tentang... untuk menampilkan halaman Tentang.

    Layar ini mencantumkan versi Dotfuscator.

  • Jika Anda memiliki Dotfuscator yang terintegrasi ke dalam build Anda dengan antarmuka baris perintah , Anda juga dapat memeriksa log build Anda untuk baris seperti contoh berikut:

    Dotfuscator Community Version 5.42.0.9514-e0e25f754
    

    Anda mungkin perlu meningkatkan tingkat keterperincian proses kompilasi Anda untuk melihat teks ini. Untuk Visual Studio, lihat Pengaturan Verbositas.

Angka bulat pertama pada versi, sebelum titik pertama ., menunjukkan versi mayor Dotfuscator. Jika bilangan bulat pertama 5, maka Anda harus melakukan langkah-langkah peningkatan di halaman ini, sehingga Anda dapat memanfaatkan fitur Dotfuscator 6 terbaru dan pembaruan perlindungan.

Instruksi Upgrade

Bagian ini mencakup serangkaian instruksi untuk meningkatkan penggunaan khas Komunitas Dotfuscator dari versi 5 ke versi 6.

Menginstal Dotfuscator 6

Komunitas Dotfuscator didistribusikan sebagai ekstensi untuk Visual Studio. Instruksi untuk menginstal Dotfuscator 6 bervariasi menurut versi Visual Studio mana yang Anda miliki:

  • Visual Studio 2022 Dotfuscator Community 6 disertakan dalam Visual Studio 2022.

  • Visual Studio 2019 Dotfuscator Community 6 disertakan dalam versi Visual Studio 2019 yang lebih baru (versi 16.10.0 dan yang lebih baru). Memperbarui Visual Studio 2019 ke versi terbaru. Memperbarui Visual Studio secara otomatis meningkatkan penginstalan Dotfuscator Community 5 ke Dotfuscator Community 6.

    • Jika Anda belum menginstal Dotfuscator, perbarui Visual Studio terlebih dahulu lalu lihat penginstalan .

    • Selain rilis dengan Visual Studio, Anda selalu bisa mendapatkan versi terbaru Dotfuscator Community dari halaman Dotfuscator Unduhan.

  • Visual Studio 2017 Versi Visual Studio ini hanya dikirim dengan Dotfuscator Community 5. Namun, Anda dapat menginstal atau meningkatkan ke Komunitas Dotfuscator 6 dengan membuka halaman Unduhan Dotfuscator dan memilih tautan unduhan yang sesuai.

    Jalankan file .vsix yang diunduh dan ikuti perintah untuk menginstal Komunitas Dotfuscator 6 ke Visual Studio. Penginstalan Dotfuscator Community 5 yang ada juga akan ditingkatkan.

  • Versi Visual Studio Dotfuscator Community 6 yang lebih lama tidak didukung dalam versi Visual Studio ini. Kami merekomendasikan untuk meningkatkan ke versi Visual Studio yang lebih baru, atau upgrade dari Komunitas Dotfuscator ke Dotfuscator Professional.

Jika Anda sebelumnya telah mendaftarkan Dotfuscator Community 5, pendaftaran tersebut akan secara otomatis dikonversi ketika Anda menjalankan Dotfuscator Community 6 untuk pertama kali.

Memperbarui jalur ke CLI

Jika sebelumnya Anda menggunakan antarmuka baris perintah Dotfuscator 5 (CLI) untuk melindungi aplikasi, Anda perlu memperbarui jalur ke CLI di proyek apa pun dan membangun skrip yang mereferensikannya.

Alasan jalur ke CLI Dotfuscator sekarang mungkin tidak valid adalah karena nama beberapa executable yang diinstal dengan Komunitas Dotfuscator telah berubah di Dotfuscator 6. Perubahan ini membuat nama yang dapat dieksekusi ini sama di seluruh Dotfuscator Community dan Dotfuscator Professional.

Dapat dieksekusi untuk... Dotfuscator 5 Dotfuscator 6
GUI dotfuscator.exe dotfuscatorUI.exe
CLI dotfuscatorCLI.exe dotfuscator.exe

Nota

Jalur CLI mungkin juga tidak valid jika Anda melakukan upgrade antara versi utama Visual Studio atau beralih edisi Visual Studio, karena CLI Dotfuscator diinstal dalam direktori instalasi Visual Studio. Gejala dan solusi yang tercantum di bawah ini juga berlaku untuk skenario ini.

Jika build Anda menggunakan jalur CLI Dotfuscator yang tidak valid, Anda mungkin mendapatkan kesalahan seperti salah satu contoh berikut:

'"[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe"' is not recognized as an internal or external command, operable program or batch file.

The command ""[...]\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe" Dotfuscator.xml" exited with code 9009.

Untuk memperbarui build Anda agar menggunakan jalur CLI yang benar:

  1. Mulai GUI Komunitas Dotfuscator dengan membuka menu Alat Visual Studio dan pilih Perlindungan PreEmptive - Komunitas Dotfuscator .

  2. Di GUI Komunitas Dotfuscator, buka menu Alat dan pilih Prompt Perintah Dotfuscator.

  3. Di prompt perintah yang terbuka, ketik where dotfuscator.exe. Salin jalur pertama yang ditampilkan ke dokumen teks biasa untuk referensi nanti. Jalur ini adalah jalur baru ke CLI Komunitas Dotfuscator 6.

  4. Buka proyek atau konfigurasi build yang sesuai untuk sistem build Anda.

    • Untuk proyek Visual Studio, buka file proyek (.csproj, .vbproj, atau .fsproj) sebagai teks biasa. Buka file proyek di Visual Studio.
  5. Temukan tempat apa pun dalam proyek Anda atau bangun konfigurasi di mana jalur lama ke CLI Dotfuscator Community 5 digunakan. Biasanya merupakan jalur yang berakhir dengan dotfuscatorCLI.exe.

  6. Ganti jalur lama yang terletak di langkah 5 dengan jalur baru yang Anda catat di langkah 3.

    Jika salah satu jalur lama bukan jalur absolut, maka Anda harus menyesuaikan jalur baru dengan tepat berdasarkan konteks. Dalam contoh di bawah ini, variabel lingkungan VSInstallDir digunakan di jalur lama, sehingga jalur baru yang sesuai harus melakukan hal yang sama.

    • Jalur baru dari langkah 3: C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
    • Jalur lama dalam file proyek: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscatorCLI.exe
    • Jalur baru dalam file proyek: %VSInstallDir%\Common7\IDE\Extensions\PreEmptiveSolutions\DotfuscatorCE\dotfuscator.exe
  7. Jika Anda menggunakan sistem kontrol sumber, seperti Git, pastikan perubahan dari langkah 6 tercermin dalam sistem tersebut. Sebarluaskan perubahan ini kepada tim Anda sebagaimana sesuai untuk sistem dan organisasi Anda.

Peringatan

Karena dotfuscator.exe mengacu pada antarmuka pengguna grafis (GUI) di Dotfuscator 5 tetapi mengacu pada antarmuka baris perintah (CLI) di Dotfuscator 6, berhati-hatilah saat memperbarui skrip build yang dibagikan di beberapa komputer.

Komputer dengan Dotfuscator 5 terinstal yang menjalankan skrip yang diperbarui untuk Dotfuscator 6 menyebabkan skrip meluncurkan antarmuka pengguna grafis, alih-alih antarmuka baris perintah yang dimaksudkan. Ini dapat menyebabkan build berhasil meskipun tidak menerapkan perlindungan Dotfuscator, yang berarti paket output Anda TIDAK akan dilindungi.

Dalam kasus lain, dapat justru menyebabkan kegagalan build.

Untuk menghindari skenario ini, tingkatkan Komunitas Dotfuscator dari versi 5 ke versi 6 di semua komputer Anda dan bangun skrip secara bersamaan.

Memperbarui file konfigurasi Dotfuscator

Semua file konfigurasi Dotfuscator (seperti Dotfuscator.xml) yang dibuat sebelum Dotfuscator 6 perlu ditingkatkan.

Jika Anda mencoba menjalankan Dotfuscator CLI dengan file konfigurasi lama, Anda mendapatkan kesalahan seperti contoh berikut:

Dotfuscator Engine Initialization error: PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. Please open your Dotfuscator config in the Config Editor which automatically upgrades it.

Penting

Anda menerima kesalahan ini dan perlu meningkatkan file konfigurasi Anda meskipun Anda tidak menggunakan fitur yang disebutkan.

Untuk meningkatkan file konfigurasi:

  1. Luncurkan antarmuka pengguna grafis (GUI) Dotfuscator Community dengan masuk ke menu Alat Visual Studio dan pilih PreEmptive Protection - Dotfuscator Community.

  2. Buka file konfigurasi Dotfuscator yang dimaksud (Ctrl+O).

  3. Pesan berikut ditampilkan di tab Output Build:

    PreEmptive Analytics, Authenticode signing, and the Introduce Explicit Method Overrides setting are no longer supported. The associated settings have been removed. Please save your upgraded Dotfuscator config.

  4. Simpan file konfigurasi Dotfuscator yang diperbarui (Ctrl+S).

  5. Jika Anda menggunakan sistem kontrol sumber, seperti Git, pastikan perubahan pada file konfigurasi Dotfuscator tercermin dalam sistem tersebut. Sebarkan perubahan ini ke seluruh tim Anda sesuai dengan sistem dan organisasi Anda.

Memperbarui referensi ke pustaka atribut

Dotfuscator memungkinkan Anda mengonfigurasi fitur tertentu melalui atribut .NET dalam kode sumber Anda. Jika proyek Anda menggunakan atribut tersebut, Anda mungkin perlu memperbaruinya untuk mengatasi perubahan di Dotfuscator 6.

Atribut pengaburan

Belum ada perubahan pada atribut Obfuscation. Atribut ini didefinisikan dalam pustaka kelas dasar .NET, dan Komunitas Dotfuscator 6 terus menghormatinya.

Periksa Atribut

Pustaka yang berisi Periksa Atribut telah berubah. Di Dotfuscator Community 5, itu didistribusikan sebagai file bersama Dotfuscator itu sendiri. Mulai dari Dotfuscator Community 6, paket ini didistribusikan sebagai paket NuGet publik.

Jika Anda mencoba membuat proyek Visual Studio yang masih mereferensikan lokasi lama, Anda mungkin mendapatkan kesalahan seperti contoh berikut:

The type or namespace name 'PreEmptive' could not be found (are you missing a using directive or an assembly reference?)

The type or namespace name 'TamperCheckAttribute' could not be found (are you missing a using directive or an assembly reference?)

Anda mungkin juga mendapatkan peringatan ini:

Could not resolve this reference. Could not locate the assembly "PreEmptive.Attributes". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

Untuk memperbarui proyek Anda untuk menggunakan lokasi baru:

  1. Hapus referensi assembli proyek ke PreEmptive.Attributes.dll.

  2. Tambahkan PreEmptive.Protection.Checks.Attributes referensi paket NuGet ke proyek. Paket tersedia pada umpan NuGet default, nuget.org.

Parameter ExtendedKey dari setiap Atribut Pemeriksaan juga telah dihapus. Parameter ini diabaikan di Dotfuscator Community 5, tetapi jika kode sumber Anda menggunakannya terlepas dari itu, hapus penggunaan ini agar proyek Anda dapat dikompilasi.

Atribut instrumentasi

Atribut instrumentasi digunakan untuk mengonfigurasi fitur PreEmptive Analytics di Dotfuscator 5. Namun, PreEmptive Analytics telah dihapus dari Dotfuscator 6; lihat bagian fitur yang dihapus dalam subbagian Analitik PreEmptive. Akibatnya, atribut instrumentasi juga telah dihapus.

Jika Anda mencoba membuat proyek Visual Studio yang menggunakan atribut instrumentasi, Anda mungkin mendapatkan jenis kesalahan dan peringatan yang sama seperti yang disebutkan dalam Periksa Atribut, meskipun nama atribut berbeda (misalnya, FeatureAttribute alih-alih TamperCheckAttribute).

Jika Anda mencoba menjalankan Dotfuscator pada rakitan yang sudah dibuat yang berisi penggunaan atribut instrumentasi, Anda mendapatkan kesalahan seperti contoh berikut:

The PreEmptive.Attributes.FeatureAttribute attribute (annotating SomeNamespace.SomeType::SomeMethod) is not recognized by this version of Dotfuscator.

Untuk memperbaiki masalah ini, hapus semua penggunaan atribut instrumentasi dari kode sumber Anda. Anda juga perlu menghapus referensi assembly ke pustaka yang mendefinisikan atribut, PreEmptive.Attributes.dll. (Jika Anda juga menggunakan Attribut Cek yang ditentukan dalam pustaka ini, atribut tersebut telah dipindahkan; silakan lihat Attribut Cek di bagian atas.)

Fitur yang dihapus

Dotfuscator Community 6 memperkenalkan perubahan besar yang mempengaruhi kompatibilitas dari Dotfuscator Community 5. Jika Anda telah menggunakan Dotfuscator Community 5, bagian ini menjelaskan cara menangani perubahan yang mungkin memerlukan modifikasi build atau memengaruhi output Dotfuscator.

Daftar lengkap perubahan tersedia di changelog.

Analitik PreEmptive

Dotfuscator 6 tidak mendukung Analitik PreEmptive, termasuk Check Telemetry. Namun, Pemeriksaan (termasuk Pemberitahuan Aplikasi dan Tindakan Pemeriksaan ) masih didukung.

Untuk menggunakan Dotfuscator 6, memperbarui file konfigurasi Anda untuk menghapus pengaturan Analitik PreEmptive.

Jika Anda menggunakan atribut dalam kode untuk mengonfigurasi PreEmptive Analytics, menghapusnya dari kode sumber Anda dan membangun kembali rakitan input Anda sebelum Dotfuscator 6 dapat melindungi rakitan tersebut.

Jika Anda menggunakan Periksa Telemetri untuk melaporkan saat Pemeriksaan mendeteksi status yang tidak valid (seperti ketika perubahan terdeteksi), Anda dapat menggantinya dengan Pemberitahuan Aplikasi kustom yang melaporkan insiden ke Azure Application Insights atau layanan lain pilihan Anda.

Jenis aplikasi yang tidak didukung

Jenis aplikasi berikut tidak lagi didukung di Dotfuscator 6:

  • Windows Phone
  • WinRT (aplikasi Windows 8)
  • Silverlight
  • Unity (mesin permainan)
  • Universal Windows Platform (UWP)

Untuk melindungi jenis aplikasi UWP lainnya, meningkatkan ke Dotfuscator Professional dan mengikuti instruksi Lindungi Aplikasi Anda.

Input yang tidak didukung

Dotfuscator Community tidak lagi mendukung paket Universal Windows Platform (UWP) .appx sebagai masukan . Untuk melindungi aplikasi UWP, meningkatkan ke Dotfuscator Professional dan mengikuti instruksi Lindungi Aplikasi Anda.

Selain itu, paket .xap tidak dapat lagi digunakan sebagai input karena Silverlight tidak lagi didukung.

Memperkenalkan penggantian metode eksplisit

Opsi Penggantian Nama untuk memperkenalkan penggantian metode eksplisit telah dihapus dari Dotfuscator. Untuk menggunakan Dotfuscator 6, meningkatkan file konfigurasi Anda untuk menghapus pengaturan ini.

Dokumentasi lengkap

Lihat Panduan Pengguna Komunitas Dotfuscator lengkap di preemptive.com untuk instruksi penggunaan terperinci, termasuk cara mulai menggunakan antarmuka pengguna Komunitas Dotfuscator.