![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Добрый день.
Сори без понятия куда запостить тему, поэтому оставлю здесь. Есть задача сделать код нечитабельным. Чем нечитабельнее тем лучше. Я уже пару часов гуглю и ничего не могу найти. Точнее я нашёл с горем пополам AltDel, но он очень некорректно работает. Вроде бы делает, но ошибок просто немерено. Может кто подскажет что-то дельное в этом плане? Интересуют любые средства и платные и бесплатные. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| phomm |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 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 нагуглил, где конкретно - указывать не буду (не по правилам по идее). Есть также средства защиты уже самого кода, который можно обернуть в библиотеку, а предоставлять опять же только хедеры. |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Я нашёл средства(включая эти), но они заброшенные. Одно средство даже получил как подарок от автора, только оно кроме переименования unit'ов и замены символьных строк на их кодовое представление ничего сделать не может больше. Самое основное валится с ошибками.
У меня проблема в том, что нет времени. Мне к понедельнику надо уже предоставить готовый вариант, а загруженность такая, что эту тему я сегодня разбирал часа 3 от силы. У меня есть одна мысль, если получится(я очень надеюсь что получится), я потом идею опишу здесь же. У меня сложность ещё и в том, что в проекте тысячи строк кода, что крайне затрудняет лобовые методы. Это сообщение отредактировал(а) DarkProg - 29.8.2013, 21:16 -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
| DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
В целом можно делать следующее )
Используя исходники какого-нибудь плагина для делфи, например CnPack дорабатываем его так чтобы например можно было вытащить названия процедур и функций(он их умеет искать, но их никак нельзя сохранять). Потом можно сделать поиск по всем файлам проекта и вытащить те места где якобы встречаются названия этих функций. И собственно используя какой-нибудь список отметить те места где надо точно заменять. В целом такие манипуляции приводят к тому, что у нас код читабельный, но при этом ориентироваться в нём становится весьма проблемно, для большого проекта с парой сотен форм и несколькими миллионами строк этого достаточно чтобы отбить желание разбираться в нём. Для переменных можно используя средства плагинов попытаться дотянуться до средств рефакторинга самого делфи, но я так и не понял как это сделать, если кто-то знает, буду рад посмотреть как это можно использовать, глядишь в будущем понадобится . P.S. я связывался с автором AltDel, и даже получил полноценную версию, но там старый не поддерживаемый проект и поэтому если переименовываются компоненты, то с большой долей вероятности отвязываются события. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |