Products > Test Equipment
Siglent ADS Firmware Toolkit
optotester:
Hi everyone,
A lot of information is available on this forum on the Siglent ADS firmware format. However, most of the information is highly technical and there is no ready-made solution to analyze ADS files. At first, I wanted to do a very basic tool but at the end I decided to go one step further and provide a tool to analyze, extract and rebuild ADS files. It is not universal, but it should help customize most ADS files.
Important information:
- If the tool reports a checksum mismatch do not even try to run the ADS file, it is not compatible.
- If you are not super-expert, do not even try to alter the filesystem of the device
- The decryption key is not provided (but the tool should be able to retrieve it using the -f flag. It is shared between several devices, so if it cannot be extracted from your file (e.g. for SDS800X HD), you can extract it from the ADS of another device).
ADS toolkit works even for recent scope like SDS2000X HD and SDS3000X HD.
This should allow people interested in modding these great scopes to build new customizations (e.g. developing a new PHP Web UI).
For now, it is Windows only but I may compile a Linux version later.
Disclaimer: I am not responsible/liable for any issue caused by the use of this software (e.g. devices bricked). Please note that this tool is compatible with most recent ADS file, but not necessarily all of them. You should not use this tool blindly, you should see this tool as an helper and you should be able to verify if the output matches your expectations.
In addition, If you gain access to terminal (e.g. through a custom update.sh script), please perform a full backup first (although you may never be able to restore it if you brick your device !).
Credits: this tool has been inspired by the huge work performed by janekivi and tv84.
Regards
--- Code: ---usage: ADS Toolkit [-h] [-v] [-o OUTPUT] [-s SECTION] [-p PAYLOAD] [-u] [-k KEY] [-x | -r | -f] filename
Extract and rebuild ADS file. By default, zip files are reprocessed to ensure best compatibility. Reprocessing a .zip
does not retain UNIX permissions, if required, use the -u flag.
positional arguments:
filename ADS file
options:
-h, --help show this help message and exit
-v, --version show program's version number and exit
-o OUTPUT, --output OUTPUT
output file
-s SECTION, --section SECTION
ID of the section to be extracted/replaced. In extract mode, all sections are extracted if
omitted.
-p PAYLOAD, --payload PAYLOAD
new payload (replace mode only)
-u, --unaltered do not reprocess .zip payloads (replace mode only). Default is to reprocess replaced .zip
sections to maximize compatibility.
-k KEY, --key KEY key used for 3DES encryption/decryption (string of 32 hex characters)
-x, --extract extract section
-r, --replace replace section
-f, --findkey try find 3DES key - this is only possible if the main app is in the unencrypted area of the
ADS file
Disclaimer: The author of this tool discharges of any liability/responsibility in regards to the usage of this tool.
This tool is an helper, manual check of the output shall still be performed. This tool can cause devices to be
permanently bricked.
--- End code ---
Changelog
- 25 Jun 2024 - clarified scope of use and risks
- 26 Jun 2024 - update to version 1.1.0 adding the find key option. Source is now provided (Python 3.10+ required) as the packaged versions did trigger false-positive warnings on Virustotal
- 26 Jun 2024 - removed (https://www.eevblog.com/forum/testgear/siglent-ads-firmware-toolkit/msg5554955/#msg5554955)
egonotto:
Virus warning?
optotester:
You are getting a virus warning or is it a question ?
I do not see any behaviour in the tool that could trigger a virus warning.
It is python compiled with nuitka and it only uses very basic libraries (no os/network library).
If you have any doubt you can still run it in a VM.
egonotto:
Hello,
thanks.
I was not allowed to download the file with Edge with firefox I got the file, but when unzipping I got a virus warning again.
At Virustotal I got the following information:
"4/72 security vendors and no sandboxes flagged this file as malicious"
Best regards
egonotto
egonotto:
Hello,
I tried, but there were errors:
E:\>adstoolkit -x 9999.ADS
Python path configuration:
PYTHONHOME = 'C:\ProgramData\miniconda3'
PYTHONPATH = (not set)
program name = 'adstoolkit.exe'
isolated = 0
environment = 1
user site = 1
safe_path = 0
import site = 0
is in build tree = 0
stdlib dir = 'C:\ProgramData\miniconda3\Lib'
sys._base_executable = 'E:\\adstoolkit.exe'
sys.base_prefix = 'C:\\ProgramData\\miniconda3'
sys.base_exec_prefix = 'C:\\ProgramData\\miniconda3'
sys.platlibdir = 'DLLs'
sys.executable = 'E:\\adstoolkit.exe'
sys.prefix = 'C:\\ProgramData\\miniconda3'
sys.exec_prefix = 'C:\\ProgramData\\miniconda3'
sys.path = [
'C:\\Users\\m\\AppData\\Local\\Programs\\Python\\Python311\\python311.zip',
'C:\\ProgramData\\miniconda3\\Lib',
'C:\\ProgramData\\miniconda3\\DLLs',
]
Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
Python runtime state: core initialized
ModuleNotFoundError: No module named 'encodings'
Current thread 0x00002340 (most recent call first):
<no Python frame>
Best regards
egonotto
Navigation
[0] Message Index
[#] Next page
Go to full version