25

Have several copies of Acrobat Professional that were purchased previously, installed and activated. However there is no documentation of the serial numbers, the Adobe online account ID or any details for these.

Need to move the licenses to upgraded Windows 7 PCs (current ones are on Windows XP that are about to be decommissioned).

Requirement is to ONLY move the licenses to the upgraded workstations. NOT to have multiple instances of the same license running concurrently.

Note: Adobe support is not very helpful since there isn't much information about the licenses.

DO NOT want to use 3rd party tools to extract serial numbers.

Is there a way to get this information from the registry or any other location so that the licenses can be transferred without breaking the activation? If so how?

  • Why no third party tools? (Just asking) – Brian Adkins Jul 17 '14 at 22:49
  • Many levels of approval is required to use 3rd party tools and there is a lot of hassle with that – thilina R Jul 21 '14 at 21:42
39

This is what I was able to find after a few Google searches

STEP 1: Find Adobe Key (Encrypted)

Use one of the methods below.

M1. Using SQLite DB: The activation information is stored at the location below:

C:\Program Files (x86)\Common Files\Adobe\Adobe PCD\cache\cache.db

This is a SQLite DB which can be opened with SQLite Database Browser. Using SQLite Database Browser, you need to look for the key SN

M2. Using the registry:

For 32 bit OS :

HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Adobe Acrobat\10.0\Registration\SERIAL

For 64 bit OS :

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Adobe\Adobe Acrobat\10.0\Registration\SERIAL

Replace 10.0 with version of Adobe being used

STEP 2: Decrypt Key

Use one of the methods below.

M1: JavaScript code to decrypt Serial:

function DecodeAdobeKey(sAdobeEncryptedKey)
{
    var regex=/[0-9]{24}/g;
    if(!regex.test(sAdobeEncryptedKey))
    {
        return 'corrupted serial';
    }
    var AdobeCipher = new Array(),index=0,sAdobeDecryptedKey='';
    AdobeCipher[index++] = '0000000001';
    AdobeCipher[index++] = '5038647192';
    AdobeCipher[index++] = '1456053789';
    AdobeCipher[index++] = '2604371895';
    AdobeCipher[index++] = '4753896210';
    AdobeCipher[index++] = '8145962073';
    AdobeCipher[index++] = '0319728564';
    AdobeCipher[index++] = '7901235846';
    AdobeCipher[index++] = '7901235846';
    AdobeCipher[index++] = '0319728564';
    AdobeCipher[index++] = '8145962073';
    AdobeCipher[index++] = '4753896210';
    AdobeCipher[index++] = '2604371895';
    AdobeCipher[index++] = '1426053789';
    AdobeCipher[index++] = '5038647192';
    AdobeCipher[index++] = '3267408951';
    AdobeCipher[index++] = '5038647192';
    AdobeCipher[index++] = '2604371895';
    AdobeCipher[index++] = '8145962073';
    AdobeCipher[index++] = '7901235846';
    AdobeCipher[index++] = '3267408951';
    AdobeCipher[index++] = '1426053789';
    AdobeCipher[index++] = '4753896210';
    AdobeCipher[index++] = '0319728564';

    //decode the adobe key
   for(var i=0;i<24;i++)
   {
       if (i%4 == 0 && i>0)
           sAdobeDecryptedKey += '-';
       sAdobeDecryptedKey += AdobeCipher[i].charAt( sAdobeEncryptedKey.charAt(i) );
   }
   return sAdobeDecryptedKey;
}

M2: PowerShell Code to decrypt Serial

function ConvertFrom-EncryptedAdobeKey {
    [CmdletBinding()]
    Param(
        [Parameter(Position=0, Mandatory=$true)] 
        [string]
        [ValidateLength(24,24)]
        $EncryptedKey
    )

    $AdobeCipher = "0000000001", "5038647192", "1456053789", "2604371895",
        "4753896210", "8145962073", "0319728564", "7901235846",
        "7901235846", "0319728564", "8145962073", "4753896210",
        "2604371895", "1426053789", "5038647192", "3267408951",
        "5038647192", "2604371895", "8145962073", "7901235846",
        "3267408951", "1426053789", "4753896210", "0319728564"

    $counter = 0

    $DecryptedKey = ""

    While ($counter -ne 24) {
        $DecryptedKey += $AdobeCipher[$counter].substring($EncryptedKey.SubString($counter, 1), 1)
        $counter ++
    }

    $DecryptedKey
}

