Sunday, January 16, 2011

Eazfuscator.NET 3.0 Released

I just want to say that Eazfuscator.NET 3.0 has been released just a couple of minutes ago.

This release includes a great set of the new features:
  • Assemblies embedding with encryption and compression. Assembly's dependencies can be embedded into the assembly itself, this is a great way for creating single-file deployed applications
  • Debugging. Eazfuscator.NET now handles .pdb files, so you can debug your code after obfuscation
  • String compression. Large strings are compressed during obfuscation. Compressed strings are decompressed on demand during the run time. The decompression algorithm is incredibly fast, so there is no performance penalty observed — the actual decompression speed comes very close to the speed of a simple memory copy. String compression and the corresponding decisions are the parts of an automatic process, so you don't have to put any efforts here; Eazfuscator.NET does this all for you.
The release contains a set of other improvements as well.

There is a lot of ongoing work for better WPF, Silverlight and Windows Phone support, plus some other new great features are being developed and evaluated and will find their ways in new Eazfuscator.NET releases.

I would like to thank all those who made a feedback on Eazfuscator.NET and helped to make it better. Thank you!

Get your copy right now!

21 comments:

  1. I just want to say thanks for this great application. I'm using it for a while on my own small freeware project.

    Regards

    Kevin

    ReplyDelete
  2. Your donation to the software community is highly appreciated. Thank you for it. I would send you a copy of the software for free, for the help soon.

    Vijay S

    ReplyDelete
  3. Hi,

    Firstly, thanks for a great piece of software, It's great to see that it is alive and kicking in 2011.
    However, I think it is a mistake to require .Net 4.0 in order to use it. I myself have .Net 4.0 but I target my libraries to 2.0 because so much of the business community are still stuck with that version.
    For this reason, I've had to download version 2.8.
    What worries me though is that any future bug fixes will only be made to 3.x. Is this correct?

    I also have a suggestion for a rule to ignore certain method renames.
    Often, I will implement the methods: ResetXXX and ShouldSerializeXXX which deal with the default values of a property called XXX.
    To avoid intellisense clutter, I also set these methods as private, but because they are private, eazfuscator will rename them.
    You could implement a simple rule that looked for ResetXXX and ShouldSerializeXXX and if a property also exists called XXX, don't rename them.

    Hope that helps, and thanks again for the library.

    ReplyDelete
  4. Actually, I just need to correct the second part of my post.
    If XXX is found, it shouldn't be marked as not rename, but instead your obfuscator should ensure that the renameing of the property and two methods are all synchronized.

    For instance, if a property was renamed to QYUIY, then the methods should be renamed to ResetQYUIY and ShouldSerializeQYUIY.

    ReplyDelete
  5. Good tip, ActiveFish. As far as I understand you are talking about designable components.

    Regarding .NET 4.0. You don't have to worry here, Eazfuscator instantly supports multi-targeting. For example, if you assemblies targeted to .NET 2.0 then they will remain in this state after obfuscation. Visual Studio acts the same.

    So you are in safety. NET 4.0 is only required to run the Eazfuscator 2.9+ as a prerequisite. The target framework versions of processed assembles remain the same, of course.

    ReplyDelete
  6. Ah, I see, that's great to hear!

    I think you understand what I was referring to in the other part of my post, but to be sure, here's a link to msdn:

    http://msdn.microsoft.com/en-us/library/53b8022e.aspx

    ReplyDelete
  7. Hi ActiveFinish. The support of designable components has been improved as you suggested. You can try a new beta (3.1.31) and evaluate the improvement:

    http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/BetaPreview.aspx

    ReplyDelete
  8. That's excellent. I'll test it next time I'm on my .Net 4 machine, and report back with the results.

    I have a quick question. Is it possible to temporarily disable all obfuscation with the assembly level attribute? I've tried but that didn't work.

    I know I can perform this task quickly with your .Net assistant, but, unfortunately, I can't use that because I've had to set up my project file manually. (The reason I manually edit the project file is because I have multiple 'Release' configurations that need obfuscating, not just one.)

    Thanks

    ReplyDelete
  9. Oops, a code line above didn't print, I should always use preview!

    It should have said: ...I've tried:

    <Assembly: Obfuscation(Feature:="all", Exclude:=True)>, but it didn't work...

    ReplyDelete
  10. ActiveFinish, there are two ways to go:

    1. Eazfuscator Assistant. Click options, and then set a checkbox for "Disable obfuscation"

    2. Or you can do this:
    [assembly: Obfuscation(Feature = "Apply to *: all", Exclude =
    true, ApplyToMembers = true)]

    ReplyDelete
  11. Hi Oleksiy,
    Great work on this product. I just made a donation to your project from the donation link on your homepage and I highly recommend everyone else using this for a commercial project do the same to support this product and your efforts (C'mon guys, it won't break the bank to send Oleksiy $10 or more, and you know it's worth it).

    In other news... I was excited to see your debugging support in this version, but upon digging into it wasn't exactly what I was expecting. We create modules that plugin to an ERP system, so when a user runs into an unexpected error we can't alway recreate it because we can't get their entire environment in-house to debug it. We used to output the top five items from the Call Stack so we could identify exactly where the issue was occurring, but with obfuscation we can't do that. Do you have any ideas on how we might be able to log the exception call stack in an obfuscated assembly? Even if we have to send them a PDB for debugging purposes or something.

    Thanks for all the great work!

    ReplyDelete
  12. Hi Jeffrey,

    You can use stack trace encryption to get the original stack traces (but without line numbers), please refer to documentation for details. This will give you an ability to output the items from Call Stack as you did before, and this might be enough for your purposes.

    .pdb files can be used as well, this will give the line numbers at the customer's side, but it is not secure for now. Security aspect of .pdb files will be improved in the next versions of Eazfuscator, thus allowing safe .pdb files redistribution.

    ReplyDelete
  13. Perfect, just what I was looking for! Just a thought, it'd be convenient if this could be done as a command line parameter to eazfuscator, something like this:

    --EncryptSymbolsPW "MyPassword"

    Not complaining though, this is great! Thank you.

    ReplyDelete
  14. Отличная программа!!!Советую всем, давно искал хороший обфускатор. This is the best programm of all freeware soft.Good!Thanks a lot!!!

    ReplyDelete
  15. I just want to say thanks for this great application. I'm using it for a while on my own small freeware project.

    ReplyDelete
  16. exellent program!! and free!! thats just too much. thanks for the great program. works like a charm

    ReplyDelete
  17. Shady_Lancer, Assembly Machine, Anonymous - thank you! I'm really pleased to hear that it works for you.

    ReplyDelete
  18. thanks for your program. everyone should use it! :)

    ReplyDelete
  19. After tried your tool not worked my application, the issue I found that is obfuscating enumerators and serial data, is it possible exclude some types, enums or serialized data and etc?

    ReplyDelete
  20. Hi Demo. You can add exclusions with [Obfuscation] attribute. Please refer to documentation for details.

    ReplyDelete
  21. It works perfectly now with Silverlight applications. Much thanks, your work is amazing.

    ReplyDelete