| Products > Test Equipment |
| Siglent .ads firmware file format |
| << < (11/85) > >> |
| janekivi:
Yes, I got it from the link there https://www.eevblog.com/forum/testgear/siglent-ads-firmware-file-format/msg998481/#msg998481 And I changed here root password too SDG2000_eevblog_P22R5.ads |
| hafrse:
--- Quote from: janekivi on October 27, 2016, 06:23:06 pm ---Yes, I got it from the link there https://www.eevblog.com/forum/testgear/siglent-ads-firmware-file-format/msg998481/#msg998481 And I changed here root password too SDG2000_eevblog_P22R5.ads --- End quote --- works fine, thanks for your valuable contribution !!!!!!!!!!!!!!!!!!!!!! |
| janekivi:
One ADS format is teared to the bits... you know... bits. OK. But what about the other ADS, like for scopes. Let's take one and start looking. May be we find something. How all this look to me. I take SDS2000X and SDS1000X files here and compare them. There is header and parts have 72 byte header. Hard to tell about header and first file line but I start from start. First 4 bytes is 00123456? Next 8 bytes is parts table. One byte represents one part and if it's present then there is 01 otherwise there is 00. So i think 8 possible parts in firmware. Obviously there must be some addresses. Next 8 x 4 bytes is them. If there wasn't that part - there isn't there address too. Let's look closer sds2k_V100R02B01D01P38R07_fvA1606060606M160516.ADS. Then we see what is next and where is file header ends. --- Code: ---00000000 56 34 12 00 01 01 01 01 01 00 01 00 D1 EC 0D 00 V4..........Ñì.. 00000010 FF B7 16 00 FF B7 16 00 3B BB 16 00 CC 4C 13 00 ÿ·..ÿ·..;»..ÌL.. 00000020 00 00 00 00 FF FF 07 00 00 00 00 00 32 2E 31 2E ....ÿÿ......2.1. 00000030 31 2E 39 00 89 03 04 00 39 00 00 32 30 31 36 30 1.9.....9..20160 00000040 36 30 36 00 03 04 00 39 00 00 32 30 31 36 30 36 606....9..201606 00000050 30 36 00 03 04 00 39 00 00 32 30 31 36 30 35 31 06....9..2016051 00000060 36 00 03 04 00 39 00 00 31 2E 32 2E 31 2E 33 38 6....9..1.2.1.38 00000070 2E 37 00 00 39 00 00 00 00 00 00 00 00 00 00 00 .7..9........... 00000080 00 00 00 00 00 00 33 2E 31 2E 31 2E 31 33 00 37 ......3.1.1.13.7 00000090 00 00 39 00 00 00 00 00 00 00 00 00 00 00 00 00 ..9............. 000000A0 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................ 000000B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 000000C0 00 00 00 00 FF BD DC C9 32 2E 31 2E 31 2E 38 00 ....ÿ½ÜÉ2.1.1.8. ........ ... --- End code --- Third part in here is part version. In some cases it's in date format. But i'm not sure what's between. For each part there is 15 bytes. May be version nr is 8 bytes and between is part type. Somewhere there is bin and when version was 9 bytes, for "bin" wasn't room and there is "in". Obviously version part is missing too when 00 is written to part and length bytes. So 8 parts x 15 bytes is 120 and next data is 01 for SDS2000 and 03 for SDS1000. May be rest is padding there and real stuff may begin from address C4 making header 196 bytes long. May be... First 4 bytes is Siglent CRC for first part which is starting from C8 and have his length in first place - D1 EC 0D 00 - 0D EC D1. Strange thing there is - CRC bytes are in different order in this ADS format. From CRC to the next part is 0D EC D1 and here is next part data length B7 B7 16 - 16 B7 B7. Data start with FF there and header must be 72 bytes because from header we see the whole part length is FF B7 16. Like this all is going to continue. First part is a bit different. I have here different timezone and that's all for today. Let's continue this bedtime story at next time. |
| janekivi:
All is not that simple as it looks. But that's how all is at the beginning. This SDS firmware is like memory dump with predefined regions for parts-files. Addresses in the header is kind of place markers. Data can be shorter there and in some cases I can't find any length or crc or other part-file guidance at this beginning address. Of course I don't know anything about those parts. First of them is something like string collection. All of them are bit confusing right now... I got suitable parts from Siglent_ADS project junkyard and start beating together new utility for this. _____________________ v0.1.1 with file open check |
| janekivi:
When we open SDS2000X file sds2k_V100R02B01D01P38R07_fvA1606060606M160516.ADS and cut it to the parts, today part 5 is interesting for us. It can be executable and contain packed part too like SDG1000 file. If we look it in hex editor and scroll thru the data we can see structure change at address 00 01 09 A7. It is like zlib header again - 78 DA. Zlib with the best compression. Then Last 6 bytes is some sort of padding and Adler32 must be 88 CE 76 FC. But who knows... |
| Navigation |
| Message Index |
| Next page |
| Previous page |