Re: make entire exe private

Tech-Archive recommends: Fix windows errors by optimizing your registry



On Wed, 02 Jan 2008 04:21:50 -0800, Bob <bshumsky06@xxxxxxxxx> wrote:

[...]
That is a very good point about not being able to make it "impossible"
to reverse engineer IP and the need to put important IP on a server.
I just want to make it a bit more difficult for competitors to reverse
engineer.

Well, okay. If you really want to, that's your prerogative. But you're still forgetting: if the IP has value, your competitors will be sufficiently motivated to get around whatever barriers you try to put in.

Your IP already has legal protection in the form of copyright and, if you play your cards right, patent protection as well (I'm not a big fan of the software patent process, but it does exist and is a legitimate point in this discussion). At the same time, copy protection techniques do not work and are a waste of time and effort. As I said, if your IP has enough value to make it worth protecting, it has enough value to make it worth bypassing your copy protection.

It's interesting to me that you found that dotObfuscator causes your program to crash. While I hadn't heard of this sort of problem before, it's not surprising to me. Copy protection techniques invariably hurt the legitimate consumer, even as they fail to actually prevent copying.

I would be very wary of taking a carefully constructed executable and running it through a third-party program for modification before delivery to the customer. At the very least, you are setting yourself up for a lot of extra work, as _all_ of your testing will need to be done on the obfuscated release of the program, and any anomalous behavior that occurs will require that you not only debug your own code, but that of the obfuscation system you're using.

And of course, no matter what you do, there's always a chance that some serious bug will be induced by the obfuscation system that isn't noted until the program's been released and is in use by the customer. The fact is that, unlike bug-fixes in your own code where you can take steps, especially near the end of the release cycle, to avoid making large changes that could introduce serious problems into other areas of the code, any obufscation technology will, since it's always applying some algorithm to your entire application, run the risk of creating a new bug for even the smallest change to the entire application.

To make things worse, there's no way to contain or restrict the potential risk of that new bug; unlike with a directed, limited approach with your own code, even the smallest change to your own code could result in an arbitrarily disastrous bug caused by the obfuscation.

At the very least, you will probably want to consider minimizing to the fullest extent possible _what_ code is obfuscated. If you must obfuscate, do so only on the smallest portion of your code necessary, and make sure that portion of code is _beyond_ thoroughly tested before release, with _any_ change to the code justifying a completely new test pass through that code, no matter how long that takes or how small the change.

Proceed at your own peril and wastefulness of your own resources.

Pete
.



Relevant Pages

  • Re: About jobfuscate
    ... Obfuscators (and also copy protection) are ... Obfuscation is, essentially, weak encryption. ... encryption but leaves a decryption key in the hands of every would-be ... asymmetric ciphers used to encode symmetric session keys for things ...
    (comp.lang.java.programmer)
  • Re: obfuscatorS & decompilers
    ... > obfuscation plus simple context flow graph obfuscation (like simple loops ... However it is possible to achieve protection even ... > opaque predicates and my call tree flattening scheme. ... > demonstration of a simpliest aspect of call tree transformation technique. ...
    (microsoft.public.dotnet.security)
  • Re: Copy protection for a .NET application
    ... cracking is just as simple on x86 code as it is with IL. ... obfuscation which is a big problem with the idea in general. ... > across .NET Framework Service packs. ... > environments protection is not strongly needed. ...
    (microsoft.public.dotnet.framework)
  • Re: Copy protection for a .NET application
    ... cracking is just as simple on x86 code as it is with IL. ... obfuscation which is a big problem with the idea in general. ... > across .NET Framework Service packs. ... > environments protection is not strongly needed. ...
    (microsoft.public.dotnet.general)
  • Re: Copy protection for a .NET application
    ... cracking is just as simple on x86 code as it is with IL. ... obfuscation which is a big problem with the idea in general. ... > across .NET Framework Service packs. ... > environments protection is not strongly needed. ...
    (microsoft.public.dotnet.languages.csharp)