Obfuscation and not merging

redalertredalert Posts: 3
edited March 3, 2016 4:55PM in SmartAssembly
Hi there,

The following configuration:
1. MainAssembly.exe
2. AssemblyA.dll
3. AssemblyB.dll

Is it possible to obfuscate all three assemblies without merging/embedding them?
So that after obfuscation I still have three obfuscated assemblies and not a single merged assembly.

Thanks,
Sasha

Comments

  • Jessica RJessica R Posts: 1,032 Rose Gold 3
    Hi Sasha,

    Thanks for your post!

    You would need to create a project for each of the assemblies to produce separate obfuscated versions of each.

    Please note though that public members of DLLs are automatically excluded from obfuscation so the DLLs may not be as protected than if you were able to merge them. (If you merge them, then their members become internal to the main assembly and can then be obfuscated without breaking any calls to them.)

    Hope this info helps!

    Jessica Ramos | Product Support Engineer | Redgate Software

    Have you visited our Help Center?


  • Hi Jessica,

    OK, I see.
    Would be nice to have that option in context of a single project.

    Thanks,
    Sasha
  • Jessica RJessica R Posts: 1,032 Rose Gold 3
    Hi Sasha,

    I've +1'd the feature request for this--thanks for the feedback and so sorry there's not an easier way to work with multiple projects at the moment!

    Jessica Ramos | Product Support Engineer | Redgate Software

    Have you visited our Help Center?


  • +1 for me to please.

    We like to use it for solutions containing several projects with several entry points (4-7 exe files) and more than 10 shared dlls.
    Until now we used DeepSeaObfuscator, but it's no longer developed and does not work for assemblies compiled with VS2015.

    DeepSeaObfuscator allowed to pass a bunch of assemblies (simply passing an VS solution file would even be better), like you do when merging or embedding, but without the need to merge or embed.
    It then analyses all assemblies and applies the best obfuscation regarding all of them.
    E.g.: if there is a public method in one of the shared dll assemblies but not used in all of them it was able to strip (or at least also obfuscate) that method although it's public.
    The same goes to classes and other elements.

    When I now like to use SmartAssembly but you tell that it's not able to deal with such (bigger) solution?
    And I need to create one project-settings file for each assembly?

    When do you plan to support this?
    This may be a good reason for us not use SmartAssembly because single assembly protection can never be as good as a protection regarding all assemblies of a solution.

    Greetings
    Harald
  • Jessica RJessica R Posts: 1,032 Rose Gold 3
    Hi Harald,

    I'm afraid that currently, you do need to create a single project-settings file for each assembly. :/

    We unfortunately still don't have an ETA for changing this or for supporting cross-assembly obfuscation.

    So sorry for any inconvenience this causes and if this makes SmartAssembly unusable for you!

    Jessica Ramos | Product Support Engineer | Redgate Software

    Have you visited our Help Center?


Sign In or Register to comment.