Я пытаюсь понять суть сборок с сильными именами в .NET. Погуглив об этом, я заметил, что везде говорится, что он гарантирует, что код исходит от меня и не был подделан. Итак, я проверил это. Я создал простую DLL, подписал ее с помощью вновь созданного ключа PFX и сослался на нее в своем приложении WPF. И хорошо, все работает. Когда я компилирую DLL с другим файлом PFX, я получаю сообщение об ошибке, так что все в порядке.
НО, когда я декомпилирую DLL с помощью ildasm, модифицирую ее и перекомпилирую с помощью ilasm, приложение WPF по-прежнему работает без каких-либо ошибок. Поэтому я подделал DLL со строгим именем и изменил ее вручную на старую, а приложение все еще работает с подделанной DLL. PublicKeyToken - это то же самое. Так в чем же смысл сильных имен? Это не гарантирует, что код не был подделан, так как я строго назвал его.