Текущий архив: 2007.01.14;
Скачать: CL | DM;
Вниз
Защита структур и алгоритмов Найти похожие ветки
← →
Tolik (2006-12-17 19:33) [0]Хочу выпустить в свет бесплатную прогу, но чтобы внутренние структуры и алгоритмы остались максимально скрыты. Подскажите, какие методы действенны для программы на Delphi? Пока есть следующие мысли:
1. Отключение галочки Debug при компиляции
2. Использовании оптимизации при компиляции
3. Использование безличных идентификаторов
Есть ли вообще готовые решения, чтобы из Delpi исходников получить исполняемый файл, непонятно на чем написанный (скрыть, что это Delphi), а дезассемблирование давало бы очень запутанные алгоритмы?
← →
DrPass © (2006-12-17 20:08) [1]1. Никак не влияет. Debug Info в исполняемый файл не пишется (если ты иное не указал в опциях компоновщика на вкладке Linker)
2. Это и так следует делать, когда выпускаешь релиз программы
3. В Delphi для Win32 - никак не влияет, кроме как запутывает самого разработчика
> а дезассемблирование давало бы очень запутанные алгоритмы?
Ты ж имей в виду, что "запутанный алгоритм" - это то, что будет исполнять процессор. Ты считаешь нормальным, что в программе будет черт знает что? Тогда можешь и сам его запутать, еще до компиляции.
А если серьезно - не занимайся ерундой. Что твой алгоритм такого крутого представляет, что ради него будут заниматься дизассемблированием программы, написанной на языке высокого уровня (сложнейшая, между прочим, операция!)
← →
TUser © (2006-12-17 23:12) [2]Возможно и не будут разбирать алгоритм, а просто вытащат из дизассемблера нужный кусок и будут его использовать в чужой программе, даже не задумываясь, как оно работает.
← →
Юрий Зотов © (2006-12-18 01:46) [3]> TUser © (17.12.06 23:12) [2]
Проще свой написать.
← →
Германн © (2006-12-18 02:15) [4]
> Проще свой написать.
>
Или купить, если нужно!
← →
Tolik (2006-12-18 20:09) [5]
> 3. Использование безличных идентификаторов
> 3. В Delphi для Win32 - никак не влияет, кроме как запутывает
> самого разработчика
Запутывать коды думал утилитой перед сборкой, а самому писать, конечно, в привычном варианте.
Полез в свой exe... видно: имена классов, имена функций Win API, строковые константы. Имена классов хочется скрыть. Радует, что нет имен методов класса.
> Ты ж имей в виду, что "запутанный алгоритм" - это то, что
> будет исполнять процессор. Ты считаешь нормальным, что в
> программе будет черт знает что?
Главное пользовательские характеристики оставить в норме (ИХМО).
> А если серьезно - не занимайся ерундой. Что твой алгоритм
> такого крутого представляет, что ради него будут заниматься
> дизассемблированием программы, написанной на языке высокого
> уровня (сложнейшая, между прочим, операция!)
Задаю эти вопросы, так как плохо представляю возможности дизассемблирования. Сама прога большая, какого-то одного-двух основных алгоритмов в нет. Есть центральный движок. В объектном коде около 10 тыс. строк, остальная обвеска ~ 200 тыс. строк и продолжает расти. Главное сохранить идею, которую можно уместить на одном A4.
Хочется выходить в люди и сохранить наработки... много сил вложено.
> TUser © (17.12.06 23:12) [2]
> Возможно и не будут разбирать алгоритм, а просто вытащат
> из дизассемблера нужный кусок и будут его использовать в
> чужой программе, даже не задумываясь, как оно работает.
Наверное, это еще более глупый вопрос... Можно ли использовать чужой движок целиком?
← →
Германн © (2006-12-19 00:56) [6]
> Задаю эти вопросы, так как плохо представляю возможности
> дизассемблирования.
Возможности эти весьма мизерные, имхо. Взлом средств защиты, в целом освоен неплохо. (Спрос большой). Изучение чужих алгоритмов - нет. Т.е. изучить можно, но только за очень большие деньги. (Потом ведь придётся долго лечить геморрой :).
← →
Джо © (2006-12-19 01:05) [7]Господи, да кому они нужны, чтобы их изучать, да еще по ассемблерному листингу программы на ЯВУ? Что там — секретный способ выход в гипер-пространство, что ли?
← →
DrPass © (2006-12-19 01:52) [8]
> Полез в свой exe... видно: имена классов, имена функций
> Win API, строковые константы. Имена классов хочется скрыть.
>
Можно выцепить все, для чего сгенерирована RTTI, вызовы функций WinAPI и вообще вызовы из DLL, естессно. Строковые константы - само собой. А еще можно DFM-ки получить. Ну, имена классов можно запутать... только смысла никакого. См.
> Джо © (19.12.06 01:05) [7]
> Господи, да кому они нужны, чтобы их изучать, да еще по
> ассемблерному листингу программы на ЯВУ
← →
TUser © (2006-12-19 13:30) [9]> Можно ли использовать чужой движок целиком?
Особенно легко, если автор оформил "движок" в виде отдельной dll.
← →
unknown © (2006-12-19 18:40) [10]
> Tolik
Почему бы не сделать не freeware проект, а fwsw? Т.е. то, что скомпилировано -
бесплатно, а исходники за денюжку? Естесствено за сырцы просить адекватную
сумму. Сомневаюсь, что при таком раскладе кто-то захочет тратить время на
дизассемблирование и прочие радости (если твой софт вообще окажется
кому-то нужен).
← →
Горгер © (2006-12-19 19:32) [11]>Tolik
Применить ASPack или Armadillo для обфускации программы. Если не устраивает - идите на www.cracklab.ru. Там объясняют, как защищать программы ( и ломать их, certainly)
← →
oldman © (2006-12-19 19:35) [12]
> Хочу выпустить в свет бесплатную прогу, но чтобы внутренние
> структуры и алгоритмы остались максимально скрыты.
А зачем????????????
Если прога рабочая и БЕСПЛАТНАЯ кому уперлось ее вскра\ывать?
← →
Tolik (2006-12-19 23:55) [13]
> Возможности эти весьма мизерные, имхо. Взлом средств защиты,
> в целом освоен неплохо. (Спрос большой). Изучение чужих
> алгоритмов - нет. Т.е. изучить можно, но только за очень
> большие деньги.
Это радует. Есть примеры из жизни?
> Господи, да кому они нужны, чтобы их изучать, да еще по
> ассемблерному листингу программы на ЯВУ? Что там — секретный
> способ выход в гипер-пространство, что ли?
Исхожу из предположения, что нужны. Очень много сил и времени вложено в этот проект.
> > Можно ли использовать чужой движок целиком?Особенно легко,
> если автор оформил "движок" в виде отдельной dll.
Движок в общем exe файле - 2,5 Мб.
> Почему бы не сделать не freeware проект, а fwsw? Т.е. то,
> что скомпилировано - бесплатно, а исходники за денюжку?
> Естесствено за сырцы просить адекватнуюсумму. Сомневаюсь,
> что при таком раскладе кто-то захочет тратить время надизассемблирование
> и прочие радости (если твой софт вообще окажетсякому-то
> нужен).
Эта программа - совместный проект нескольких разработчиков. Смысл, конечно, не в выпуске бесплатной версии. Этот софт уже нужен... есть небольшая очередь клиентов, которых мы не можем обслужить из-за некоторых недоработок. Все усилия тратим на одного. На открытый рынок ещё не выходили, ещё никак не защищались.
> Применить ASPack или Armadillo для обфускации программы.
> Если не устраивает - идите на www.cracklab.ru. Там объясняют,
> как защищать программы ( и ломать их, certainly)
Спасибо за конкретные советы.
> А зачем????????????Если прога рабочая и БЕСПЛАТНАЯ кому
> уперлось ее вскра\ывать?
Она обладает большим потенциалом, а в бесплатной версии лишь мизер.
← →
Petr V. Abramov © (2006-12-20 00:24) [14]в программе важна ее идея, а не код.
а идея должна поддерживаться маркетингово :) и развиваться.
← →
Gydvin © (2006-12-20 10:19) [15]а еще (вычитал в гугле) берут целиком исполняемый файл, прикручивают секцию экспорта, где нужно код инициализации и юзают такой файл в своей программе как dll :0)
← →
Бугага © (2006-12-20 10:56) [16]
> ASPack
ASPack??? Зачем ЭТО рекламировать как защиту??
> в программе важна ее идея, а не код.
Абсолютно соглашусь...
← →
Anatoly Podgoretsky © (2006-12-20 13:18) [17]> Бугага (20.12.2006 10:56:16) [16]
Идею не приклеешь на стену.
Идей можно нагенерировать множество, но они ничего не стоят, 1 процент от стоимости, код стоит порядка 10 процентов, а вот 90 процентов стоит продажа.
← →
novill © (2006-12-20 14:35) [18]> [0] Tolik (17.12.06 19:33)
Что за программа такая волшебная? А то может opensorce реализации есть уже? :)
← →
Mystic © (2006-12-20 15:15) [19]Во-первых, достичь максимальной защиты алгоритма невозможно. Какая бы ни была защита, если очень надо будет, то ее вскроют. Только в большинстве случаев в этом нет ровно никакой необходимости.
Во-вторых, если действительно алгоритм обладает новизной, то его имеет смысл просто запатентовать (как например 7zip). В большинстве случаев этого достаточно.
В-третьих, дизассемблирование ассемблерного кода с целью разобраться в алгоритме это очень трудоемкая работа, мне например, попадался только один проект, которые содержал такого рода элементы (драйвер NTFS). Но тут без требования совместимости никому бы в голову не пришло что-то дизассемблировать.
В четвертых, очень много проектов "написать клон существующей программы". Если кому-то надо будет воссоздать алгоритм, то вначале попытаются пойти по этому пути (например, на сайтах вроде рентакодера). И только в том случае, когда усилий среднестатистических и продвинутых программистов будет недостаточно для написания клона, а нужны будут исключительно гениальные, а алгоритм кровь из носу будет нужен, только тогда будет рассматриваться вариант с дизассемлированием.
В пятых, есть такой шахматный движок Rybka. И хотя многим программистам очень интересно узнать принципы его работы (за счет чего он имеет такое превосходство над остальными движками), и он специально никак не защищен, но за пару лет его еще никто не дизассемблировал и не разобрался.
← →
Anatoly Podgoretsky © (2006-12-20 15:30) [20]> Mystic (20.12.2006 15:15:19) [19]
Сложность дисассемблирования возрастает в геометрической прогрессии от размера, если 1 кб можно привести до читаемого кода за день, то на 2 кб уже требуется 4 дня и так далее, Спустя определенный размер это уже не реально, только для отдельных кусков и не слишком завязаных на другие куски кода.
← →
Tolik (2006-12-21 23:50) [21]
> в программе важна ее идея, а не код.а идея должна поддерживаться
> маркетингово :) и развиваться.
Тогда нужно быть лидером в реализации и продвижении данной идеи (ИХМО).
> в программе важна ее идея, а не код.
Да, мне главное спрятать идею. Сама программа большая и нет какого то одного самого-самого главного алгоритма. Основной движок всё-же можно выделить.
> Идею не приклеешь на стену.Идей можно нагенерировать множество,
> но они ничего не стоят, 1 процент от стоимости, код стоит
> порядка 10 процентов, а вот 90 процентов стоит продажа.
Согласен на 30%. Чтобы продаваться в удовольствие - нужен продукт. В данном случае - качественный код, за сервисы которого клиент готов платить. Новые качества продукту может дать хорошая идея (= забытая старая). А уж потом, мастер своего дела - маркетолог, осущесвит успешные продажи конкурентноспособного продукта. Иначе это будет напоминать сетевой маркетинг, когда приходят в офис и предлагаю купить книгу или карту города.
> Что за программа такая волшебная? А то может opensorce реализации
> есть уже? :)
Мы ничего не открывали. Если можно, кратко? Как работает OpenSource в плане защиты прав и сохранения позиций на рынке?
> Во-вторых, если действительно алгоритм обладает новизной,
> то его имеет смысл просто запатентовать (как например 7zip).
> В большинстве случаев этого достаточно.
Алгоритма нет, есть идея и её реализация... почти работает.
> В четвертых, очень много проектов "написать клон существующей
> программы". Если кому-то надо будет воссоздать алгоритм,
> то вначале попытаются пойти по этому пути (например, на
> сайтах вроде рентакодера). И только в том случае, когда
> усилий среднестатистических и продвинутых программистов
> будет недостаточно для написания клона, а нужны будут исключительно
> гениальные, а алгоритм кровь из носу будет нужен, только
> тогда будет рассматриваться вариант с дизассемлированием.
>
А если нет одного
алгоритма? Например, 3D движок (или физический). Нельзя же сказать, что здесь есть какой-то основной алгоритм! У нас подобный случай.
> В пятых, есть такой шахматный движок Rybka. И хотя многим
> программистам очень интересно узнать принципы его работы
> (за счет чего он имеет такое превосходство над остальными
> движками), и он специально никак не защищен, но за пару
> лет его еще никто не дизассемблировал и не разобрался.
Вот это радует.
> Сложность дисассемблирования возрастает в геометрической
> прогрессии от размера, если 1 кб можно привести до читаемого
> кода за день, то на 2 кб уже требуется 4 дня и так далее,
> Спустя определенный размер это уже не реально, только для
> отдельных кусков и не слишком завязаных на другие куски
> кода.
И это радует.
На другом сайте расказали о DelphiDecompilier, который из exe делает модули, классы с разыменованными именами....
← →
Джо © (2006-12-22 00:45) [22]>
> На другом сайте расказали о DelphiDecompilier, который из
> exe делает модули, классы с разыменованными именами....
А говорят, в Москве кур доють...
← →
Petr V. Abramov © (2006-12-22 01:25) [23]> Джо © (22.12.06 00:45) [22]
в оригинале нету про Москву и есть рифма :)
← →
Mystic © (2006-12-22 05:25) [24]> На другом сайте расказали о DelphiDecompilier, который из
> exe делает модули, классы с разыменованными именами....
Смотри, без отладочной информации Delphi помещает в EXE-файл только RTTI информацию. Вон она и будет доступна любому декомпилятору. RTTI-информация включает в себя все published объекты, но этого очень мало для того, чтобы продолжить разработку большого проекта. Ди и среди всего кода, такой код наименее ценный.
> Как работает OpenSource в плане защиты прав и сохранения
> позиций на рынке?
Пишется лицензионное соглашение. Если хочешь, окнечно, можешь его нарушить, но при коммерческом успехе программы могут возникнуть проблемы. Поэтому есть много заказов такого рода: сделать аналог свободной GPL библиотеки и т. п. (чтобы не было проблем в будущем).
> Например, 3D движок (или физический). Нельзя же сказать,
> что здесь есть какой-то основной алгоритм!
Ну почему? Сердце 3D-движка -- получение одного кадра :)
← →
Tolik (2006-12-22 18:16) [25]Всем огромное спасибо, буду думать. Решил оставить затею с бесплатной программой. Надеюсь, мы сможем доделать продукт в течение 2007 г, тогда и вернусь к данной теме.
← →
Parus © (2006-12-22 20:03) [26]Чтобы у юЗВЕРЯ была клиентская часть.
А на сервере вычисляющая.
Страницы: 1 вся ветка
Текущий архив: 2007.01.14;
Скачать: CL | DM;
Память: 0.56 MB
Время: 0.03 c