Options to protect code in object files with fromelf
If you are delivering objects to third parties, then you might want to protect the code they contain.
To help you to protect this code, fromelf provides the --strip
option and the --privacy
option. These options remove or obscure the symbol names in the object. The option you
choose depends on how much information you want to remove. The effect of these options is
different for object files.
Restrictions
You must use --elf
with these options. Because you have to use
--elf
, you must also use --output
.
Effect of the options for protecting code in object files
For object files:
Table 2-2 Effect of fromelf --privacy and --strip options on object files
Option | Local symbols | Section names | Mapping symbols | Build attributes |
---|---|---|---|---|
fromelf --elf
‑‑privacy |
Removes those local symbols that can be removed without loss of functionality. Symbols that cannot be removed, such as the targets for
relocations, are kept. For these symbols, the names are removed. These are marked
as |
Gives section names a default value. For example, changes code
section names to |
Present | Present |
fromelf --elf
‑‑strip=symbols |
Removes those local symbols that can be removed without loss of functionality. Symbols that cannot be removed, such as the targets for
relocations, are kept. For these symbols, the names are removed. These are marked
as |
Section names remain the same |
Present | Present |
fromelf --elf
‑‑strip=localsymbols |
Removes those local symbols that can be removed without loss of functionality. Symbols that cannot be removed, such as the targets for
relocations, are kept. For these symbols, the names are removed. These are marked
as |
Section names remain the same |
Present | Present |
Example
To produce a new ELF object with the complete symbol table removed and various section names changed, enter:
fromelf --elf --privacy --output=outfile.o infile.o