У меня есть приложение, которое имеет 1 ссылочную сборку (test.exe, test.dll)
Я хочу, чтобы при запуске test.exe
имя издателя отображалось как «TestCompany».
Для этого я подписал его цифровой подписью, и она делает то, что я хочу. И если я изменю один байт test.exe
, имя издателя будет «Неизвестно». Что хорошо.
Но если я изменю test.dll
, приложение запустится, так как ничего не произошло, и отображает имя издателя как «TestCompany». Что не хорошо для меня.
Поэтому я добавил строгое имя в test.dll
и добавил <bypassTrustedAppStrongNames enabled="false" />
в app.config.
bypassTrustedAppStrongNames
проверяет, имеет ли сборка строгое имя или нет. Не проверка. Что опять нехорошо для меня.
Что я хочу, так это защитить пользователя, а не мое приложение. Если пользователь запускает мое приложение и говорит, что оно от меня, оно должно быть от меня, как и каждый байт. Если приложение было изменено хотя бы одним байтом, оно должно уведомить пользователя, а не от меня. Это то, что цифровой знак должен делать вместе со строгим именем, но все они пока не так хороши. Или я что-то упустил?
Последний возможный способ, который я могу придумать, - это вручную проверить строгое имя сборки.
PS: Target .net Framework является 2.0