Skip to content
Torzen home page
Menu

Guides

Symbol files

Why Torzen uses symbols, how to prepare PDB, dSYM and DWARF files, how the panel checks that they match the file, and what to do without symbols.

Symbols map function names to their addresses in the file. With them you choose functions by name in the panel and in settings, for example LicenseManager::validate, instead of looking up addresses. Symbols are used only for analysis and are not added to the protected file.

Formats

System File Symbols
Windows PE PDB from the same build
macOS Mach-O dSYM bundle packed as a ZIP archive
Linux ELF DWARF in the file or a separate .debug file

Preparation

MSVC: turn on the /DEBUG:FULL linker option. The PDB file is written next to the EXE or DLL.

Clang and GCC on Linux: build with -g. If you ship the file without symbols, split them off before stripping:

Terminal
objcopy --only-keep-debug app app.debug
strip --strip-debug app

Then upload the stripped app and, separately, app.debug.

Xcode: set DEBUG_INFORMATION_FORMAT to dwarf-with-dsym and pack the .dSYM folder:

Terminal
ditto -c -k --keepParent build/App.app.dSYM App.dSYM.zip

Matching the file

The panel compares the build identifier stored in the file and in the symbols: GUID and age for PDB, UUID for Mach-O, Build ID for ELF. If they differ, the panel rejects the symbols before processing and does not use your limit. The usual cause is symbols from another build, such as the previous release.

Without symbols

A file without symbols can still be protected. You mark code regions with code markers and select exported functions by their names in the export table.

Note

Symbols are deleted together with the input file after 7 days. You can also delete them earlier in the panel.