Guest User

Untitled

a guest
Jun 23rd, 2021
236
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # Keygen program for Siglent oscilloscopes
  2.  
  3. import hashlib
  4.  
  5. # You get this by running "SCOPEID?" at the SCIP prompt and removing the dashes
  6. SCOPEID = '0000000000000000'
  7. # Replace this with your SN
  8. SN = 'SDS00000000000'
  9. # This is one of the four options below
  10. Model = 'SDS1000X-E'
  11. # 'SDS1000X-E', 'SDS2000X-E', 'SDS2000X+', 'SDS5000X', 'ZODIAC-'
  12.  
  13. bwopt = ('25M', '40M', '50M', '60M', '70M', '100M', '150M', '200M',
  14.          '250M', '300M', '350M', '500M', '750M', '1000M', 'MAX')
  15. otheropt = ('AWG', 'WIFI', 'MSO', 'FLX',
  16.             'CFD', 'I2S', '1553', 'FG', '16LA')
  17.  
  18. hashkey = '5zao9lyua01pp7hjzm3orcq90mds63z6zi5kv7vmv3ih981vlwn06txnjdtas3u2wa8msx61i12ueh14t7kqwsfskg032nhyuy1d9vv2wm925rd18kih9xhkyilobbgy'
  19.  
  20. def gen(x):
  21.     h = hashlib.md5((
  22.         hashkey +
  23.         (Model+'\n').ljust(32, '\x00') +
  24.         opt.ljust(5, '\x00') +
  25.         2*(((SCOPEID if opt in bwopt else SN) + '\n').ljust(32, '\x00')) +
  26.         '\x00'*16).encode('ascii')
  27.     ).digest()
  28.     key = ''
  29.     for b in h:
  30.         if (b <= 0x2F or b > 0x39) and (b <= 0x60 or b > 0x7A):
  31.             m = b % 0x24
  32.             b = m + (0x57 if m > 9 else 0x30)
  33.         if b == 0x30:
  34.             b = 0x32
  35.         if b == 0x31:
  36.             b = 0x33
  37.         if b == 0x6c:
  38.             b = 0x6d
  39.         if b == 0x6f:
  40.             b = 0x70
  41.         key += chr(b)
  42.     return key.upper()
  43.  
  44. for opt in bwopt:
  45.     print('{:5} {}'.format(opt, gen(SCOPEID)))
  46. for opt in otheropt:
  47.     print('{:5} {}'.format(opt, gen(SN)))
RAW Paste Data