Executable Binary MIME Type

Learn what application/x-executable means, how to identify and inspect executable binaries, and how Poly handles .obj files.

MIME type details for application/x-executable

In active use
MIME typeapplication/x-executable
Extensions
.obj
Magic number7F 45 4C 46 (ELF family; inspect the header type)
First standardizedUnknown; unregistered desktop convention
Created byfreedesktop.org shared-mime-info contributors
Browser supportNo native browser support
Example applicationsGNU readelf, Ghidra
Poly supportPartial. Poly recognizes .obj as application/x-executable and stores, syncs, shares, and versions it, but does not parse the binary.
Indexed by PolyPartial. Poly indexes the filename and ordinary file properties, but not headers, architecture, symbols, imports, strings, or code.
Preview in PolyNo. application/x-executable files do not have an in-app viewer; download them and use a static inspection tool.
Poly agentNo. The Poly agent cannot read or reason about the binary contents of application/x-executable files.

What does application/x-executable mean?

The application/x-executable media type is a deployed label for a native executable, most often an Executable and Linkable Format (ELF) program on Unix-like systems. It is not a complete format specification. The label describes the file's role, while ELF describes the container and its headers.

The freedesktop.org shared MIME database calls this type "Executable" and detects ELF-family files by their header bytes. It does not assign the type a filename glob or standard extension.1 That distinction matters because Unix executables commonly have no suffix at all.

application/x-executable is absent from IANA's media-type registry. It is a desktop and file-identification convention rather than an Internet-standard registration.2 RFC 6838 also explains that an x- prefix no longer defines a formal registration tree.3

How do you identify an executable binary?

An ELF file begins with 7F 45 4C 46, which is 0x7F followed by the ASCII letters ELF. The next bytes record its 32-bit or 64-bit class, byte order, ELF version, operating-system ABI, and ABI version.4

Those four bytes identify the ELF family, not necessarily an executable. The ELF header's e_type field distinguishes several roles:4

e_typeValueMeaning
ET_REL1Relocatable object used as linker input
ET_EXEC2Executable file
ET_DYN3Shared object or position-independent executable
ET_CORE4Core dump

This is why a detector should parse the header instead of treating 7F 45 4C 46 as proof that a file is directly runnable. The freedesktop.org database has more specific types for ELF object code and shared libraries, then uses application/x-executable as a broad executable fallback.1

You can inspect a suspected ELF file without launching it:

file --mime-type path/to/program
readelf -h path/to/program
readelf -l path/to/program
readelf -d path/to/program

GNU readelf supports 32-bit and 64-bit ELF files. Its header, program-header, section, symbol, relocation, and dynamic-table views expose much more than a MIME guess does.5 LLVM's llvm-readobj offers similar low-level inspection across object formats.6

Does application/x-executable have a file extension?

No portable extension belongs to this media type. A Unix command such as grep or my-service normally has no suffix. .bin is sometimes used for installers or arbitrary binary data, but it does not uniquely identify an executable.

Poly has a narrower internal convention: it maps .obj filenames to application/x-executable. This is useful for consistent storage and lookup inside Poly, but it should not be treated as a universal MIME association. In the freedesktop.org database, ELF relocatable objects use application/x-object and usually .o, while .obj can refer to unrelated formats.1

The surrounding ecosystem therefore uses several labels for different binary families:

File kindCommon deployed media typeTypical naming
Unix native executable, often ELFapplication/x-executableUsually no extension
ELF relocatable objectapplication/x-object.o
ELF shared libraryapplication/x-sharedlib.so or versioned .so.*
Apple Mach-O binaryapplication/x-mach-binaryOften no extension; Poly recognizes .mach
Windows Portable Executableapplication/vnd.microsoft.portable-executable.exe, .dll
Generic unknown bytesapplication/octet-streamAny or none

Changing a suffix or Content-Type header does not convert one binary format into another. The target operating system, CPU architecture, ABI, loader, libraries, and actual machine code still have to match.

How do you open an application/x-executable file?

A browser has no native executable viewer and should not run a response merely because a server supplies this media type. Downloading the bytes is not the same as safely opening them.

For static inspection:

  • Use readelf or llvm-readobj for ELF headers, sections, symbols, relocations, and dependencies.56
  • Use objdump or llvm-objdump when you need section contents or disassembly.7
  • Use Ghidra for interactive reverse engineering. Ghidra can import ELF, PE, raw binaries, and other executable formats, then analyze a recognized program without requiring you to launch it.8
Run readelf -h first. The class, byte order, machine, ABI, and file type quickly reveal whether your tools and host are appropriate for deeper analysis.

Support in Poly

Poly recognizes .obj filenames as application/x-executable. It can store, sync, share, version, download, and find these files by name. The mapping is classified as an unknown binary rather than a text or executable preview category, so Poly's format-specific processing stops there:

  • Poly does not parse executable or object-file headers.
  • Architecture, sections, symbols, imports, dependencies, embedded strings, and instructions are not indexed.
  • There is no thumbnail, hex view, disassembler, or other in-app content preview.
  • The Poly agent cannot inspect or explain the binary contents.

For searchable analysis, save trusted tool output such as readelf -a or llvm-readobj --all as a separate text file next to the original. Poly can index that report through its normal text workflow, while preserving the binary unchanged.

Can you convert an executable binary?

There is no general conversion from an executable to source code, PDF, text, another CPU, or another operating system. Choose the operation that matches your goal:

  • Export headers, symbols, relocations, or disassembly as text for review.
  • Extract debug information with format-aware tooling when it is present.
  • Rebuild from source for another architecture, ABI, or operating system.
  • Package the original in an archive if the goal is transport, not format conversion.

A decompiler can produce a higher-level approximation, but it cannot reliably recover original names, types, comments, build settings, or source structure that compilation removed. Stripped binaries preserve even less symbolic context.

Security and compatibility

Treat every unfamiliar executable as active content. Do not run it merely to discover what it is. Linux's execve can reject a file because its format is unrecognized, its architecture is wrong, an interpreter is missing, or execute permission is denied, but a successful launch says nothing about whether the program is trustworthy.9

Static inspection also involves parsers handling attacker-controlled input. Keep analysis tools patched, work on a copy, verify hashes and signatures when available, and use an isolated environment for hostile or unknown samples.

Compatibility requires more than an ELF magic number. Check at least the CPU machine value, 32-bit or 64-bit class, byte order, operating-system ABI, requested program interpreter, and needed shared libraries. A valid ELF executable built for another architecture or loader can be perfectly well-formed and still be unusable on the current system.

Footnotes

  1. freedesktop.org. Shared MIME Info Core Database. The definitions for application/x-executable, application/x-object, and application/x-sharedlib supply the deployed names and matching rules. 2 3
  2. Internet Assigned Numbers Authority. Media Types Registry. The application registry does not list application/x-executable.
  3. Internet Engineering Task Force. RFC 6838, Media Type Specifications and Registration Procedures.
  4. System V Application Binary Interface. ELF Header. 2
  5. GNU Project. readelf. GNU Binary Utilities documentation. 2
  6. LLVM Project. llvm-readobj: LLVM Object Reader. 2
  7. GNU Project. objdump. GNU Binary Utilities documentation.
  8. National Security Agency. Introduction to Ghidra.
  9. Linux man-pages project. execve(2).
© Poly Corp. 2026