I see from the opening post that the "
keygen" consists of a file named "
main.py" which includes this code...
import hashlib
SCOPEID = '0000000000000000'
Model = 'SDS2000X+'
bwopt = ('25M', '40M', '50M', '60M', '70M', '100M', '150M', '200M', '250M', '300M', '350M', '500M', '750M', '1000M', 'MAX', 'AWG', 'WIFI', 'MSO', 'FLX', 'CFD', 'I2S', '1553', 'PWA')
hashkey = '5zao9lyua01pp7hjzm3orcq90mds63z6zi5kv7vmv3ih981vlwn06txnjdtas3u2wa8msx61i12ueh14t7kqwsfskg032nhyuy1d9vv2wm925rd18kih9xhkyilobbgy'
def gen(x):
h = hashlib.md5((
hashkey +
(Model+'\n').ljust(32, '\x00') +
opt.ljust(5, '\x00') +
2*((SCOPEID + '\n').ljust(32, '\x00')) +
'\x00'*16).encode('ascii')
).digest()
key = ''
for b in h:
if (b <= 0x2F or b > 0x39) and (b <= 0x60 or b > 0x7A):
m = b % 0x24
b = m + (0x57 if m > 9 else 0x30)
if b == 0x30: b = 0x32
if b == 0x31: b = 0x33
if b == 0x6c: b = 0x6d
if b == 0x6f: b = 0x70
key += chr(b)
return key.upper()
for opt in bwopt:
print('{:5} {}'.format(opt, gen(SCOPEID)))
QUESTIONS:
1. What is the step-by-step procedure for using "main.py" to generate and then use the keys?
2. Will generated keys work on the 2-channel SDS2102X Plus, even with latest firmware?
3. From reading some posts in this thread, it seems that
500MHz operation will be unlocked with a keygen-created key, but what other Software Options are unlocked? For example, is there a key to unlock the
logic analyzer? (Bad idea to buy the expensive SPL2016 if the scope can't be unlocked to use it.)
Arbitrary Waveform Generator?
CAN FD Decoder? Etc.?
Thank you!