На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! В разделе обсуждаются следующие темы:
1) Процесс разработки программного обеспечения.
2) Определение требований к программному обеспечению.
3) Составные части и процесс проектирования (см. Шаблоны проектирования).
4) Документирование программного продукта(проекта).
5) Руководство разработкой программного обеспечения.
6) Проектирование пользовательского интерфейса.
7) Контроль версий проекта (см. Управление версиями в Subversion, Стратегии использования svn).
Модераторы: ElcnU
Страницы: (2) [1] 2  все  ( Перейти к последнему сообщению )  
> И снова про защиту ПО.
    Народ!
    Я вот тут начитался всяких статей про взлом и защиту, везде фигурируют варианты фразы, "если у хакера есть работающая версия программы, то он снимет любую защиту, при наличии времени и желания"...  в общем у меня появилась следующая идея.

    В любой программе есть ключевой набор данных.... координады объектов, начальные значения.... Все это дело можно собрать в отдельную структуру и закриптить тем же SSL-ем с помощью асиметричного ключа.... в итоге у хакера будет вроде как полнаяверсия программы, с нета ничего докачивать не надо... но вот асиметричный ключ он в принципе не сможет получить.. остается только зарегистрироваться...:)

    Кто что думает по поводу этой идеи..

    Спасибо за внимание.
      а в программе эти данные то как будут расшифрововаться ?
      ладно если они всеже относятся только к регистрированной части, то просто украдут второй ключ и поделятся им со всеми  ::)
        Или сдернет его с дампа памяти проги, т.к. для операции шифрации/дешифрации нужно будет оба ключа держать в памяти. ;D Я уже ломал (почти такую -- только без SSL) прогу. ;D ;D ;D
          все данные лежат в ресурсах в виде уже зашифрованного заранее бинарника....
          пользователь вводит ключ. с помощью этого ключа вызывается только ф-ция декриптинга.... не получилось - ну и ладно.... прога закрывается.... а если уберут закрытие - то в вместо данных будет мусор....
          Сообщение отредактировано: Muran -
            Так зачем вообще эта прога нада, если она не будет без ключа работать?

            Я имею в виду демо-представления.
              Цитата Muran, 27.05.03, 18:06:59
              все данные лежат в ресурсах в виде уже зашифрованного заранее бинарника....
              пользователь вводит ключ. с помощью этого ключа вызывается только ф-ция декриптинга.... не получилось - ну и ладно.... прога закрывается.... а если уберут закрытие - то в вместо данных будет мусор....

              Угу. Но, во-первых, как функция ввода, так и декрптинга трассируемы (по-любому) а, во-вторых, по результатам прозекторского исследования не составляет проблем получить то, что ввел юзер (и как это преобразовалось). Согласись, не мало?
                Цитата Muran, 27.05.03, 17:16:58
                Народ!
                Я вот тут начитался всяких статей про взлом и защиту, везде фигурируют варианты фразы, "если у хакера есть работающая версия программы, то он снимет любую защиту, при наличии времени и желания"...  в общем у меня появилась следующая идея.

                В любой программе есть ключевой набор данных.... координады объектов, начальные значения.... Все это дело можно собрать в отдельную структуру и закриптить тем же SSL-ем с помощью асиметричного ключа.... в итоге у хакера будет вроде как полнаяверсия программы, с нета ничего докачивать не надо... но вот асиметричный ключ он в принципе не сможет получить.. остается только зарегистрироваться...:)

                Кто что думает по поводу этой идеи..

                Спасибо за внимание.


                при наличие экспоненциального времени можно многое раскодировать ка бы ты это не кодировал
                разве что случайный ключ
                  да не дело не во времени....
                  получается тоже самое, что продавать просто готовую программу а демку с выключеным кодом отдавать на право и на лево...
                  зы
                  я уже подобное реализовывал на assembler'е  я делал так -
                  код отвечающий за функции, которые должны быть только в регестреной версии криптовались при помощи hash'а от ключа а перед запуском проверялась crc32 на валидность расшифровки. даже если влепишь вместо je jne то код будет нерабочий.
                  ;)
                    А потом берем добросовестно зарегистрированную прогу и тот код, которым ты хэшируешься, а потом проверяешься через CRC32, просто:
                    - последний выкусываешь (до посинения банально -- определяется контекстом проги -- иногда можно обработать просто переходами... смотреть надо).
                    - а хэширование -- генеришь кейген, на основании имеющегося ключа, потом можешь... Да многое можно сделать... ;D Если так делать, то генерить (с последующей заменой ключа и решифрацией) "сеансовый ключ", актуальный в пределах одного сеанса. Делать это в фоновом процессе, независимо от юзера и потом давать ему новый ключ. Да, здесь еще не забыть бы помолиться, чтобы при решифрации сустема просто не зависла бы... ;D Иначе юзер будет дико благодарен за доп. инсталляцию... ;D
                      если кто-то выложит ключ, то тут уже мало что поможет...

                      Цитата the_Shadow, 27.05.03, 18:16:09

                      Угу. Но, во-первых, как функция ввода, так и декрптинга трассируемы (по-любому) а, во-вторых, по результатам прозекторского исследования не составляет проблем получить то, что ввел юзер (и как это преобразовалось). Согласись, не мало?

                      ну и пусть трассируема...  декриптор пойдет по неправильному пути, что от этого взломщику.... сама прога ничего шифровать не будет, и в ней не будет никаких ключей....
                      то, что ввел юзер - это и будет ключ для расшифровывания....
                        а демку можно делать вообще без функций, которые должны быть в зарегиной версии...
                        ну или с урезаными донельзя....
                        сли у взломщика будет полная версия проги, пусть заделаная всякими переходами, хэшированием... все можно сломать... главное чтобы прога стоила таких трудов...
                          Цитата the_Shadow, 27.05.03, 18:48:39
                          А потом берем добросовестно зарегистрированную прогу и

                          ии... где ты ее возьмешь чтобы проделать все эти операции ? купишь разве только чтоли... ;D
                          c данным типом защиты все ясно, слабая сторона - эт воровство ключей... ну а что тут сделаешь  :-/
                          Сообщение отредактировано: _IX0DeS -
                            Нет. Вся проблема упирается не столько в алгоритм защиты, сколько еще и в добросовестность пользователя. Это раз.

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

                            Но! Ты не сможешь создавать и бесконечно сложные ключи. Т.е. Марьванна или Светочка или манагер Вася, что будут юзать твои проги, должны будут вводить эти самые ключи, а анекдот про кошку с именем "#$tyu_\%^&56" здесь не "катит". Таким образом, создавая заведомо слабые ключи ты будешь "подставляться" под стандартную атаку методом перебора (элементарный критерий "правильности" перебора -- со структурой того же COFF'а из Win32 мы все знакомы... ;D Правда, можно извратиться, но, IMHO, "эта игра не стоит свеч, как сказала одна изможденая ведьма, увидев приготовленный для себя костер"). За весьма обозримый срок. Получив таким образом ключ, крякер получает "универсальный ключ".

                            Отдавать ввод ключа какому-то "автомату" -- все равно что сдавать крякеру софтинку с потрохами. Случай явный и доказательству, IMHO, не подлежит.

                            Это... так... "на поверхности". Подумав, можно еще по-извращаться чисто теоретически. Для меня, если честно, это не сильно актуально, т.к. я уповаю на то, что чел. не должен быть свиньей сам. А если он козел конченный, то, знаешь, Господь ему воздаст. А я не "вкладываю" себя в это все. ;D
                              Цитата _IX0DeS, 27.05.03, 19:24:12

                              ии... где ты ее возьмешь чтобы проделать все эти операции ? купишь разве только чтоли... ;D

                              Не смешно. Примерно половина пиратского софта, что я видел, представляла собой копии законно купленного ПО. Либо просто копии, либо ломаные по всякому. А если у хакера есть реально работающая прога, сломать ее - дело техники. Копии уходят с фирм регулярно, так что добыть такую - не проблема. Серийник обычно прилагается. В крайнем случае, найдется бессребреник, который купит прогу и снимет с нее защиту (допустим, чтобы поделится с любимой девушкой :D ), а там прога расползется...

                              В конечном счете проблема защиты сводится к защите от копирования, а такого в природе НЕТ.
                                tatar_0x4E, к сожалению, 100\%-но прав... :(
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0336 ]   [ 14 queries used ]   [ Generated: 2.06.24, 03:38 GMT ]