The Ultimate PID Checker

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

  1. user_hidden

    user_hidden MDL Expert

    Dec 18, 2007
    1,034
    1,061
    60
  2. CODYQX4

    CODYQX4 MDL Developer

    Sep 4, 2009
    4,813
    45,775
    150
    #82 CODYQX4, Sep 18, 2011
    Last edited: Apr 15, 2019
    .
     
  3. CODYQX4

    CODYQX4 MDL Developer

    Sep 4, 2009
    4,813
    45,775
    150
    #85 CODYQX4, Sep 19, 2011
    Last edited: Apr 15, 2019
    .
     
  4. CODYQX4

    CODYQX4 MDL Developer

    Sep 4, 2009
    4,813
    45,775
    150
    #87 CODYQX4, Sep 19, 2011
    Last edited: Apr 15, 2019
    .
     
  5. bphlpt

    bphlpt MDL Junior Member

    Aug 2, 2010
    60
    36
    0
    Hey user_hidden, could you please point me to where I can find the tool you pictured in this post? Sorry if my Google skills are sub-par today. Thanks in advance.

    Cheers and Regards

     
  6. Jachra

    Jachra MDL Member

    Apr 5, 2010
    184
    55
    10
    Arguments of PidGenX2 in the Win8 DP pidgenx.dll:

    int __stdcall PidGenX2(int a1, const WCHAR *Buffer, unsigned __int16 *a3, int a4, int a5, wchar_t *a6, void *Dst, void *a8)

    Have fun... :biggrin:
     
  7. Jachra

    Jachra MDL Member

    Apr 5, 2010
    184
    55
    10
    Since the number '5' is also included, I wonder if they use a Base-26 now.
     
  8. user_hidden

    user_hidden MDL Expert

    Dec 18, 2007
    1,034
    1,061
    60

    PM me at our usual playground ...
     
  9. janek2012

    janek2012 MDL Member

    Dec 29, 2008
    214
    994
    10
    Jachra thanks for trying to help but you have just posted IDA or ollydbg informations which I have seen before and they do not provide anything useful/new. Those two void arguments should be structures of DigitalProductId3 and 4 but they might have changed.

    PS. I have added Description feature just like the checker on d-fault.nl! Public release soon!
     
  10. Jachra

    Jachra MDL Member

    Apr 5, 2010
    184
    55
    10
    #93 Jachra, Sep 20, 2011
    Last edited by a moderator: Apr 20, 2017
    janek2012

    I know, but I hardly can't post the whole routine here. But if CODYQX4 wants more info, he/she can ask.

    Here is somemore info on why invalid arguments are given:

    Code:
    if ( a6 || Dst || a8 )
      {
        v11 = (int)a3;
        if ( !a3 || !*a3 )
          goto LABEL_2;
      }
      else
      {
        v11 = (int)a3;
      } 
      if ( v11 )
      {
        v10 = sub_something((int)&v34, v11, 2147483647);
        v37 = v10;
        if ( v10 < 0 )
          goto LABEL_5;
        if ( v34 != 5 )
        {
    LABEL_2:
          v10 = -2147024809;
          v37 = -2147024809;
          v31 = -2147024809;
    LABEL_3:
          sub_something2(v31);
          goto LABEL_61;
        }
    
    
    ... more code removed
    
    LABEL_61:
      sub_something3(v10);
      if ( v9 )
      {
        v29 = GetProcessHeap();
        HeapFree(v29, 0, (LPVOID)v9);
      }
      if ( v8 )
        LocalFree(v8);
      sub_something4((volatile LONG **)&v36);
      if ( v33 )
        (*(void (__stdcall **)(int))(*(_DWORD *)v33 + 8))(v33);
      return v37;
    
    When a3 is not correct and you will get the error for invalid arguments.
    The actual subs are renamed by me.

    Btw, I like your PIDchecker. Keep up the good work.
     
  11. CODYQX4

    CODYQX4 MDL Developer

    Sep 4, 2009
    4,813
    45,775
    150
    #94 CODYQX4, Sep 20, 2011
    Last edited: Apr 15, 2019
    .
     
  12. Jachra

    Jachra MDL Member

    Apr 5, 2010
    184
    55
    10
    @CODYQX4

    If I have affended you with the he/she writing, then I am sorry. I wasn't sure, because I do not know you.
    I know the regcode is screwed up. I am trying to figure that one out too. It doesn't look like it is based on Base-24.
     
  13. CODYQX4

    CODYQX4 MDL Developer

    Sep 4, 2009
    4,813
    45,775
    150
    #96 CODYQX4, Sep 20, 2011
    Last edited: Apr 15, 2019
    .
     
  14. Jachra

    Jachra MDL Member

    Apr 5, 2010
    184
    55
    10
    A few nights ago, I was wondering about this and thought that some file on the Win8 DP DVD should have the new range mentioned.
    So I started looking through some files on dvd and I found something in the winsetup.dll.
    That file has the range "23456789BCDFGHJKMNPQRTVWXYbcdfghjkmnpqrtvwxy" mentioned in it. This range has the letter 'N' and the number '5'.
    Adding two characters to the range is more logical than one. Now I have to figure if this range is used and how. By adding two characters, they could use Base-26, but efforts working with that met with no success thus far.

    I already tried reverse and different Base, but no success yet.
     
  15. CODYQX4

    CODYQX4 MDL Developer

    Sep 4, 2009
    4,813
    45,775
    150
    #98 CODYQX4, Sep 21, 2011
    Last edited: Apr 15, 2019
    .
     
  16. Jachra

    Jachra MDL Member

    Apr 5, 2010
    184
    55
    10
    When I look through the winsetup.dll with Total Commander, I see it at &h000017B0 through &h00001807.
    When I decompile it with IDA, then it is also in the strings list.

    Btw, the file winsetup.dll seems to write the value of the key DigitalProductID.
     
  17. CODYQX4

    CODYQX4 MDL Developer

    Sep 4, 2009
    4,813
    45,775
    150
    #100 CODYQX4, Sep 25, 2011
    Last edited: Apr 15, 2019
    .