Borland Serialization Scheme by The Firm
2 of 2 files
the knack
- Browsers may flag this download as unwanted or malicious. If unsure, scan it with VirusTotal.
-
Last modified May 1, 1991 4:07:14 AM
MD5 checksum 56f30715d0c388754e9c2c1195076897
Mime type Zip archive data
Download BORLFIRM.ZIP
Size 3 kB
1 item in the archive
- BORLAND.TXT
╒═══════════════════════════════════════╕
│ │ ╕
│ Pirating Document from The -=FiRM=- │ │
│ │ │
╘═══════════════════════════════════════╛ │
╘═══════════════════════════════════════╛
RE : Borland Serialization Scheme
DATE : 04/26/1991
AUTHOR : The Knack
As I mentioned in my previous document of the Quarterdeck Office
Systems Serialization scheme, I will now share with you the exact nature of
the Borland International Serialization scheme. With this knowledge you can
create your own serial numbers for products like Quattro Pro and Paradox.
And, for you network users, you can have a 10,000+ user version of
Quattro Pro or Paradox in about five minutes. THE BEST THING IS, THAT ALL
COPIES OF BORLAND PRODUCTS ARE IDENTICAL!!! YOU MAY COPY/DISTRIBUTE YOUR
BORLAND SOFTWARE UNALTERED WITHOUT FEAR THAT A PIRATED COPY COULD BE
TRACED BACK TO, EVEN IF YOU REGISTER IT!!!
──────────────────────────────────────────────────────────
!!!!! THIS DOCUMENT SHOULD BE USED WITH CAUTION!!! !!!!!
──────────────────────────────────────────────────────────
The purpose is NOT to deny Borland of any monies they are due,
certainly if you use their product consistently you are OBLIGATED to
purchase it, if you can. NOT because it's legal, but to support the
development of QUALITY, PRACTICAL software, and Borland is king in this
area. Abusing this knowledge will compare to "Shooting yourself in the
foot", for if you deny Borland monies the company may suffer, then we all
may suffer. Besides, if you are a serious user, and not just a punk,
you'll want Borland's excellent documentation and support, the only true
copy protection...
SAMPLE Borland Serial Number: TA245A90000000
I will refer to this number as "serial", and reference specific
characters of the number in "C" notation as if it were declared as such:
char serial[] = "TA245A90000000";
The first character of the serial number would be represented as
"serial[0]" and the last character as "serial[13]" (in C all indexes of
arrays start at 0). If you can't follow this just image the subscript
(the number between the brackets) is just a position marker for the serial
number (ie. position 0 is the first character or 'T' in this case).
The following are "rules" which EVERY VALID Borland serial number
MUST comply with.
1. The number is 14 characters.
2. serial[0], serial[1] and serial[5] MUST be LETTERS, 'A' or greater.
3. serial[6] MUST be greater than 0, this is because this character
represents the USER COUNT for this serial number. This number is
always 1, unless you purchased a LAN PACK, which is 5. But I will
show you how to make 90 below...hehe...
4. serial[2] and serial[3] are a PRODUCT NUMBER, that MUST correspond
to the product you're installing or updating serial numbers. So far
I know of only two:
23 = Paradox.
24 = Quattro Pro.
These numbers are constant over version releases.
5. serial[4] is a DISTRIBUTION NUMBER, or as close as you'll get to a
VERSION number. This number increments each time the product is
distributed under a new version. For example, Paradox v3.0 was 3
and now Paradox v3.5 is 4. This number MUST be GREATER THAN OR
EQUAL to the current distribution. In other words, if I were
installing Paradox v3.5 a DISTRIBUTION NUMBER of 3 would be bogus
because the INSTALL program knows it's release 4, 5 would work
however. (Quattro Pro v3.0 is distribution 6).
6. serial[7] through serial[13] MUST be numbers 0 through 9.
7. The CHECKSUM of all 14 characters MUST BE A MULTIPLE of 11 !!!
However this CHECKSUM is calculated in a detailed manner, although
it is very simple.
First, divide the number into two pieces, 7 characters each. In our
example above number "A" would be "TA245A9" and number "B" would be
"0000000".
Take number "A" and ADD all the numbers, converting any LETTERS to
a number using this formula:
# = remainder of (LETTER(in HEX) - 40h)/10
or in 'C' notation:
# = (LETTER - '@') % 10;
If you can't understand this, just know that 'A' = 1, 'B' = 2 etc.
until 'J' which would start back at 0 again.
So, the CHECKSUM of number "A" (TA245A9) would be 22.
'T'= 0
+ 'A'= 1
+ 2
+ 4
+ 5
+ 'A'= 1
+ 9
------------
22
Now you need to calculate number "B". We are very fortunate to have
an example number of "0000000".
This formula for the number "B" is simple, add one number, subtract
the next. In our example obviously the result is 0, but here's the
formula's anyway...
#=serial[7]-serial[8]+serial[9]-serial[10]+serial[11]-serial[12]+serial[13]
In 'C' there are several ways to express this:
for( cnt=7; cnt<14; cnt+=2 )
# += serial[cnt];
for( cnt=8; cnt<14; cnt+=2 )
# -= serial[cnt];
OR
for( cnt=7; cnt<14; cnt++ )
# = (cnt%2) ? #+serial[cnt] : #-serial[cnt];
FINALLY, add "A" and "B" ( 22 + 0 ) and this number MUST BE A
MULTIPLE of 11! If number%11 is NOT 0, then the serial will be
invalid. In this we have 22, and 11x2 is 22, THIS IS VALID!
Let's try another number "TA245D10577879". The checksum is
Expressed by:
'T' = 0
+ 'A' = 1
+ 2
+ 4
+ 5
+ 'D' = 4
+ 1
+ 0
- 5
+ 7
- 7
+ 8
- 7
+ 9
--------------
22
----------------------------------------------------------------------------
The easiest way to create a new number or several numbers is to first
create the first 7 digits so that they meet the "rules" above, and add up
to a multiple of 11. The the last 7 digits can be all 0's "0000000" then
the next can be "0000011", then "0000022" etc. etc. cause the last 7 always
evaluate to 0, making it a valid and unique number.
------------------
NOTE ON LAN PACKS:
------------------
serial[6] indicates the USER COUNT, or number of users allows to use
this software SIMULTANEOUSLY. So, if you run the "Serial Number Update"
utility that comes with Paradox(NUPDATE.EXE) and Quattro Pro(QPUPDATE.EXE)
you can see that creating a new serial number with 9 in this digit will
give you a 9 person capacity for each serial number, however, this digit
will also accept some LETTERS and they give you even MORE users per
serial number. A=10, B=20, etc. to I=90!!! Remember, 'I' gives you a 90
user count, but only represents 9 in the CHECKSUM formula (49h-40h)%10 = 9.
Thanks to all the people and businesses who have supported The -=FiRM=-
(even if they didn't know it), and thanks to Borland International for
quality software, worth writing documents like this. Take care!
_ _─ T H E ─_ _
█∙▄·▄·▄·▄▄▄·▄▄▄·▄∙█
▐▄▀ ▐ ▌ ▐ ▌ ▐ ▐ ▐▄▀
█∙▌ ▐▌▌ ▐▄▌ ▐ ▐∙█
▀·▐▐▌ ▐ ▌ ▐ ▐·▀
▐▌·▐ ▌·▐▄▀
▀∙▀
p.s. What's next??? hmm.... I've been asked about Novell...
sounds interesting...