Я пишу класс для обработки безопасности в моем исполняемом файле (проверка сериалов, проверка даты судебного разбирательства и т.д.). После того, как я компилирую исполняемый файл (даже в Сборке конечных версий, со всей отладкой и выключенным поколением RTTI), когда я открываю его в NotePad и ищу имя метода в необработанных данных, я вижу все названия методов, которые собирают мой класс. Нет никаких опубликованных участников ни в каком классе в кодовой базе.
Это плохо для защиты. Там какой-либо путь состоит в том, чтобы сказать Delphi не хранить имена методов в исполняемом файле? Почему это хранит их вообще, если нет никакого необходимого RTTI и никакого взрыва COM? Там какой-либо параметр компилятора управляет этим?
Может случиться так, что ЛЮБОЙ метод ЛЮБОГО класса в целевом исполняемом файле хранится в исполняемом файле в текстовой форме. По-видимому, это вызывается расширенным RTTI, включаемым по умолчанию для всех классов в Delphi 2010.
Если вы спрашиваете о расширенной RTTI в Delphi 2010, то ее можно отключить функцией
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
см. также docwiki.
Также положите переоснащение, занимая следующее в файле DPR проекта:
{$IFDEF RELEASE}
// Leave out Relocation Table in Release version
{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}
{$ENDIF RELEASE}
Вероятно, вы увидите определение вашей формы как ресурса (например, двоичное представление DFM-файлов вашего проекта).
Если вы не хотите их показывать (для серийного информационного экрана и т.д.), вы должны создать эти формы "в коде". Eg создайте TForm, поместите на него TButton и TEdit, прикрепите обработчики событий в коде.
Чтобы сделать это удобным способом: начните с формы и создайте DFM. При соперничестве с формой выберите View as text (Вид как текст) из контекстного меню, и вы будете знать, какие вещи нужно скопировать в код. И убедитесь, что НЕ помещаете никакие вариабельные ссылки под de published (всегда помещайте public/protected/private в качестве первой строки в определении вашего класса.
... и не забудьте отключить "td 32 debug info" (в более старых версиях) или информацию об отладке на вкладке компоновщика в более поздних версиях .