This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

File in cortex-m33's liblwm2m_carrier.a violates ARM ELF standard

Hey,

I'm using cortex-m33 and iv'e noticed a peculiarity about one of the libraries for it that arrived with the SDK:

In the library liblwm2m_carrier.a there is a file called obfuscated.elf.

This file contains a section called ".text" in which there is thumb code, as well as data.
However, this section doesn't have any mapping symbols ("$t" or "$a").

This is in violation of the "ELF for the ARM Architecture" document (http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044f/IHI0044F_aaelf.pdf), in which it is stated (page 24, section 4.5.5.1):
"...A section must have a mapping symbol defined at the beginning of the section; however, if the section contains only data then the mapping symbol may be omitted."

Could you shed some light on this file\library?
Why does it violate the standard? Is it a bug or a deliberate part of the obfuscation (i'm guessing from the file name that it is indeed obfuscated)?

Could you provide some details on the obfuscation tool that generated such a file?

Thanks!

Tal

Related