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
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.
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)