前言
这个是一些PJ鼎阳示波器的教程,记录一下防止丢失。
大家有钱的尽量买正版,支持企业研发。
实在没钱的个人开发者可以破解一下,毕竟破解也需要买机器,也算是为鼎阳刺激低端消费市场贡献了一些营业额吧。
诸位发达之后再多买点鼎阳的产品弥补把。
文章1
reference
原文链接:https://blog.youkuaiyun.com/weixin_44663860/article/details/133939270
一、重要说明
1、文章参考来源https://www.shili8.cn/article/detail_20000400220.html。本文参考上文链接的文章,实际操作之后,做了一个记录总结分享。
2、这些配件只是软件权限做了更改,想要使用其功能,还需要购买相关配件才行。尊重他人的劳动成果和付出,建议大家去官网购买需要用到的配件。
3、本文如有侵权,请联系删除,谢谢!
二、概述
鼎阳示波器可以通过软件升级的方式实现部分选件从试用状态改成永久使用状态。本文以SDS2204X Plus软件为例,来进行讲解。升级之前默认带宽是200M,采样率是2GSa/s,升级之后默认带宽是350M,采样率是1GSa/s。
三、具体操作步骤
1、获取示波器ID号。打开示波器,功能>>菜单>>系统信息>>产品ID号。
2、ID号写入代码脚本SCOPEID = ‘xxxxxxxxxxxxxxxx’,替换 ‘xxxxxxxxxxxxxxxx’。运行Python脚本。(Python脚本可以在线运行https://www.json.cn/runcode/run_python3/)
import hashlib
SCOPEID = 'xxxxxxxxxxxxxxxx'
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', 'SENT', 'MANC')
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)))
3、Python脚本运行结果。
4、将破解秘钥输入到示波器,然后重启即可。打开示波器,功能>>菜单>>软件选件,根据选件类型逐一输入秘钥,最后重启即可。
文章2
方法来自eevblog
https://www.eevblog.com/forum/testgear/siglent-sds-sdg-hack-script/
因为要使用SCPI功能,所以首先需要使用网页连接到示波器,具体方法见官方用户手册,可在官网找到。
SDS800X HD 系列示波器支持用户通过 Web 浏览器访问和控制示波器。在网页服务界面下可以设
置访问的密码。用户在浏览器地址栏输入示波器 IP 地址,即可访问示波器。
在SCPI命令行输入MD5_SRLN?获取示波器ID
在SCPI命令行输入MD5_PR?获取示波器型号
在Home界面查询SN码
在线运行python脚本网站: https://www.json.cn/runcode/run_python3/
如果未升级前的本机带宽秘钥与脚本生成的一样,说明参数没有错误,
则可以使用脚本生成的更高带宽的带宽秘钥替换原来的秘钥,完成带宽破解。
# Keygen program for Siglent oscilloscopes
import hashlib
# 运行MD5_SRLN? 命令获得SCOPEID
# 将下面的SCOPEID替换为本机ID
SCOPEID = '0000000000000000'
# 将下面的SN替换为本机代码
SN = 'SDS00000000000'
# 运行MD5_PR?命令获得本机型号
# 将下面的Model 替换为本机型号"
Model = 'SDS800X-HD'
bwopt = ('70M', '100M','200M')
otheropt = ('AWG', 'MSO', 'PWA',)
# 不要修改这里 !!!
hashkey = '5zao9lyua01pp7hjzm3orcq90mds63z6zi5kv7vmv3ih981vlwn06txnjdtas3u2wa8msx61i12ueh14t7kqwsfskg032nhyuy1d9vv2wm925rd18kih9xhkyilobbgy'
def gen(x):
h = hashlib.md5((
hashkey +
(Model+'\n').ljust(32, '\x00') +
opt.ljust(5, '\x00') +
2*(((SCOPEID if opt in bwopt else SN) + '\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()
print('INFO: 在输入新密钥之前检查生成的密钥 !!!' + '\r')
print('您可以通过在SCIP提示符下运行 “PRBD?” 来获得带宽' + '\r')
print('您可以通过在SCIP提示符下运行 “MCBD?” 来获得带宽密钥' + '\r')
print('将您的密钥与生成的密钥进行比较')
print('INFO: 本机带宽查询到的秘钥必须与脚本生成的带宽秘钥是相同的 !!!')
print('--------------------------------')
print('以下是带宽代码,通过SCIP提示输入这些代码')
for opt in bwopt:
print('{:5} {}'.format(opt, gen(SCOPEID)))
print('--------------------------------')
print('以下是选件代码,在示波器UI上输入这些代码')
print('SDS800XHD-FG 选件输入AWG后代码')
print('SDS800XHD-16LA 选件输入MSO后代码')
print('SDS800XHD-PA 选件输入PWA后代码')
for opt in otheropt:
print('{:5} {}'.format(opt, gen(SN)))
改带宽的命令是:
MCBD <生成的密钥>