
Tell HN: My new product, Dotpack, a .NET binary packer - daeken
http://daeken.com/dotpack-beta-1
======
modeless
In addition to merging user assemblies, can you include system assemblies and
even the runtime itself? I've always wanted to distribute C# apps as a single
executable file that didn't depend on any runtime at all. I think there are
some products out there that can do this, but last I checked none of them
seemed very good.

~~~
daeken
It's certainly possible, although I'm not certain of the legalities there.
I'll look into it once I get merging of assemblies working. Combined with the
dead code analysis I'm working on, it may end up working out pretty well.
Thanks for the suggestion.

------
MichaelGG
Won't this break XML serialzation? At least, several years ago, XML
serialization used to go compile code (call csc on files) at runtime or
something crazy like that. We were never able to make our dynamically loaded
assemblies work well with XML serialization. I tried a commercial product a
while later and it too had that issue.

Kudos on LMZA - I wish Silverlight would have used that instead of just zip.
It'd make a pretty big impact on size.

~~~
daeken
Nope, this works fine with reflection generally. That sort of introspection,
however, will be incompatible with the obfuscation done in the future. I aim
to detect where it happens, and at least say "hey, this flag is being ignored
since it's going to break things".

As for LZMA, it has a huge impact for sure, but until assembly merging and
dead code analysis are in place, the impact on Silverlight assemblies is going
to be pretty slim.

Dotpack does wonders on standalone binaries as it stands (compresses NVidia FX
Composer to just over 20% of its original size, for instance), but most
Silverlight assemblies only get a 10-20% decrease right now. I'm looking
forward to getting the Silverlight side stable and as high quality as the
standalone side.

------
johns
Is the long-term goal going after SmartAssembly's market?

~~~
daeken
Redgate (owner of SmartAssembly) and Remotesoft in general. Yes. Their tools
don't work worth a damn and they sell way, way too many licenses. I'd love to
take a large chunk out of their market.

~~~
johns
In fairness to Redgate, their tools have always worked for me. SmartAssembly
worked pretty well when I used it too. They're just ridiculously expensive. So
I would love to see some good competition for them.

~~~
ComputerGuru
He's going to be charging 500USD per user per year. {sa} charges 500USD per
user.

~~~
daeken
My price is certainly high, but if there's one thing I've learned in business
it's that it's much easier to lower your price than to raise it.

~~~
nkohari
That's true, but at a $500 price point, you're also reducing your market
substantially due to price elasticity. Be sure to lower the price quickly if
you feel like you're not getting traction.

------
paraschopra
Sorry, but I am curious what the product does. Can someone explain in lay
terms what an exe packer is and why this product is special? Thanks.

~~~
daeken
A binary packer such as Dotpack, UPX, or PEtite compresses an executable and
adds an unpacker to the beginning of it. In this way, you have a self-standing
application that is a fraction of its original size. What sets Dotpack apart
from the popular packing tools is that it works on .NET binaries rather than
general Windows/Linux/Mac binaries.

------
DanBlake
Could you post a protected .exe URL to this thread to play with? Just a simple
crackme would work.

~~~
daeken
If you'd like to take a look at a packed binary, Dotpack itself is packed.
Feel free to peek around at it. For what it's worth, there's little to no
protection as it stands; the unpacker stubs are obfuscated for space reasons,
but the actual assembly is unchanged at this time. Obfuscation will be coming
soon, although I'm unsure of how far I'm going to take it for the release
version.

------
huhtenberg
How is it better than UPX?

~~~
daeken
UPX and other binary packers out there don't support .NET binaries in any way.
There's only one other .NET packer that I'm aware of, and it seems to be dead
(the only traces of it are on shady shareware sites) and quite old.

------
Mrzljak
This "Product" is taken from open source project
<http://exepack.codeplex.com/> ..

ExePack == DotPack

same functionalities .. but one is "Product" and other is opensource project
..

~~~
daeken
The extent of this accusation stems from the fact that both names contain
'Pack', much like every other packer on the planet. One of his many trollish
comments on my blog was this:

    
    
        "Your product" name is DotPack and open source ExePack ;
        Pack part of the name the same . coincidence ?
        To much coincidence in this case .
        
        NM Moscow, Russia
    

At least a dozen HN readers can attest to the fact that I've been working
heavily on this, and two have seen the source first-hand and can confirm that
it's original.

It's offensive to say the least to have such an accusation come up on your own
blog, but eh, such is the internet.

