2013-07-18 2 views
0

Я скомпилирую версию выпуска моего проекта приложения. Когда я смотрю с помощью двоичного редактора, мой скомпилированный окончательный exe, я могу увидеть все имя класса моего собственного созданного объекта, например: TPolygon, TRectangle и т. Д., Как двоичные текстовые данные внутри exe.Удалить имя строки классов из скомпилированного выпуска exe

Как я могу удалить эту информацию из exe. Я пытаюсь удалить отключение RTTI, используя в dpr:

{$WEAKLINKRTTI ON} 
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])} 

Но не повезло, никаких намеков.

+1

Вместо удаления имен классов вы можете попробовать использовать инструмент, который шифрует и/или обфускает exe. – RRUZ

+0

@RRUZ, я пытаюсь запутаться с некоторыми упаковщиками, но после запуска exe и создания дампа памяти имена классов находятся в потоке памяти. –

+1

Любой хороший хакер взломает ваше приложение, если все, что вы хотите сделать, это скрыть некоторые имена. Если они смогут осмотреть распакованный исполняемый файл в памяти, тогда они смогут сделать все остальное. Кажется, что вопрос немного изменился. –

ответ

2

Если вы хотите удалить имена классов из исполняемого файла, ваше приложение перестанет работать. Файлы .dfm, скомпилированные в ваше приложение, содержат имена классов. Рамка потоковой передачи данных должна иметь возможность просматривать эти классы в реестре классов и без имен, тогда ваши формы и их свойства не могут быть потоковыми.

Кроме того, как указывает AlexSC, реализация TObject.ClassName требует, чтобы имена классов присутствовали в исполняемом файле.

+0

Кроме того, эти строки также возвращаются методом TObject.ClassName. Итак, как сказал Дэвид, эти имена должны продолжаться в .EXE-файле. – AlexSC

+0

@ Давид Хеффернан, Да, с визуальными компонентами в форме, все в порядке, но, например, для проверки моего серийного приложения, я использую некоторый класс безопасности, и я не использую TObject.ClassName в любом месте моего объекта TSerialCheckSum. Таким образом, возможно удалить имя класса, по крайней мере, для класса безопасности. –

+8

Просто дайте этому классу имя без имени –