News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Getting graphics out of Flash vom Car-Instrument-Cluster  (Read 1138 times)

hackfleisch

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Getting graphics out of Flash vom Car-Instrument-Cluster
« on: April 02, 2018, 09:02:25 am »
Hello,

it may be placed wrong, but i'm looking for a way to extract the graphics in a Flash-Dump of my cars instrument cluster.

I found some repeatings inside, but still have no clue what image format this may be. All i know is that images are stored have 256 indexed colors, so 8 bit per pixel.

Don't know how to attach files here to post binary dump data, but here is my interpreted example:

Code: [Select]
0x0000 - 0x00F7 (Len 0xF8)
00 00 FF 00 00 01 00 00 00 00 00 00
0x000C: 00 0D
49 01 00 1B 49 01 00 1B 49 01 00 1B 49 01 00 1B 49 01 00 1B 02 00 52 49 00 1A 02 00 49 50 00 29 49 1C 00 1F 0F 00 00 49 00 00 49 49 00 00 49 00 00 49 00 00 0C 49 00 00 49 10 00 49 49 00 00 00 00 49 00 49 49 00 00 00 0D 49 00 00 49 13 00 00 00 49 49 00 49 00 00 00 00 49 49 00 00 00 00 49 49 04 00 05 18 00 00 49 49 00 00 00 00 49 00 49 49 00 00 00 00 49 00 49 49 00 49 00 49 00 00 04 18 00 00 49 49 00 00 00 00 49 00 49 49 00 00 00 49 49 00 00 49 00 49 00 49 00 00 04 35 00 00 49 49 00 00 00 00 49 00 49 49 00 00 00 00 49 00 49 49 00 49 00 49 00 00 00 49 00 49 49 00 00 49 49 00 00 49 00 00 49 00 00 00 49 49 00 49 00 49 00
49 00 00 00 00 00 1C 00 11 00 1C
00 00 00
00 30 0C 00
00 30 00 00
00 00 38 56

0x00F8 - 0x12BF (Len 0x11C8)
00 00 FF 00 00 01 00 00 00 00 00 00
0x0104: 00 C2
06 00 9C 98 A8 A6 AA AA AB 05 06 00 AA AA A6 A8 98 9C 00 27 09 00 A8 9D AF AC AD AF AB AC 05 AB 00 AA AB 09 AC AB AF AD AC AC 9B A8 00 22 06 00 AC A2 AE AF AA AB A9 08 0D 00 A9 A8 A9 A8 A9 A8 A9 A8 AD AA AC AC 1E A2 00 00 9C 0D B0 AC AA AB AA A9 A9 A9 A8 A8 A7 A7
...
04 8A 00 90 8D 04 00 90 1E 90 00 00 8D 05 8D 00 8D 90 90 13 03 00 00 8D 23 8D 00 00 8D 15 8D 00 8D 00 8D 00 8D 00 8D 00 00 00 00 90 8D 00 8D 00 8D 00 00 29 0D 00 00 8D 00 8D 00 00 00 8D 90 00 00 00 FE 8D 42 00 00 00 00 00 3B 00 73 00 3B
00 00 00
00 30 04 01
00 30 F8 00
00 00 38 56

0x27AC - 0x28AB (Len 0x100)
00 00 FF 00 00 01 00 00 00 00 00 00
0x27B8: 00 36
33 0D 00 0B 33 01 00 0B 33 01 00 08 33 04 00 0B 33 01 00 08 04 00 00 33 33 00 00 0B 33 01 00 08 04 00 00 33 33 00 00 0B 33 01 00 08 06 00 00 33 33 00 38 34 00 09 33 01 00 08 07 00 00 33 38 00 33 35 08 34 01 00 08 33 01 00 05 33 00 00 34 02 07 35 01 00 08 33 01 00 05 33 00 00 38 03 38 33 00 06 33 01 00 08 33 01 00 06 02 00 38 33 00 06 33 01 00 08 33 01 00 05 03 00 33 38 06 38 01 00 08 33 01 00 05 33 00 00 34 02 07 35 01 00 08 33 00 00 33 07 00 00 35 38 34 33 00 08 33 01 00 08 06 00 00 33 33 00 38 34 00 09 33 01 00 08 04 00 00 33 33 00 00 0B 33 01 00 08 04 00 00 33 33 00 00 0B 33 01 00 08 33 04 00 0B 33 01 00 0B 33 01 00 0B 33 01 00 0B
33 0D 00 35 00 00 00 00 18 00 17 00 18
00 00 00
00 30 B8 27
00 30 AC 27
00 00 38 56

