By default, NASM places a
.symtab
on the executable as well.This is only used for debugging. Without the symbols, we are completely blind, and must reverse engineer everything.
You can strip it with
objcopy
, and the executable will still run. Such executables are called "stripped executables".