strip (Unix)

strip is a shell command for removing information from binary executable programs and object files that is not required for execution – typically including debugging data, symbol tables, relocation information, and other metadata. The resulting file generally has a smaller size and potentially has increased performance. The resulting file is known as a stripped binary.

Using strip can enhance the security of an executable by making it more difficult to reverse-engineer. The absence of symbol and debugging information complicates the program analysis of the binary.

The effect of strip can also be achieved via a compiler or linker to perform the same process. For example, in the GNU C compiler (gcc), this is done via the -s option.

The command is available in Unix, Plan 9, and Unix-like systems. The GNU Project includes an implementation in the GNU Binutils package. The command has been implemented in to other operating systems including Windows.

See also

  • Dead code elimination – Compiler optimization to remove code which does not affect the program results
  • Debug symbol – special kind of symbol that attaches additional information to the symbol table of an object file, such as a shared library or an executable, allowing a symbolic debugger to gain access to information from the source code of the binary
  • Executable compression – Means of compressing an executable file
  • List of POSIX commands
  • strings (Unix) – Shell command for extracting printable text from a binary file
  • Symbol table – Data structure used by a language translator such as a compiler or interpreter

References

Uses material from the Wikipedia article strip (Unix), released under the CC BY-SA 4.0 license.