0x28AC - 0x29AB (Len 0x100)
00 00 FF 00 00 01 00 00 00 00 00 00
0x28B8: 00 36
36 0D 00 0B 36 01 00 0B 36 01 00 08 36 04 00 0B 36 01 00 08 04 00 00 36 36 00 00 0B 36 01 00 08 04 00 00 36 36 00 00 0B 36 01 00 08 06 00 00 36 36 00 32 37 00 09 36 01 00 08 07 00 00 36 32 00 36 39 08 37 01 00 08 36 01 00 05 36 00 00 37 02 07 39 01 00 08 36 01 00 05 36 00 00 32 03 32 36 00 06 36 01 00 08 36 01 00 06 02 00 32 36 00 06 36 01 00 08 36 01 00 05 03 00 36 32 06 32 01 00 08 36 01 00 05 36 00 00 37 02 07 39 01 00 08 36 00 00 36 07 00 00 39 32 37 36 00 08 36 01 00 08 06 00 00 36 36 00 32 37 00 09 36 01 00 08 04 00 00 36 36 00 00 0B 36 01 00 08 04 00 00 36 36 00 00 0B 36 01 00 08 36 04 00 0B 36 01 00 0B 36 01 00 0B 36 01 00 0B
36 0D 00 35 00 00 00 00 18 00 17 00 18
00 00 00
00 30 B8 28
00 30 AC 28
00 00 38 56

0x29AC - 0x2AAB (Len 0x100)
0x29AC: 00 00 FF 00 00 01 00 00 00 00 00 00
0x29B8: 00 36
01 0D 00 0B 01 01 00 0B 01 01 00 08 01 04 00 0B 01 01 00 08 04 00 00 01 01 00 00 0B 01 01 00 08 04 00 00 01 01 00 00 0B 01 01 00 08 06 00 00 01 01 00 42 40 00 09 01 01 00 08 07 00 00 01 42 00 01 41 08 40 01 00 08 01 01 00 05 01 00 00 40 02 07 41 01 00 08 01 01 00 05 01 00 00 42 03 42 01 00 06 01 01 00 08 01 01 00 06 02 00 42 01 00 06 01 01 00 08 01 01 00 05 03 00 01 42 06 42 01 00 08 01 01 00 05 01 00 00 40 02 07 41 01 00 08 01 00 00 01 07 00 00 41 42 40 01 00 08 01 01 00 08 06 00 00 01 01 00 42 40 00 09 01 01 00 08 04 00 00 01 01 00 00 0B 01 01 00 08 04 00 00 01 01 00 00 0B 01 01 00 08 01 04 00 0B 01 01 00 0B 01 01 00 0B 01 01 00 0B
01 0D 00 35 00 00 00 00 18 00 17 00 18
00 00 00
00 30 B8 29
00 30 AC 29
00 00 38 56

0x2AAC - 0x2F7C (Len 0x4D1)
0x2AAC: 00 00 FF 00 00 01 00 00 00 00 00 00
0x2AB8: 00 04
09 01 1A EE 02 00 16 18 00 07 03 00 1A 09 F0 17 00 03 15 02 04 15 00 00 09 02 F5 17 03 03 01 00 F6 1A 00 03 10 04 09 00 F6 17 00 03 13 03 1A 00 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10
...
1A 10 03 F8 02 00 1A 10 03 F8 02 00 1A 10 03 F8 02 00 18 10 03 F8 02 00 16 10 03 F8 03 00 00 10 F6 15 00 03 10 04 00 00 F6 15 00 03 10 04 00 00 F5 00 01 03 05 10 00 00 10 02 F0 13 00 03 10 02 08 10 F0 00 05 10 00 00 FA 00 C3 00 FA
00 00 00
00 30 B8 2A
00 30 AC 2A
00 00 38 56

0x604D0 - 0x606D7 (Len 0x208)
0x604D0: 00 00 FF 00 00 01 00 00 00 00 00 00
0x604DC: 00 FE 00 FE 00 FE 00 FE 00 5E 02 00 03 03 00 37 03 00 85 03 36 03 00 00 03 04 85 85 05 03 01 00 1A 86 01 85 14 86 00 00 03 09 85 85 03 85 00 00 87 00 85 1E 87 01 00 11 03 01 85 04 04 00 00 03 00 00 85 20 00 10 03 01 85 05 04 00 00 03 86 00 85 20 86 01 00 0E 03 01 85 2B 00 0D 03 01 85 2C 00 0C 03 01 85 2D 00 0C 85 2E 00 0C 85 14 86 01 00 10 86 01 85 08 00 0C 03 01 85 13 00 12 85 08 00 0D 03 01 85 12 00 12 85 08 00 0E 03 01 85 10 87 01 00 12 85 08 00 0F 03 01 85 05 03 01 00 1C 85 08 00 10 03 01 85 04 04 00 00 03 00 00 86 06 00 13 85 08 00 11 08 00 85 03 85 85 00 03 00 00 86 06 00 13 85 08 00 12 07 00 85 03 03 85 00 00 06 00 13 86 08 00 13 85 00 00 03 06 03 85 00 00 06 00 13 86 08 00 14 85 00 00 03 05 00 03 00 00 86 06 00 13 85 08 00 19 86 06 00 13 85 08 00 19 86 06 00 13 85 08 00 19 86 06 00 13 85 08 00 19 86 06 00 13 85 08 00 19 86 06 00 13 85 08 00 19 86 06 00 13 85 08 00 19 86 06 00 13 85 08 00 19 86 06 00 12 86 01 85 08 00 19 86 07 00 05 87 01 85 14 00 19 86 0B 00 01 85 15 00 19 86 0B 00 01 85 15 00 19 86 0B 00 01 85 15 00 19 86 0B 00 01 85 14 86 01 00 1A 86 0A 00 01 85 14 00 1C 86 09 00 01 85 13 87 01 00 26 85 11 86 01 00 28 85 08 86 01 00 31 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 32 85 08 00 19 00 00 00 00 3A 00 50 00 3A 00 00 00
06 30 DC 04
06 30 D0 04
00 00 38 56


Jorpho

  • Hero Member
  • *****
  • Posts: 4194
  • The cat screams with the voice of a man.
    • View Profile
Re: Getting graphics out of Flash vom Car-Instrument-Cluster
« Reply #1 on: April 03, 2018, 12:38:25 am »
If it's uncompressed data, the first thing I would try would be to open it in Tile Molester, which supports a variety of raw image formats.
This signature is an illusion and is a trap devised by Satan. Go ahead dauntlessly! Make rapid progres!

hackfleisch

  • Jr. Member
  • **
  • Posts: 21
    • View Profile
Re: Getting graphics out of Flash vom Car-Instrument-Cluster
« Reply #2 on: April 03, 2018, 12:53:01 am »
I tried this before, but could not get any reasonable results. There must be a cars brand logo (Ford) inside, which is 400x198 Pixels and 256 indexed colors, this i know for shure. The others may be symbols and characters.

I think there is some kind of compression. Because of the age and the architecture (build 2007 usbg a NXP MAC7116) used i tried to decode it as RLE (used in BMP) or LZW (GIF), but could‘nt get any result, It does not seem to fit.

Also i could not determine any size values in the header, neither length nor width and height. I could not imagine how the processor know at which address to look for a specific image. All i found are two pointers at the end of each block (image, tile?), right before the EOI magic 38 56. Look at the last image block posted. The first dword in front of the magic points to the beginning of the block, which makes ni sense to me. To get the address, use little endian. The prefix 0x30 may be just flags or a relative higher address the processor uses to address the external flashdata.

I’m stuck. Therefore i posted it here, because you guys really know this stuff!
If someone needs the whole flashdump, it can be donwloaded here: s29gl016a90tfir2_ipc_vfl_7m2t-14c026-ae.zip


April 03, 2018, 02:29:20 am - (Auto Merged - Double Posts are not allowed before 7 days.)
One important thing i should mention: The data inside the flash is read as 16 Bit entities (WORDs). This is because of the hardware architecture.
So the datastream:
Code: [Select]
00 00 FF 00 00 01 00 00 00 00 00 00 00
05 AC 0B 00 05 AC 6F 02 00 8C 9A 00 05 57 05 AC 01 60 09 27 01 57 05 AC 01 60 70 05 00 74 74 00 00 05 00 01 57 09 AC 01 60 05 27 01 57 72 AC 00 60 6A 03 00 00 57 05 AC 01 60 09 27 01 57 05 AC 01 60 73 02 00 00 4B 57 05 AC 01 60 09 27
must be read as:
Code: [Select]
00 00
FF 00
00 01
00 00
00 00
00 00
00 05
AC 0B
00 05
AC 6F
02 00
8C 9A
00 05
57 05
AC 01
60 09
27 01
57 05
AC 01
60 70
...
4B 60
08 4B
0B 00
05 4B
71 00
05 4B
00 00
00 00
8B 00
C3 00
8B 00
00 00
08 30
D8 F5
08 30
CC F5
00 00
38 56

It may be interpreted as bytes, but could also skip some bytes... i don't know. Even endianess is unknown.
« Last Edit: April 03, 2018, 02:29:20 am by hackfleisch »