Executable and Linkable Format (ELF) is a binary format used on Unix, FreeBSD, Linux and many other operating systems. This file format was introduced around 1995 and in 1999 it was chosen as the default binary format for Unix based operating systems on x86 and x86-64 platforms.
ELF files can have AXF, BIN, ELF, O, PRX, PUFF, KO, MOD, SO file extensions or no file extension at all. In contrast with portable executable file format which has EXE extension assigned to executable files, there are no strict rules for file extensions in case of ELF file. Any file with any extension could be made executable if permissions are correct. For example if you have a file example.bin on your disk and you want to execute it you need to run following command:
sudo chmod +x ./example.bin
This command will set +x flag on example.bin file and the file will be executable now. In order to run it you will need to type
./example.bin
Technically example.bin could have any file extension, even none at all. That is possible because flag is all that is needed to set file as executable for Unix based operating systems.
Since executable and linkable format file is binary you will not be able to get any useful information if you open it in text editor. Technically it is possible to learn something from the file in HEX editor but only a software engineer with advanced knowledge of ELF format can do it. That’s why Unix operating system has a tool called objdump which can decode and output ELF file internal structures and code in human readable format. For example if you run:
$ objdump -h -Dintel example.bin > example.dis
This will output example.bin ELF file headers, full disassembly to example.dis file. In order to understand this output development background is still required but some information could be extracted by a regular user with step by step instructions.
BIN Quick Details | |
---|---|
Binary File | |
MIME Type | |
| |
Opens with | |
|