What does LSB executable mean?

What does LSB executable mean?

“LSB” here stands for “least-significant byte” (first), as opposed to “MSB”, “most-significant byte”. It means that the binary is little-endian. file determines this from the sixth byte of the ELF header.

Is a shared object executable?

So /bin/ntfsck and /usr/bin/gawk are technically compiled libraries (or objects in the linker’s perspective), but, as one may have forsaw, nothing prevents a shared object from being run as an executable. This means that each of them is dynamically linked to (and likely uses) other shared objects as well.

What’s the difference between ” LSB executable ” ( et )?

With two files, one compiled and linked with gcc and the other manually with nasm and ld I get ELF 32-bit LSB shared object ELF 32-bit LSB executable What’s the difference between these two things? I can see with readelf -h that one is I can see these documented on Wikipedia as ET_DYN and ET_EXEC.

What’s the difference between a shared object and an executable?

Another difference is that executables have a defined entry point address offset, i.e., 0x08048000 for i386, 0x00400000 for x86 and 0x00010000 for arm. A shared object file can be a library, but also an executable. When being an executable, there is no such offset.

What’s the difference between pie and ET EXEC?

It appears that the main effect of ET_EXEC vs ET_DYN in the Linux kernel / dynamic loader is to inform if the executable can be placed in random memory locations or not with ASLR. As you concluded then, PIE executables are DYN, as they can be randomized, exactly like shared libraries.

What’s the difference between compiled and shared objects?

There’s no difference, aside from the fact that a compiled executable might be linked against a shared object but not against an executable. So /bin/ntfsck and /usr/bin/gawk are technically compiled libraries (or objects in the linker’s perspective), but, as one may have forsaw, nothing prevents a shared object from being run as an executable.