Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 22989|Jawab: 1

[Formulir Menang] .net/c# menggunakan tanda tangan yang kuat untuk melindungi dll-nya sendiri agar tidak dipalsukan

[Salin tautan]
Diposting pada 19/10/2017 17.31.40 | | | |
Bagaimana aplikasi .net/c# menjamin bahwa dll yang dipanggil tidak digantikan oleh pemalsuan?
https://www.itsvse.com/thread-4173-1-1.html
(Sumber: Arsitek)

Terakhir kali, kami menguji bahwa dll dapat dipalsukan oleh orang lain dan dieksekusi, bagaimana cara mencegahnya?



Pengenalan Tanda Tangan:
Tanda tangan perakitan (juga dikenal sebagai tanda tangan nama yang kuat) memberi aplikasi atau komponen identitas unik yang dapat digunakan perangkat lunak lain untuk secara eksplisit mengidentifikasi dan mereferensikan aplikasi atau komponen. Nama yang kuat terdiri dari nama teks sederhana rakitan, nomor versi, informasi regional (jika disediakan), dan pasangan kunci publik/pribadi.

Misalnya, penamaan yang kuat memungkinkan penulis dan administrator aplikasi untuk menentukan versi yang tepat dari satu layanan yang akan digunakan oleh komponen bersama. Hal ini memungkinkan aplikasi yang berbeda untuk menentukan versi yang berbeda tanpa memengaruhi yang lain. Anda juga dapat menggunakan nama komponen yang kuat sebagai bukti keamanan untuk menghasilkan hubungan kepercayaan antara kedua komponen.

Untuk menandatangani rakitan dengan kuat, Anda tidak perlu menandatangani sertifikat digital dengan kode yang dibeli, Anda dapat membuat file SNK dengan alat sn yang disediakan oleh .NET, dan Anda dapat menjamin tanda tangan rakitan Anda dengan menyimpan file ini.

Namun, tanda tangan yang kuat untuk rakitan tidak sama dengan tanda tangan digital untuk file yang dapat dieksekusi (bahkan jika rakitan adalah file exe). Dan MSDN dengan jelas mengatakan bahwa file exe tidak boleh ditandatangani dengan kuat (meskipun saya melakukannya). Tanda tangan digital untuk file sebenarnya melampirkan tanda tangan ke file apa pun di tingkat sistem file, memberi tahu sistem operasi siapa penerbit file ini. Dalam dialog properti file, Anda dapat melihat tab "Tanda Tangan Digital".


Kami sangat menandatangani dll, dan kemudian memanggilnya dengan program, yang dapat dieksekusi secara normal, sebagai berikut:


Bagaimana jika, kita mengganti dll dengan dll palsu? Ujilah, dan temukan bahwa eksekusinya adalah kesalahan, yang secara efektif dapat mencegah dll yang memanggil dipalsukan (Saya mengujinya, memodifikasi kode dll yang ditandatangani, dan kemudian membuatnya ulang, dan aplikasi juga dapat dipanggil secara normal, itu harus selama program ditandatangani dengan benar!!

Kesalahannya adalah sebagai berikut:

Untuk informasi selengkapnya tentang memanggil debugging real-time (JIT) alih-alih dialog ini,
Lihat akhir pesan ini.

Teks yang Tidak Biasa **************
System.IO.FileLoadException: 未能加载文件或程序集“dllFrom, Version=1.0.0.0, Culture=neutral, PublicKeyToken=eb67821f2cf76b4e”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
Nama file: "dllFrom, version=1.0.0.0, culture=neutral, PublicKeyToken=eb67821f2cf76b4e"
   Dalam TestDll.Form1.button1_Click_1 (Pengirim objek, EventArgs e)
   Di System.Windows.Forms.Control.OnClick(EventArgs e)
   Di System.Windows.Forms.Button.OnClick(EventArgs e)
   Di System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   Di System.Windows.Forms.Control.WmMouseUp (Message& m, tombol MouseButtons, klik Int32)
   Di System.Windows.Forms.Control.WndProc(Message& m)
   Di System.Windows.Forms.ButtonBase.WndProc(Message& m)
   Di System.Windows.Forms.Button.WndProc(Message& m)
   Di System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   Di System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   Di System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Peringatan: Pengelogan pengikatan rakitan dinonaktifkan.
Untuk mengaktifkan pencatatan kegagalan pengikatan perakitan, atur nilai registri [HKLM\Software\Microsoft\Fusion!" EnableLog (DWORD) diatur ke 1.
Catatan: Akan ada beberapa penalti kinerja yang terkait dengan pencatatan kegagalan pengikatan perakitan.
Untuk mematikan fitur ini, hapus nilai registri [HKLM\Software\Microsoft\Fusion!] EnableLog]。



Rakitan yang Dimuat **************
mscorlib
    Versi perakitan: 4.0.0.0
    Versi Win32: 4.7.2098.0 dibangun oleh: NET47REL1LAST
    Kode dasar: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
Uji Dll
    Versi perakitan: 1.0.0.0
    Versi Win32: 1.0.0.0
    Kode dasar: file:///C:/Users/itsvse_pc/Desktop/dllForm/TestDll/bin/Debug/TestDll.exe
----------------------------------------
Sistem.Windows.Formulir
    Versi perakitan: 4.0.0.0
    Versi Win32: 4.7.2094.0 dibangun oleh: NET47REL1LAST
    Kode dasar: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
Sistem
    Versi perakitan: 4.0.0.0
    Versi Win32: 4.7.2093.0 dibangun oleh: NET47REL1LAST
    Kode dasar: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
Sistem.Menggambar
    Versi perakitan: 4.0.0.0
    Versi Win32: 4.7.2046.0 dibangun oleh: NET47REL1
    Kode dasar: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Sistem.Konfigurasi
    Versi perakitan: 4.0.0.0
    Versi Win32: 4.7.2046.0 dibangun oleh: NET47REL1
    Kode dasar: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
Sistem.Inti
    Versi perakitan: 4.0.0.0
    Versi Win32: 4.7.2098.0 dibangun oleh: NET47REL1LAST
    Kode dasar: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
Sistem.xml
    Versi perakitan: 4.0.0.0
    Versi Win32: 4.7.2046.0 dibangun oleh: NET47REL1
    Kode dasar: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Sistem.Windows.Formulir.sumber daya
    Versi perakitan: 4.0.0.0
    Versi Win32: 4.7.2046.0 dibangun oleh: NET47REL1
    Kode dasar: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
mscorlib.resources
    Versi perakitan: 4.0.0.0
    Versi Win32: 4.7.2046.0 dibangun oleh: NET47REL1
    Kode dasar: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/mscorlib.resources.dll
----------------------------------------

************** Debugging JIT
Untuk mengaktifkan penelusuran kesalahan real-time (JIT),
Itu harus diatur di bagian system.windows.forms dari file .config (machine.config) aplikasi atau komputer
jitDebugging.
Itu juga harus diaktifkan saat mengkompilasi aplikasi
Penelusuran kesalahan.

Sebagai contoh:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

Pengecualian apa pun yang tidak ditangani setelah penelusuran kesalahan JIT diaktifkan
akan dikirim ke debugger JIT yang terdaftar di mesin ini,
Alih-alih ditangani oleh dialog ini.







Mantan:Bagaimana aplikasi .net/c# menjamin bahwa dll yang dipanggil tidak digantikan oleh pemalsuan?
Depan:fsadf{:1_2:}
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com