So I've been poking at the .ads update file for SDG1000X plus, in particular P43R8 , and I think there are minor tweaks (again) to the .ads format, and I'm not done figuring it out.
I wish I had found this thread sooner; would have saved a few hours...
My process so far :
- reverse all bytes of .ADS file
- xor 0xff on bytes at offsets +0,1,3,6, etc. (nothing new here)
- xor 0xff on last "half" of the file
The last steps helps, but is not perfect : 7z complains
Path = SDG1000X_Plus_P43R8.SDA.zip
Type = zip
ERRORS:
Headers Error
Unconfirmed start of archive
WARNINGS:
There are data after the end of archive
Physical Size = 22809189
Tail Size = 1762
Characteristics = Local
Date Time Attr Size Compressed Name
------------------- ----- ------------ ------------ ------------------------
2025-07-15 01:43:30 D.... 0 0 firmdata0
2024-08-19 04:05:25 ..... 497 240 firmdata0/NSP_trends_config_info.xml
2025-07-15 01:43:30 D.... 0 0 img
2025-07-15 01:43:30 ..... 25821184 18762362 img/siglent.img
2025-03-16 20:12:06 ..... 15252 4030 img/devicetree.dtb
2025-03-16 20:12:06 ..... 3626512 3601591 img/uImage
2025-03-16 20:12:06 ..... 2762796 440447 img/BOOT_tmp.bin
------------------- ----- ------------ ------------ ------------------------
2025-07-15 01:43:30 32226241 22808670 5 files, 2 folders
and there is evidence of corruption in img/siglent.img ; some weird plaintext strings with bad characters.
While extracting files, siglent.img causes a "CRC error", and BOOT_tmp.bin a "Data error".
The 'PK' chunk headers for all of those files look fine, except the last (BOOT_tmp.bin) : it declares a compressed size of 440447 (0x6b87f), but at the end of that chunk, there is still 0x6e6 bytes left of high-entropy, with no header or visible structure.
I'm wondering if there's a subtle difference in the XOR strategy. Also since I see so much plaintext in the extracted files, it's not clear if / where there is a block of "DES" encrypted data at all ?
Has anyone else looked into these more recent .ads files ?