Как я могу скрыть имена идентификаторов в скомпилированных проектах? - PullRequest
3 голосов
/ 14 марта 2012

Когда я компилирую код проекта, такой как:

ttest = record
   one, two: string;
   three: integer;
end;

Я вижу в строках EXE такие строки, как "ttest", "one", "two" и "three".

Это в любой версии Delphi, даже в Free Pascal.

Есть ли возможность не помещать это в скомпилированную программу? Без использования упаковщиков, шифровщиков и т. П.

Ответы [ 4 ]

3 голосов
/ 14 марта 2012

Не уверен, что это поможет, но посмотрите создайте меньший исполняемый файл delphi xe , похоже, что удаление RTTI может решить вашу проблему.

3 голосов
/ 14 марта 2012

Попробуйте отключить все виды отладочной информации, которые можно найти в диалоговом окне «Параметры проекта» (пункт меню Проект / Параметры ), а затем пересоберите весь проект (т. Е. Не только Компиляция , используйте пункт меню Project / Build , чтобы перекомпилировать каждый модуль в проекте). Это должно исправить это.

Фактические параметры, которые нужно отменить в параметрах проекта, зависят от версии Delphi: для Delphi 2006 / Turbo Delphi они включают все параметры в Отладка на вкладке Компилятор ( возможно, за исключением «Утверждения» ) и на вкладке Linker «Включить отладочную информацию TD32» / «Включить символы удаленной отладки» . Более новые версии Delphi имеют функцию «Конфигурация сборки», аналогичную Visual Studio, выбрав здесь «Релиз», и перестройка должна удалить всю отладочную информацию «контрольная».

1 голос
/ 19 марта 2012

Просто не используйте ваши данные как опубликовано , если возможно, иначе имена полей будут видны.Кроме того, не забывайте, что каждый метод, созданный при клике по инспектору свойств, автоматически помещается как опубликованный (потому что они также используются в файлах dfm).Таким образом, каждый «Button1Click» и т. Д. Является видимым и, следовательно, легко локализуемым (код метода).

Просто проверьте любую программу, скомпилированную с Delphi на бесплатной IDA и с помощью специального «сценария IDC для строки Delphi (найдите его в дворце IDA)».каждые TSomething , каждые TSomething опубликованные свойства и методы ...

0 голосов
/ 31 марта 2012

Я решил проблему. Использование «строки» в записях приводит к тому, что имя записи видно в исполняемом файле

...