| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Обфускатор исходного кода Delphi |
| Автор: DarkProg 28.8.2013, 16:37 |
| Добрый день. Сори без понятия куда запостить тему, поэтому оставлю здесь. Есть задача сделать код нечитабельным. Чем нечитабельнее тем лучше. Я уже пару часов гуглю и ничего не могу найти. Точнее я нашёл с горем пополам AltDel, но он очень некорректно работает. Вроде бы делает, но ошибок просто немерено. Может кто подскажет что-то дельное в этом плане? Интересуют любые средства и платные и бесплатные. |
| Автор: phomm 29.8.2013, 13:46 |
| Банальное, что приходит в голову, сперва воспользоваться инструментом удаления комментариев из кода из пакета дельфи-мастеров Cnpack. и написать программку, что составляет список всех слов, зарезервированные оставляет, свои идентификаторы заменяет на идентификаторы из символов "_" повторенных некое количество раз (всегда разное ессно). Ну а системные идентификаторы можно согнать в один модуль, проставить соответствия идентификатора и своего идентификатора так же из "_", и везде подключает этот модуль. Какой-никакой подход в деле сокрытия сурсов, но предоставления их для использования - dcu (обычно с хедерами, interface-секцией тогда), но это дело зависит от версии и даже иногда от билда самой дельфи Готовых средств обфускации дельфи-кода не встречал. Вот погуглил, самому стало интересно http://www.sourceformat.com/code-obfuscator-delphi.htm только там тлен и погибель и куча страниц битые :( На стековерфлоу направили сюда http://www.the-interweb.com/serendipity/index.php?/archives/86-Pythia-1.1.html на форуме xakfor.net нагуглил, где конкретно - указывать не буду (не по правилам по идее). Есть также средства защиты уже самого кода, который можно обернуть в библиотеку, а предоставлять опять же только хедеры. |
| Автор: DarkProg 29.8.2013, 21:15 |
| Я нашёл средства(включая эти), но они заброшенные. Одно средство даже получил как подарок от автора, только оно кроме переименования unit'ов и замены символьных строк на их кодовое представление ничего сделать не может больше. Самое основное валится с ошибками. У меня проблема в том, что нет времени. Мне к понедельнику надо уже предоставить готовый вариант, а загруженность такая, что эту тему я сегодня разбирал часа 3 от силы. У меня есть одна мысль, если получится(я очень надеюсь что получится), я потом идею опишу здесь же. У меня сложность ещё и в том, что в проекте тысячи строк кода, что крайне затрудняет лобовые методы. |
| Автор: DarkProg 3.9.2013, 09:34 |
| В целом можно делать следующее ) Используя исходники какого-нибудь плагина для делфи, например CnPack дорабатываем его так чтобы например можно было вытащить названия процедур и функций(он их умеет искать, но их никак нельзя сохранять). Потом можно сделать поиск по всем файлам проекта и вытащить те места где якобы встречаются названия этих функций. И собственно используя какой-нибудь список отметить те места где надо точно заменять. В целом такие манипуляции приводят к тому, что у нас код читабельный, но при этом ориентироваться в нём становится весьма проблемно, для большого проекта с парой сотен форм и несколькими миллионами строк этого достаточно чтобы отбить желание разбираться в нём. Для переменных можно используя средства плагинов попытаться дотянуться до средств рефакторинга самого делфи, но я так и не понял как это сделать, если кто-то знает, буду рад посмотреть как это можно использовать, глядишь в будущем понадобится . P.S. я связывался с автором AltDel, и даже получил полноценную версию, но там старый не поддерживаемый проект и поэтому если переименовываются компоненты, то с большой долей вероятности отвязываются события. |