We invite you to check out our answers to frequently asked questions.
Ellipter is a powerful yet easy to use 100% managed .NET library for licensing applications using user friendly and secure license keys based on asymmetric elliptic curves encryption.
Ellipter is helping developers and software companies to create the licensing part of their software products.
More exactly Ellipter can help you to create and verify serials, register your users in your apps, add hardware binding to a serial and more.
It isn't, Ellipter protects your products against keygens, a much more dangerous threat for you business.
Regarding cracks, our recommendation is to use a good obfuscator (ConfuserEx is our preferred one), and to not spend too much time and effort protecting your app against cracks - if the app is popular enough it will be craked anyway. Better spend this time on improving your product and making your users happy.
Still don't believe me? Read this story (or this one) or take a look at this example of a great software business without crack protection entirely. I've intentionally put here examples in the gaming industry - games are one of the most cracked products in the software business.
Ellipter User Interface is an executable program which helps you to create Public and Private Keys, generate and validate serials.
It is a key that permits you to use Ellipter in a production environment and costs money, think of it as a registration code for Ellipter.
You can buy some on Ellipter's order page.
A trial key is a developer key, but with one essential limitation - you can use Ellipter only on your computer and you can't distribute your software if it is protected with Ellipter and that trial key. This key is free.
Hm...
The Public Key is a string used to verify a serial. It can't be used to generate a serial or to calculate the Private Key, so you can freely put it in you source code:
string developerName = "SeriousBit"; string developerKey = "1UASDASD595FLEA11QQ1TJFT2AJEZBGRWUQXTAFQ22JEBA"; SerialsManager manager = new SerialsManager(developerName, developerKey); //set public key manager.PublicKey = "WTCCV77CW4BTCCV7S6DJEPSJEPS2N7F92E"; //verify serial bool isSerialValid = manager.IsValid(serial);
The Private Key is used to create serials. You should keep it secret and safe, and never put it into your end-user product's source code. If a hacker will reverse your code and get your private key then he can create a Keygen for your product very easy.
SerialsManager manager = new SerialsManager(); //set private key manager.PrivateKey = "3UFTLG36ENNWR9GVC4QGMTA"; string serial = manager.CreateSerial();
Serial Info is a string containing any data you want, and which is embedded in the serial upon creation.
SerialsManager manager = new SerialsManager(); manager.PrivateKey = "3UFTLG36ENNWR9GVC4QGMTA"; string info = "ELL1"; string serial = manager.CreateSerial(SerialInfo: info);
SerialsManager manager = new SerialsManager(); manager.PublicKey = "WTCCV77CW4BTCCV7S6DJEPSJEPS2N7F92E"; string info = manager.GetInfo(serial);
Yes, Serial Info can contain expiration dates or you can use the TimeBomb helper.
SerialsManager manager = new SerialsManager(); manager.PrivateKey = "3UFTLG36ENNWR9GVC4QGMTA"; DateTime expDate = new DateTime(2013, 01, 01); string serial = manager.CreateSerial(expirationDate: expDate);
SerialsManager manager = new SerialsManager(); manager.PublicKey = "WTCCV77CW4BTCCV7S6DJEPSJEPS2N7F92E"; DateTime expirationDate = manager.GetDate(serial);
Use SerialsManager.BlackList with an ID/serial you no longer trust.
Binding a serial to machine information retrieved via MachineInfoReader.
MachineInfoReader reader = new MachineInfoReader(); string cpuId = reader.ProcessorId;
var reader = new MachineInfoReader(); string info = reader.ProcessorId; string serial = manager.CreateSerial(SerialInfo: info);
string info = manager.GetInfo(serial);
if(info != reader.ProcessorId)
{
Console.WriteLine("Serial invalid on this machine");
}
Most likely because of too much Serial Info, try to minimize it. Sometimes it is better to embed a CRC instead (calculate it with Crc16 or Crc32).
Of course yes, would we put this question here if you couldn't? :) With Ellipter you can make two kinds of trials:
And also it is possible to combine them.
TimeBomb bomb = new TimeBomb(15, new Guid("{34B23D72-B135-4615-B253-3813B6A1FD71}"));
bomb.Update();
if(bomb.IsExpired)
{
if(bomb.IsHacked)
{
// take action
}
return;
}
ShowMessage(string.Format("Your trial expires in {0} days.", bomb.DaysLeft));
UsageBomb bomb = new UsageBomb(30, false, new Guid("{34B23D72-B135-4615-B253-3813B6A1FD71}"));
bomb.Update();
if(bomb.IsExpired)
{
if(bomb.IsHacked)
{
// take action
}
return;
}
ShowMessage(string.Format("Your trial expires after {0} product runs.", bomb.UsageLeft));
In Windows registry, the exact place depends on the GUID provided in their constructors.
Yes, use MachineInfoReader for that.
It is the portable (PCL) build compatible with Windows Phone, Silverlight, Mono, Unity3D, etc.
Email us via contact page and we'll assist.