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
- "strip", The Single UNIX Specification, Version 2, The Open Group, 1997
External links
- The Single UNIX Specification, Version 4 from The Open Group – Shell and Utilities Reference,
- Plan 9 Programmer's Manual, Volume 1 –