M3: VB Code to decrypt Serial:

Function DecodeAdobeKey(strAdobeEncryptedKey)
Dim AdobeCipher(24)
Dim strAdobeDecryptedKey, i, j

AdobeCipher(0) = "0000000001"
AdobeCipher(1) = "5038647192"
AdobeCipher(2) = "1456053789"
AdobeCipher(3) = "2604371895"
AdobeCipher(4) = "4753896210"
AdobeCipher(5) = "8145962073"
AdobeCipher(6) = "0319728564"
AdobeCipher(7) = "7901235846"
AdobeCipher(8) = "7901235846"
AdobeCipher(9) = "0319728564"
AdobeCipher(10) = "8145962073"
AdobeCipher(11) = "4753896210"
AdobeCipher(12) = "2604371895"
AdobeCipher(13) = "1426053789"
AdobeCipher(14) = "5038647192"
AdobeCipher(15) = "3267408951"
AdobeCipher(16) = "5038647192"
AdobeCipher(17) = "2604371895"
AdobeCipher(18) = "8145962073"
AdobeCipher(19) = "7901235846"
AdobeCipher(20) = "3267408951"
AdobeCipher(21) = "1426053789"
AdobeCipher(22) = "4753896210"
AdobeCipher(23) = "0319728564"

'decode the adobe key
for i = 0 To 23
if (i Mod 4 = 0 And i > 0) Then
'every 4 characters add a "-"
strAdobeDecryptedKey = strAdobeDecryptedKey & "-"
end if

'Grab the next number from the adobe encrypted key. Add one to 'i' because it isn't base 0
j = mid (strAdobeEncryptedKey, i + 1, 1)

'Add one to J because it isn't base 0 and grab that numbers position in the cipher
k = mid (AdobeCipher(i), j + 1, 1)
strAdobeDecryptedKey = strAdobeDecryptedKey & k

Next
DecodeAdobeKey = strAdobeDecryptedKey
End Function

M4: Java Code to decrypt Serial:

public static String decrypt(String encryptedKey) {
    String[] AdobeCipher = { "0000000001", "5038647192", "1456053789", "2604371895", "4753896210", "8145962073",
            "0319728564", "7901235846", "7901235846", "0319728564", "8145962073", "4753896210", "2604371895",
            "1426053789", "5038647192", "3267408951", "5038647192", "2604371895", "8145962073", "7901235846",
            "3267408951", "1426053789", "4753896210", "0319728564" };

    String sAdobeDecryptedKey = "";
    for (int i = 0; i < 24; i++) {
        if (i % 4 == 0 && i > 0)
            sAdobeDecryptedKey += '-';
        String ndx=encryptedKey.substring(i, i+1);
        int tmp=Integer.parseInt(ndx);
        sAdobeDecryptedKey += AdobeCipher[i].substring(tmp, tmp+1);
    }
    return sAdobeDecryptedKey;
}

STEP 3: Download and Install the software with same serial

Download same version of the Adobe software that was install previously from the official Adobe repository using the links below:

Adobe 10, 11

Adobe 8, 9

Adobe 7 - Download for Adobe Professional and Standard version 7 and Serial key available here - The serial numbers provided as a part of the download may only be used by customers who legitimately purchased CS2 or Acrobat 7 and need to maintain their current use of these products. (Can download by using ANY Adobe ID to sign in - Not just the Adobe ID it was purchased under)

References:

JavaScript Code

PowerShell Code

VB Code

Everything about Adobe’s cache.db (well, not quite)

Find Your Adobe Acrobat Serial Number

  • 1
    Also a huge thanks for this one. Just a couple of points: In the VB source code, you need to declare Dim j as Integer Dim k as Integer Using SQLite Database Browser, you need to look for the key SN and copy/paste it into VB/PS/JS program. – user386835 Nov 5 '14 at 5:05
  • Good catch. Done! – thilina R Mar 23 '15 at 15:17
  • 1
    I love the javascript function - so easy! Just open developer tools in a browser, go to the console, and paste it in. Next step - run the function with the encode key, and out pops the key! – JoBu1324 Jul 22 '15 at 20:45
  • 1
    A Python implementation: gist.github.com/fdemmer/dda13fe0d24e44d4b04560c092808c91 – Florian Dec 29 '17 at 9:21
  • 1
    Does this work for CS6? – user2060451 Jul 2 '18 at 1:23

protected by Community Dec 12 '14 at 16:08

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.