Limited support for multiple assemblies
logandam
Posts: 4
My company purchased SmartAssembly because we've had an incident where one of our ex clients started making their own version of our software. I've been tasked with using it to obfuscate our code to make it a little more difficult to do so.
Now I understand that a lot of applications generally have one main executable with one or two libraries, and SmartAssembly makes it really easy to manage everything if that's the case since you can embed your libraries within your main application. That's great for that use case. But I am struggling to come up with ideas on how to do this with our applications, which have several hundred separate executables (our applications have some main processes that monitor for work and fire off separate individual processes based on the work) and each one loads a common set of libraries (and even those can differ). This means we can't do the embedding because then we're going to increase the size of each binary several times their original size which is just a waste of size, and it also makes it a pain to set up a separate project for every single executable.
I know there is a command line interface to SmartAssembly but it still relies on having project files. Ideally I'd like to just be able to use the command line to do something along the lines of "smartassembly -i <input> -o <output> [options]" or have one SmartAssembly project for every binary we have.
I've searched on the net and had a look at the documentation and I haven't come up with anything like this. Is it possible for SA to do what I describe above or am I going to have to set a day where I just make projects for all 400+ assemblies we have?
Now I understand that a lot of applications generally have one main executable with one or two libraries, and SmartAssembly makes it really easy to manage everything if that's the case since you can embed your libraries within your main application. That's great for that use case. But I am struggling to come up with ideas on how to do this with our applications, which have several hundred separate executables (our applications have some main processes that monitor for work and fire off separate individual processes based on the work) and each one loads a common set of libraries (and even those can differ). This means we can't do the embedding because then we're going to increase the size of each binary several times their original size which is just a waste of size, and it also makes it a pain to set up a separate project for every single executable.
I know there is a command line interface to SmartAssembly but it still relies on having project files. Ideally I'd like to just be able to use the command line to do something along the lines of "smartassembly -i <input> -o <output> [options]" or have one SmartAssembly project for every binary we have.
I've searched on the net and had a look at the documentation and I haven't come up with anything like this. Is it possible for SA to do what I describe above or am I going to have to set a day where I just make projects for all 400+ assemblies we have?
Comments
http://documentation.red-gate.com/displ ... +line+mode
The /create argument lets you specify an .saproj file that contains the automatically-generated project. You can try this in a batch:
FOR %N in (*.exe) do "c:\program files\red gate\smartassembly 6\smartassembly.com" /create "c:\SAProjects\%N.saproj" /Input "%N" /output "c:\protectesassemblies\%N"
I hope this helps.