The Ultimate PID Checker

Discussion in 'MDL Projects and Applications' started by janek2012, Jul 18, 2010.

  1. racky29

    racky29 MDL Senior Member

    Aug 2, 2007
    285
    93
    10
    this release seems to work fine on windows 7 anyway
     
  2. jstevenson72

    jstevenson72 MDL Novice

    Jan 16, 2009
    5
    0
    0
    Janek,

    First of thank you for your time, and the Ultimate PID Checker is sweet.

    I too and a developer, and I am working on parsing some product keys within my corporate network, and I am trying to identify the windows version that each key is associated with.

    I have written the code so far in c# .net, and I am able to get all the Windows 7 Versions without any issue.

    My question is, would you be willing to share any source, or concepts related to finding the Windows version of a Vista Key or XP Key.

    I'm not certain if I just need to be using different pidgenx.dll files or if I also need to use different pkeyconfig files.

    I eagerly anyones response.

    Thank you very much.

    Jason
     
  3. janek2012

    janek2012 MDL Member

    Dec 29, 2008
    214
    996
    10
    Hi, Janson.
    I am happy you like my application. Unfortunately, there is no way to quickly determine Windows version of the key - I am just using different pkeyconfig.xrm-ms and pidgen.dll (for XP) files to check if the key is valid for them.
    That's how my program works in Identify Key mode.
     
  4. user_hidden

    user_hidden MDL Expert

    Dec 18, 2007
    1,034
    1,062
    60
    @jstevenson72

    pretty hard to get OS version from a key.
    the key would have to be run against pkeyconfig or pidgen files to see if they answer back.
     
  5. jstevenson72

    jstevenson72 MDL Novice

    Jan 16, 2009
    5
    0
    0
    yeah, I'm already get the windows 7 version, but I need to get XP and Vista versions from my companies keys as well.

    Can anyone post which config and pidgenx files are required for Xp and Vista? Can someone get me a link?

    Thanks!
     
  6. jstevenson72

    jstevenson72 MDL Novice

    Jan 16, 2009
    5
    0
    0
    Can you elaborate on which config and pidgen files are needed? Can you upload them or send them to me? Thanks dude!
     
  7. user_hidden

    user_hidden MDL Expert

    Dec 18, 2007
    1,034
    1,062
    60
    check your PM
     
  8. sibax

    sibax MDL Novice

    Aug 5, 2009
    13
    0
    0
    Hello janek2012
    Thank you very much for your great tool.
    Could you please compile your tool into 64 bit file with only x64 pidgens and pidgenx?
    Of course it will be working only on x64 OS, but it will resolve this problem.
    Best regards
     
  9. rapter

    rapter MDL Novice

    Dec 12, 2009
    17
    1
    0
    The ultimate pid checker 1.1.1.315 link dead, Please alternate link..
     
  10. Tito

    Tito Super Mod / Adviser
    Staff Member

    Nov 30, 2009
    18,818
    19,024
    340
  11. snoop1979

    snoop1979 MDL Novice

    Jan 19, 2011
    19
    6
    0
    Excelent tool :worthy::worthy:
     
  12. janek2012

    janek2012 MDL Member

    Dec 29, 2008
    214
    996
    10
    Reuploaded!

    I am sorry but Embarcadero RAD Studio XE2 does not support x64 in C++ it does it only in Delphi. I would have to rewrite my application to Delphi but I don't know this language yet. But I think it could be solved in other way. Stay tuned!
     
  13. sibax

    sibax MDL Novice

    Aug 5, 2009
    13
    0
    0
    Thank you very much for your efforts janek2012
    I will be waiting
    Good luck
    P.S. If you need tester, I'll do it with great pleasure
    I have XP x64 Installed
    P.P.S. By the way, what is the other way you mean? Very interesting.
     
  14. CODYQX4

    CODYQX4 MDL Developer

    Sep 4, 2009
    4,813
    45,775
    150
    #134 CODYQX4, Jun 5, 2012
    Last edited: Apr 12, 2019
    .
     
  15. Alphawaves

    Alphawaves Super Moderator/Developer
    Staff Member

    Aug 11, 2008
    6,251
    22,364
    210
    #135 Alphawaves, Jun 5, 2012
    Last edited by a moderator: Apr 20, 2017
    From nononsence:

    Code:
    Set WshShell = CreateObject("WScript.Shell")
    MsgBox ConvertToKey(WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId"))
    Function ConvertToKey(Key)
        Const KeyOffset = 52
    isWin8 = (Key(66) \ 6) And 1
    Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
        i = 24
        Chars = "BCDFGHJKMPQRTVWXY2346789"
        Do
            Cur = 0
            X = 14
            Do
                Cur = Cur * 256
                Cur = Key(X + KeyOffset) + Cur
                Key(X + KeyOffset) = (Cur \ 24)
                Cur = Cur Mod 24
                X = X -1
            Loop While X >= 0
            i = i -1
            KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
    Last = Cur
        Loop While i >= 0
    If (isWin8 = 1) Then
    keypart1 = Mid(KeyOutput, 2, Last)
    insert = "N"
    KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
    End If
    a = Mid(KeyOutput, 1, 5)
    b = Mid(KeyOutput, 6, 5)
    c = Mid(KeyOutput, 11, 5)
    d = Mid(KeyOutput, 16, 5)
    e = Mid(KeyOutput, 21, 5)
        ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & e
    End Function
    Nice tool this so i sticky it!! :)
     
  16. Daz

    Daz MDL Developer / Admin

    Jul 31, 2009
    9,530
    67,271
    300
    #137 Daz, Jun 6, 2012
    Last edited by a moderator: Apr 20, 2017
    Code:
    Set WshShell = CreateObject("WScript.Shell")
    Key = "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\"
    DigitalID = WshShell.RegRead(key & "DigitalProductId")
    
    ProductName = "Product Name: " & WshShell.RegRead(Key & "ProductName") & vbNewLine
    ProductID = "Product ID: " & WshShell.RegRead(Key & "ProductID") & vbNewLine
    ProductKey = "Installed Key: " & ConvertToKey(DigitalID)
    ProductID = ProductName & ProductID & ProductKey
    
    If vbYes = MsgBox(ProductId & vblf & vblf & "Save to a file?", vbYesNo + vbQuestion, "Windows Key Information") then
       Save ProductID
    End if
    
    Function ConvertToKey(Key)
        Const KeyOffset = 52
        isWin8 = (Key(66) \ 6) And 1
        Key(66) = (Key(66) And &HF7) Or ((isWin8 And 2) * 4)
        i = 24
        Chars = "BCDFGHJKMPQRTVWXY2346789"
        Do
            Cur = 0
            X = 14
            Do
                Cur = Cur * 256
                Cur = Key(X + KeyOffset) + Cur
                Key(X + KeyOffset) = (Cur \ 24)
                Cur = Cur Mod 24
                X = X -1
            Loop While X >= 0
            i = i -1
            KeyOutput = Mid(Chars, Cur + 1, 1) & KeyOutput
            Last = Cur
        Loop While i >= 0
        If (isWin8 = 1) Then
            keypart1 = Mid(KeyOutput, 2, Last)
            insert = "N"
            KeyOutput = Replace(KeyOutput, keypart1, keypart1 & insert, 2, 1, 0)
            If Last = 0 Then KeyOutput = insert & KeyOutput
        End If
        a = Mid(KeyOutput, 1, 5)
        b = Mid(KeyOutput, 6, 5)
        c = Mid(KeyOutput, 11, 5)
        d = Mid(KeyOutput, 16, 5)
        e = Mid(KeyOutput, 21, 5)
        ConvertToKey = a & "-" & b & "-" & c & "-" & d & "-" & e
    End Function
    
    Function Save(Data)
        Const ForWRITING = 2
        Const asASCII = 0
        Dim fso, f, fName, ts
        fName = "Windows Key.txt"
        Set fso = CreateObject("Scripting.FileSystemObject")
        fso.CreateTextFile fName
        Set f = fso.GetFile(fName)
        Set f = f.OpenAsTextStream(ForWRITING, asASCII)
        f.Writeline Data
        f.Close
    End Function
     
    Stop hovering to collapse... Click to collapse... Hover to expand... Click to expand...
  17. unawave

    unawave MDL Novice

    Mar 20, 2009
    47
    0
    0
    Thank you very much, Daz. Works fine.

    The script shows also the correct Version ("Windows 8" or "Windows 8 Release Preview") which are both included in the ISO file.
     
  18. janek2012

    janek2012 MDL Member

    Dec 29, 2008
    214
    996
    10
    OK, So i solved the graphic glitch when the program starts but I am too lazy (stupid) :p to fix the function to auto-add dashes. If anybody here knows how to get this done like Microsoft did it in Windows Setup, please contact me ASAP and I will release fixed version :)

    Cheers,
    Janek2012

    Edit:
    I think I got it :biggrin: The next release will be here soon ;)
     
  19. janek2012

    janek2012 MDL Member

    Dec 29, 2008
    214
    996
    10