[C#]: Explaining Dataedo's New Licensing System (10.x) and how its even worse now

bfalk

Lurker
Member
Joined
Threads
3
Posts
3
The following tutorial will explain the following about Dataedo's New Licensing System:
- how it works
- how to abuse it to create permanant license files like this:

Murkqkz.png

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Requirements:
- a text editor with JSON formatting
- a "Date to Unix Timestamp" Converter

Note: an app is in the works to make it easy to generate licenses, gimme a bit

PS: You don't need to be offline while applying/using a cracked license
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

The following is going to be used as an example, and yes, it is valid
You must reply to see the hidden content. Consider upgrading your account to increase your reply limit.


The main properties of the license files are on its root node, however you will not have to change most of them unless you run a multi-account system/network.
Code:
"type": "SUB", "SUB_USER", "SUB_FREE" | "EDU", "EDUCATIONAL" | "TRIAL"
("EDU" requires you to enter a name on "university", otherwise the license will not be accepted)

"account_id": Integer - Unknown Use
"account_name", "username": String - Licensee

"university": String - University, cannot be empty if "type" is "EDU"

"document_date": Unix Timestamp
"document_id": Integer

"created_on": Unix Timestamp - No real use, just make it match with "start" incase
"start": Unix Timestamp
"end": Unix Timestamp

Licenses
{
- "modules": See the "Modules" Section below
- "users": Integer - Number of users allowed to use this license
- "package": String - Internal name for License Package Type, can be blank
- "package_name": String - Displayed name of Package, Title of the Package, in the example, "bfalk's Cracked License" is the "package_name"
}

Modules -  fancy text to say whos the licensee, it can be customised, and you can put HTML in there, so you can customise it
{
- "module": "DESKTOP" - do not change it otherwise the license will be invalid
- "name": String - License details are here, you can insert HTML here.
- "sort": Integer - Order of the module
- "group": String - Internal name of the module, can be blank
- "group_name": String - Main title of the license details, in the example, "License Generated using your mother's ashes" is the "group_name"
- "group_sort": Integer - Unknown Use, leave at 0 incase
- "count": Integer - Unknown Use, leave at 0 incase
}

[C# - Convert DateTime to Unix Timestamp]:
C#:
public long ConvertDateTimeToUnixTimeStamp(DateTime date)
{
    DateTime originDate = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc);
    TimeSpan diff = date.ToUniversalTime() - originDate;
    return (long)Math.Floor(diff.TotalSeconds) - 1;
}

// i did -1 cus Dataedo would throw an OverflowException

/* Dates Cheatsheet
Min: -62135596799 = 3rd Monday 0001
Max: 253402300799 = 31st December 9999 */

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
The main problem with the new licensing system Dataedo 10 introduced is that it does not have any type of checksum, or even any security added onto it, the problem with the old licensing system were that they used hardcoded Base64 decryption keys from the first release of Dataedo upto Dataedo 9.x, however it was still better than the current one used.

If you're trying to make a licensing system for your software, Strong math is recommended, one of the way crackers are able to make keygens is because patterns could be figured out, obviously no licensing system is perfect, however strong usage of math will reduce these patterns, just make sure it doesn't affect the stability of the whole system. Using an online service to how your licensing system is recommended since crackers will not be able to make a keygen, however they might end up making a patched version of your software with the licensing values hardcoded.
 
Update: Worked perfectly! Thanks!

Notes:
  • Version 10.1.3 (and 10.1.2 from my testing) asks for a ".dkey" license file which looks like a base64 encoded version of the json info with some extra encrypted data after the json bit.
  • Upgrading 10.0.2 to 10.1.3 went through without issue - the license applied on 10.0.2 was kept as valid after the upgrade.
Hope this helps others too!
 
after I trying as describe it success but I cannot chose data source when I add a new datasource it show me to upgrade to connect
 
couldn't add source need help , it tell me to upgrade to connect and direct to the main site to buy the liscense
 
I would like to see the content.
Ok, I see it now :)
Can anyone point me to the location where this (or similar) file should be created ?
I would like to create the ".dkey" license file. Did you figure out what is "some extra encrypted data" after the JSON bit ?
Thanks!
 
Last edited: