Encoding/Decoding DOS (Windows) Firmware images
Name of encoded file: DXM06B0Q.enc
uint8_t encode(uint8_t v) { return (v & 0x80) ? (~(v<<1) & 0xE0) | (v & 0x0F) : (v<<1 & 0xE0) | 0x10 | (v & 0x0F); } uint8_t decode(uint8_t v) { return (v & 0x10) ? (v>>1 & 0x70) | (v & 0x0F) : (~(v>>1) & 0x70) | 0x80 | (v & 0x0F); }
ARM little endian
Sections:
Five tiny data sections: 00000000-0000004c 00001000-00001a9e 00002000-000020e5 00003000-00003062 00003800-00003809 Four code sections 00004000 low0 (mapped to 00000000) 0000C000 low1 (mapped to 00000000) 00028000 low2 (mapped to 00000000) 00044000 low3 (mapped to 00000000) And two more code sections 0006C000 high0 (mapped at 80000000) 000A4000 high1 (not sure where) there are calls in high0 into the lower area that only make sense when low1 is mapped. but it doesn't look like code to me since it disassembles into a sequence of garbage ANDEQ instructions some of the code is thumb, some is arm, so you have to check both possibilities are we looking at the same file? probably not, mine is named "DXT09B0Q"