Как убрать имена методов и все еще иметь пригодный для использования dsym - PullRequest
2 голосов
/ 15 марта 2019

У меня есть приложение QT с интегрированной Bugsplat, поэтому мне нужен DSYM на случай сбоя, но я также хочу сделать взлом более трудным, некоторые из первых шагов разбивают имена методов.

Я генерирую DSYM с этими строками:

CONFIG += debug_and_release
CONFIG += force_debug_info
CONFIG += separate_debug_info

Мне удалось удалить символы с помощью команд, рекомендованных этой ссылкой :

QMAKE_CFLAGS_RELEASE += -Xlinker -unexported_symbol -Xlinker "*"
strip executable

к сожалению, файл DSYM становится непригодным для использования после команды strip (по крайней мере, так говорит мне дизассемблер Hope), если я удаляю вторую команду, я все равно вижу имена методов в дизассемблере.

в стрип-вики я могу прочитать следующее:

Эффект полоски может быть достигнут непосредственно с помощью линкера. За Например, в GNU Compiler Collection эта опция "-s".

Я уже пробовал всевозможные комбинации флагов

Но, похоже, компоновщик обнаруживает, когда работает с людьми, которые ничего не знают об этих предметах, и игнорирует все мои попытки.

Обратите внимание, что я делаю это для Mac прямо сейчас, но после этого шага мне нужно сделать это и в Windows.

Используемый компилятор: clang ++

...