GNU binutils' `strip` command performs precisely this algorithm on every release binary shipped by Linux distributions, trading reverse-engineering friction for smaller file sizes; malware authors abuse the same technique to hide symbol names from analysts running `nm` or Ghidra. Knowing what must survive (.dynsym, .dynstr) versus what can go is exactly why stripped binaries still run correctly.