Hi,
I don't know if this is the best thread to post this reply as is not 100% Cryptographics related. If not, please can anyone move it to another thread.
Borland use a file called "slip" to identify its products. The Slip file is made of 2 distincts parts : the enveloppe and the product info. The enveloppe main purpose is to identify the owner of the product and verify the integrity of the slip file. The productInfo hold all information about the product (version of Jbuilder, serial, ...). Here is the structure of such file :
********** Enveloppe Features ************
slip.isSilentImport : 1
slip.isImportable : 1
slip.isNodeLocked : 0
slip.isSessionLocked : 0
slip.PackageTitle : JBuilder 7 Package
slip.Protocol : 6
slip.Signature : 00000000000000000.......
slip.getOwnerLastName : Gordon
slip.getOwnerFirstName : Freeman
slip.getLicensedCompany : None
licensed.serialno : 0
********** Enveloppe Features *************
Number of ProductInfo : 1
****** ProductInfo Features **********
Platform : Cross Platform
SKU : Enterprise
Non-Commercial use only : No
Term : Unlimited
Product Label : JBuilder 7
Product ID : 1007
Serial Number

Key : 0 Platform Name : Cross Platform
Platform ID : 0
Product SKU Label : Enterprise
Product SKU : 2
Non Commercial Label : No
Non Commercial ID : 0
Term Label : Unlimited
Term ID : 0
Term : 0
Internal : 1
Upgrade : 0
Beta : 0
Host Bits : 585
****** ProductInfo Features **********
The following parameters depend on the serial Number : Key, Platform ID (and Name), Commercial propertie, Term ID (Trial or retail), Internal, Upgrade and Host Bits.
So as you can see, the same Serial Number can be used in the All JBuilder versions (Personal, Professional, Sybase or Enterprise Edition).
The class Verifier is used when verifying the integrity of the Slip File. This is a new propertie in JBuilder 7 that didn't exist with JBuilder 6 (making a keygenerator for JBuilder 6 was an easy work). Before verifying the Signature, the properties "e.Signature" is reset to 0, then the content of the file (class SignedSlip) is given to the method "verify" and the real Signature is compared with the expected signature :
public static boolean verify(SignedSlip signedslip, String s, int i)
where :
SignedSlip : Class Holder of the slip file.
s : This is e.Signature.
i : This is e.Protocol // Must be 0 for JBuilder 7.
My purpose was to make a keygenerator for JBuilder 7 not a crack. It's easy to make a crack by rewriting the class Verifier as follows :
package com.borland.sanctuary.lm.mgr;
public class Verifier {
public static boolean verify(SignedSlip signedslip, String s, int i) {
return true;
}
public Verifier() { }
}
and use the slip that i included. But it seems impossible to make such KeyMaker.
Thank you for your help.