Cross assembly obfuscation support FAQ
We often receive questions about the support for cross assembly obfuscation in CodeFort. On this page we have collected some information about this topic.
Does CodeFort support cross-assembly renaming?
Yes, CodeFort natively supports cross-assembly obfuscation. All type, method, field etc. references are fully qualified and resolved. This means that every reference will be obfuscated in complete sync with its corresponding definition. It requires though that both the referencing assembly and the referenced assembly is part of the project (e.g. visible on the Assemblies page, and not manually excluded).
If dll “A” is friend of dll “B”, but “A” is not included in the obfuscation project, will internal member of B be obfuscated anyway?
Yes, internal members of dll's and exe's are obfuscated by default.
Suppose you have a Silverlight XAP which contains multiple assemblies. For example, your XAP includes 3 of your own assemblies that you have developed, plus 2 third-party assemblies (which may or may not have already been obfuscated). Is CodeFort able to obfuscate all 5 assemblies in a safe manner? Or is it only safe to obfuscate your own assemblies?
Answer: It is perfectly safe to let CodeFort obfuscate all 5 assemblies. CodeFort natively supports cross assembly obfuscation, which means that all references to types and members from other assemblies, will automatically be obfuscated in sync with the definitions.
However, whether or not you will succesfully obfuscate the third-party assemblies, depends on whether or not they are signed with a strong name. If this is the case, you need access to the key file containing the original strong name key. If you don't provide a key, CodeFort will automatically skip the assemblies from being processed (because if we were to process them, they would break because of the missing strong name signatures), and all references to the skipped assemblies will be skipped as well.
(Continued:) If I obfuscate my own 3 assemblies at the same time, will CodeFort completely obfuscate them, i.e. will it also rename public types/methods that are referenced between these assemblies? Or would I get better obfuscation by merging all my code into a single assembly?
Actually you get a better protection by letting your assemblies stay apart. CodeFort completely obfuscates your assemblies and all references between them (using the Reference Scrambling feature). This way, all method calls between the assemblies will be scrambled and de-linked, which makes it harder to reverse engineer, than if you were only using Obfuscation.
Add comment

User Comments