Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запретить Delphi в ресурсы exe'шника добавлять dfm 
:(
    Опции темы
fedorov2012
  Дата 10.8.2013, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 27.8.2012

Репутация: нет
Всего: нет



Добрый день.
Скажите, пожалуйста, возможно ли как-то запретить Delphi в ресурсы exe'шника проекта добавлять сведения о dfm-файлах или добавлять.
По-сути с помощью определенных инструментов можно выковырять все dfm-файлы и увидеть их код.
На сколько я понимаю самый простой способ это в проекте со всех dfm-ок снять галочку "Text DFM" - это не позволит спрятать dfm в exe'шнике,
но позволит хоть явно текстом не выводить. Но при таком подходе возникает, одно не удобство, если используешь средства типа svn, bazaar для контроля версий.
Как быть?

Это сообщение отредактировал(а) fedorov2012 - 10.8.2013, 23:13

Присоединённый файл ( Кол-во скачиваний: 25 )
Присоединённый файл  dfm_off.PNG 4,01 Kb
PM MAIL   Вверх
northener
Дата 10.8.2013, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Возьмите любой редактор ресурсов и удалите из экзешника эти "сведения о dfm-файлах".  smile



--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
fedorov2012
  Дата 10.8.2013, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 27.8.2012

Репутация: нет
Всего: нет



Цитата(northener @  10.8.2013,  23:07 Найти цитируемый пост)
Возьмите любой редактор ресурсов и удалите из экзешника эти "сведения о dfm-файлах".

1. Не приведет ли это к проблеме самого exe'шника?
2. Зачем их удалять, если их можно не добавлять вообще?

Добавлено через 8 минут и 10 секунд
Цитата(northener @  10.8.2013,  23:07 Найти цитируемый пост)
озьмите любой редактор ресурсов и удалите из экзешника эти "сведения о dfm-файлах".

После таких действий exe'шник перестанет запускаться
PM MAIL   Вверх
fedorov2012
Дата 10.8.2013, 23:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 27.8.2012

Репутация: нет
Всего: нет



Цитата(fedorov2012 @  10.8.2013,  22:56 Найти цитируемый пост)
На сколько я понимаю самый простой способ это в проекте со всех dfm-ок снять галочку "Text DFM" - это не позволит спрятать dfm в exe'шнике,

Хотя это тоже не помогает - файл unit*.dfm получается бинарным, а в exeшник попадает все равно в текстовом виде.
PM MAIL   Вверх
northener
Дата 11.8.2013, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1361
Регистрация: 2.9.2010

Репутация: 8
Всего: 20



Цитата(fedorov2012 @  10.8.2013,  23:14 Найти цитируемый пост)
После таких действий exe'шник перестанет запускаться

А вы думали что эти ресурсы в экзешник помещены просто от нечего делать?

Хотите чтобы в экзешнике не было dfm-ресурсов - не используйте формы.


--------------------
Но только лошади летают вдохновенно.
Иначе лошади разбились бы мгновенно!
PM MAIL   Вверх
Matematik
Дата 11.8.2013, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



В качестве бреда:
1. выключить добавление формы - в pas файле формы есть строчка {$R *.dfm} сразу после implementation, тупо её закоментировать
1.a. теперь при создании формы возникает исключение, типа "не могу найти форму в ресурках"
2. каким-нибудь образом перед компиляцией засовываем в ресурсы зашифрованный dfm
3. переписать создание формы в dpr Application.CreateForm(TForm1, Form1);, чтоб оно сначало расшифровывала dfm, затем загружало как было. 
4. ...
5. PROFIT!!!

Не знаю только как сделать #2. По идее должно быть можно запустить скрипт перед компиляцией, который сделает res файл с зашифрованными dfm проекта. А подключается внешний res легко - {$R cryptforms.res}
PM MAIL WWW ICQ   Вверх
MetalFan
Дата 16.8.2013, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: 62
Всего: 128



Алгоритм, по которому можно реализовать задуманное:
1. пишем приложение, которое "обновляет" (читает/шифрует/заменяет) ресурсы с DFM-ками в готовом екзешнике.
см. BeginUpdateResource/UpdateResource/EndUpdateResource
2. В своем приложении отказываемся от Application.CreateForm (и вообще от TForm.Create), используем TCustomForm.CreateNew
3. Написать свой аналог функции InitInheritedComponent с учетом загрузки и расшифровки dfm из ресурсов


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0680 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.