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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обфускатор исходного кода Delphi 
V
    Опции темы
DarkProg
  Дата 28.8.2013, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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

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



Добрый день.
Сори без понятия куда запостить тему, поэтому оставлю здесь.

Есть задача сделать код нечитабельным. Чем нечитабельнее тем лучше. Я уже пару часов гуглю и ничего не могу найти.
Точнее я нашёл с горем пополам AltDel, но он очень некорректно работает. Вроде бы делает, но ошибок просто немерено.

Может кто подскажет что-то дельное в этом плане? Интересуют любые средства и платные и бесплатные.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
phomm
Дата 29.8.2013, 13:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Банальное, что приходит в голову, сперва воспользоваться инструментом удаления комментариев из кода из пакета дельфи-мастеров Cnpack.
и написать программку, что составляет список всех слов, зарезервированные оставляет, свои идентификаторы заменяет на идентификаторы из символов "_" повторенных некое количество раз (всегда разное ессно). Ну а системные идентификаторы можно согнать в один модуль, проставить соответствия идентификатора и своего идентификатора так же из "_", и везде подключает этот модуль.

Какой-никакой подход в деле сокрытия сурсов, но предоставления их для использования - dcu (обычно с хедерами, interface-секцией тогда), но это дело зависит от версии и даже иногда от билда самой дельфи

Готовых средств обфускации дельфи-кода не встречал.
Вот погуглил, самому стало интересно
http://www.sourceformat.com/code-obfuscator-delphi.htm  только там тлен и погибель и куча страниц битые :(
На стековерфлоу направили сюда http://www.the-interweb.com/serendipity/in...Pythia-1.1.html
на форуме xakfor.net нагуглил, где конкретно - указывать не буду (не по правилам по идее).

Есть также средства защиты уже самого кода, который можно обернуть в библиотеку, а предоставлять опять же только хедеры.

PM MAIL WWW ICQ Skype   Вверх
DarkProg
Дата 29.8.2013, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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

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



Я нашёл средства(включая эти), но они заброшенные. Одно средство даже получил как подарок от автора, только оно кроме переименования unit'ов и замены символьных строк на их кодовое представление ничего сделать не может больше. Самое основное валится с ошибками.

У меня проблема в том, что нет времени. Мне к понедельнику надо уже предоставить готовый вариант, а загруженность такая, что эту тему я сегодня разбирал часа 3 от силы. У меня есть одна мысль, если получится(я очень надеюсь что получится), я потом идею опишу здесь же.


У меня сложность ещё и в том, что в проекте тысячи строк кода, что крайне затрудняет лобовые методы.

Это сообщение отредактировал(а) DarkProg - 29.8.2013, 21:16


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
PM MAIL   Вверх
DarkProg
Дата 3.9.2013, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Законченный романтик
***


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

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



В целом можно делать следующее )

Используя исходники какого-нибудь плагина для делфи, например CnPack дорабатываем его так чтобы например можно было вытащить названия процедур и функций(он их умеет искать, но их никак нельзя сохранять). 
Потом можно сделать поиск по всем файлам проекта и вытащить те места где якобы встречаются названия этих функций. И собственно используя какой-нибудь список отметить те места где надо точно заменять.

В целом такие манипуляции приводят к тому, что у нас код читабельный, но при этом ориентироваться в нём становится весьма проблемно, для большого проекта с парой сотен форм и несколькими миллионами строк этого достаточно чтобы отбить желание разбираться в нём.

Для переменных можно используя средства плагинов попытаться дотянуться до средств рефакторинга самого делфи, но я так и не понял как это сделать, если кто-то знает, буду рад посмотреть как это можно использовать, глядишь в будущем понадобится .

P.S. я связывался с автором AltDel, и даже получил полноценную версию, но там старый не поддерживаемый проект и поэтому если переименовываются компоненты, то с большой долей вероятности отвязываются события.


--------------------
"И твоя голова всегда в ответе за то куда сядет твой зад..."

"Я студент - скажите с какого я ВУЗа..."

 smile  smile  smile 
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.0411 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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