I have a solution with many projects, which leads to many dll files.
My question is, is this an obstacle when obfuscating and should I optimize this in some way?
Or it is just a matter of public/private fields/methods?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
No, you definitely should not be compromising your project layout structure just for an obfuscator.
In general, obfuscators have a mode where you can say “here is my entire system, assume nobody else is doing anything” which effectively says, treat this as if it was one block of code.
Techniques like using
internaltogether withInternalsVisibleToAttributecan be used (many obfuscators will be more agressive by default withinternalstuff thanpublicstuff.Anything that needs to remain as-is for e.g.,
System.Reflection-based ordynamic-based access can be marked withObfuscationAttributeto tell the obfuscator “Don’t touch that”.There are other tradeoffs to be considered in whether one puts in facade layers that act as bridges between components and then create internal classes behind that – depending on the context that may either make it easier to reverse engineer (you’re handing otu a quick summary) or harder (you had a core class and were giving away loads of clues by having some key methods on it not e.g. renamed).