Re: How do I stop my software from getting cracked?
- From: "Ashot Geodakov" <a_geodakov@xxxxxxxxxxxxxxxxxx>
- Date: Wed, 23 May 2007 18:38:13 -0700
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.
.
- Follow-Ups:
- Re: How do I stop my software from getting cracked?
- From: Ignacio Machin \( .NET/ C# MVP \)
- Re: How do I stop my software from getting cracked?
- From: Michael A. Covington
- Re: How do I stop my software from getting cracked?
- From: i
- Re: How do I stop my software from getting cracked?
- References:
- Prev by Date: Re: How to obfuscate the CSharp code ?
- Next by Date: Re: How do I stop my software from getting cracked?
- Previous by thread: Re: How do I stop my software from getting cracked?
- Next by thread: Re: How do I stop my software from getting cracked?
- Index(es):
Relevant Pages
|