Re: How do I stop my software from getting cracked?

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



If it was made by a human, it can be broken by a human.

You can not protect your software 100%, but you can make the process of
cracking it quite difficult for an inexperienced cracker.

My recommendation would be to place your critical functionality into a
separate DLL. Write that DLL in a good ole C. Make calls into that DLL from
your C# UI.

Once your DLL is created, you can do all sorts of tricks.

You can write self-modifying code to confuse the cracker. You may encrypt
pieces of the binary and decrypt them "on the fly" and execute them after
they are decrypted. Write some 'decoy' code that looks like a real one but
does nothing in particular. Place a time bomb into your code that does
something harsh once it detects that your product is not being used
accordingly. Write in your license agreement that "you are not responsible
for any damages if the copy is unlicensed". Use your fantasy.


"i" <typppo@xxxxxxxxx> wrote in message
news:1179968086.595423.176050@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hi,

I have benefited from a profitable idea for a stand-alone program that
I've created in C#. Up until recently, my method of licensing hasn't
been touched. I base authorization on user accounts, and the program
sends and receives RSA encrypted data in order to determine whether or
not the end user is allowed to continue using the program. This has
worked out for about a year without any problems.

What I've found recently is that a certain person has entirely
bypassed this setup by taking it upon himself to remove or alter - via
a hex editor, I assume - the "checking" parts of my program.
Yesterday, I put all the license check code in a method critical to
the program's functionality and pushed out the update to all my
clients. I assumed this would solve the problem, because up until now
all I've seen this person do is remove entire methods and flip class
variables. I was wrong in my assumption that one cannot edit or
remove individual lines of code within a method. My code is set up
roughly as the following:

public void method_always_called()
{
try
{
check license

if (result != expected)
{
exit
}
}
catch
{
exit
}

some critical functionality here...
}

The crack isn't just to change the != to a ==, because otherwise
accounts that are authorized wouldn't work, and such is not the case.

What do I do? I can't afford an expensive obfuscator, and the free
ones I can find are limited in what they can do. I have no training
in computers - everything is self-taught. Programming is something I
do in my spare time, after school (I graduate high school this year).
I really don't want to have to end my programming ambitions if/when
this cracked version gets out of hand.

Thanks in advance.



.



Relevant Pages

  • Re: CAN STRONG NAMES BE CRACKED?
    ... > and read anything in it even if you aren't even a good cracker? ... obfuscator can you return the source code to me? ... break your .DLL if I needed it I would buy it. ... estimating a smaller loss if you right it in C++ or if you write it for ...
    (microsoft.public.dotnet.languages.vb)
  • Re: JPEG File Compression
    ... but that had slight license restrictions and I think they ... The DLL has a Borland ... Jerry French, who used to frequent this group: ... It comes with Delphi source code, ...
    (microsoft.public.vb.general.discussion)
  • Re: How do I store secrets?
    ... > a moderately interested cracker. ... >> could then generate the keypair on the server and distribute the ... >> your client software uses to verify the identity of any signed ... We use technique for our license ...
    (microsoft.public.dotnet.security)
  • Re: A Comment by RMS that Rene Should Take to Heart
    ... LGPL exists for _STATIC_ linking. ... This means the plug-ins must be released under the GPL ... DLL program to a non-GPLed program. ... the GNU Lesser General Public License may be linked ...
    (alt.lang.asm)
  • Re: Protecting a COM DLL
    ... | create a DLL. ... Two are controls that require a license. ... "An OCX is just an ActiveX ...
    (microsoft.public.vb.general.discussion)