I have two, third party assemblies:
Foo.dll
and
ReferencesFoo.dll
As noted, ReferencesFoo.dll is an assembly that has a reference to Foo.dll
For my application, I need to resign these assemblies. I use ildasm/ilasm in combination along with a signing key to resign them, however, ReferencesFoo.dll still contains (in it’s manifest?) the reference to the Foo.dll old public key and public key token.
So, how do I sign both dll’s with my key, and update the references in ReferencesFoo.dll without getting the source code and recompiling?
You can sign an assembly with the SN.exe tool (using the -R switch to resign an already signed assembly).
But you have to be aware that modifying a third party component might likely be illegal. So make sure there are no legal problems before doing so.
And I’m not aware of any tools to automatically change references. You can find them in the metadatatable #35 which is structured as follows:
BuildNumber, RevisionNumber (2-byte
constants)
AssemblyFlags)
heap – the public key or token that
identifies the author of this
Assembly)