I have an application that has 1 referenced assembly (test.exe, test.dll)
What I want is when the test.exe
runs, it should show publisher name as "TestCompany".
To do that, I digitally signed it and it does what I want. And if I alter one byte of test.exe
the publisher name is "Unknown". Which is good.
But if I alter the test.dll
, the app runs as nothing happened and shows publisher name as "TestCompany". Which is not good for me.
So I put strong name on test.dll
and added <bypassTrustedAppStrongNames enabled="false" />
in app.config.
Again, no difference. So I searched again and found out bypassTrustedAppStrongNames
only checks if assemblies has strong name or not. Not the verification. Which is not good for me again.
What I exactly want is to protect the user, not my application. If user runs my application and it says its from me, it must be from me as every single byte. If the app was altered, even a single byte, it must notify user, its not from me. Which is what digitally sign suppose to do along with strong name but they all seems not so good yet. Or am I missing something ?
The last possible way I can think of is to manually check the strong name of assembly.
PS : Target .net framework is 2.0
StrongNameSignatureVerificationEx
but I was expecting something that check itself as it was intended to. They disabled the verification from framework 3.5 to speed up the startup of app. But even disabling that is broken too. – Thinnish