Разработка защиты серийными номерами

Тема в разделе "WASM.RESEARCH", создана пользователем jangle, 8 мар 2005.

  1. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine




    Твою в два клика, вот екзешник, который был там зашифрован, это полнофункциональная версия textpad'а, т.ч. ничего не надо патчить или менять, только скопировать зашифрованные 59кб в Cryptool, ввести такой RC4 ключ - 5D917CF3260000000000000000000000 и сохранить с расширением .exe

    Там у меня в брутфорсе серьёзный баг :), надо бы заменить "shl edx,1" на "shl edx,8" (или необходимое кол-во lea) и соотв-но "and edx,1111b" на "and edx,1111h", тогда бы подобрался ключ за 2 дня на P4, т.к. k5=26 (не далеко он начала)



    з.ы. а проверка на 'MZ' у тебя зря, CRC вполне хватило

    [​IMG] _2136940246__Cry_RC4_encrypted.zip
     
  2. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    to bogrus:



    Скажи пожалуйста, при вводе ключа 86F29L3054R256Q38724ZQW4

    программа говорит что она зарегесрирована?
     
  3. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Объясните, пожалуйстя, чукче (мне) какой смысл в этой защите?

    Вася Пупкин покупает прогу, вводит серийник и получает рабочую версию, которую можно распространять _без_ ограничений.
     
  4. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    Объясните, пожалуйстя, чукче (мне) какой смысл в этой защите?

    Вася Пупкин покупает прогу, вводит серийник и получает рабочую версию, которую можно распространять _без_ ограничений.




    Это можно сказать про любую защиту. Достать ключ и можешь делать, что хочешь. Разве есть другие варианты?
     
  5. leo

    leo Active Member

    Публикаций:
    0
    Регистрация:
    4 авг 2004
    Сообщения:
    2.542
    Адрес:
    Russia
    S_T_A_S_

    Я тоже чукча и тоже не понимаю. ИМХО, ничего кроме наивной надежды на сознательность Васи. Ребята не учитывают того, что кроме ответственного Васи в подобных конторах работают безответсвенные Пети, имеющие доступ к Васиному компьютеру (по сети или напрямую когда Вася вышел покурить). И никакая жаба такого Петю не задушит, ему и в голову не придет задуматься над тем, что он делает что-то нехорошее - все так делают. Одним словом - наивняк, но надо - и для солидности и отчасти ради интереса.



    jangle

    Насчет любой защиты. Во-первых, как я уже сказал - есть большая разница между индивидуальными пользователями и конторами. Индивидульного Васю может жаба и задушит делиться с другом, а вот Васю из конторы, которому эту программу установии на комп на халяву - нисколько. Во-вторых, существует привязка к железу. Для индивидуального пользования, она может и не приветствуется, а для контор ИМХО это единственный способ ограничить бесконтрольное распространение программы Васями и Петями. По крайней мере это отсечет наивных халявщиков, у которых нет знакомых воинов дзена :)
     
  6. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433


    конечно есть, когда ключ представляет собой материальный объект
     
  7. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    конечно есть, когда ключ представляет собой материальный объект



    HASP значит... Ну ведь и его ломают. Вон для 1С сколько эмуляторов HASP`ов понаписали
     
  8. Broken Sword

    Broken Sword Robert

    Публикаций:
    0
    Регистрация:
    30 авг 2002
    Сообщения:
    433
    это уже уязвимости конкретной поделки. я говорю о принципе
     
  9. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    Я тоже чукча и тоже не понимаю. ИМХО, ничего кроме наивной надежды на сознательность Васи. Ребята не учитывают того, что кроме ответственного Васи в подобных конторах работают безответсвенные Пети, имеющие доступ к Васиному компьютеру (по сети или напрямую когда Вася вышел покурить). И никакая жаба такого Петю не задушит, ему и в голову не придет задуматься над тем, что он делает что-то нехорошее - все так делают. Одним словом - наивняк, но надо - и для солидности и отчасти ради интереса.





    Знаешь, я тоже такой безответсвенный Петя, использую программное обеспечение, купленное конторой на своем домашнем компьютере. И может бы даже продал его, чтоб деньгу зашибить... Но кто его у меня купит? Домашнему

    пользователю оно нафиг не нужно, только корпоративному клиенту. Ни одна контора у меня не купит ломанную прогу.

    Зачем? Если они могут, элементарно приобрести легальную версию и поиметь техническую поддержку + обновление и исправление ошибок.



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

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

    Стоит ли овчинка выделки? Мне кажется, что нет...



    Можно конечно сдампить, отвязать программу от серийника

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



    Я не смогу определить, использовалась стеганография или

    нет. Это задача - алгоритмически неразрешима. А разработчики понадобится всего пара сек, для определения кому была продана программа. Так, что не все так плохо, как кажется...
     
  10. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    jangle

    [ <font color="gray]Я не смогу определить, использовалась стеганография или нет.

    Это задача - алгоритмически неразрешима.
    </font><!--color-->]



    А где можно почитать доказательство этого? ;)



    А как насчёт устойчивости к намеренным попыткам уничтожения стего?

    И тем более подделки?
     
  11. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    Стеганография - это своего рода "водяные знаки" которые внедряются в данные и их можно "выявить" применив особые алгоритмы.

    Например, я сам придумал алгоритм внесения подписи в BMP файл.Каждый пиксель представляется 4 байтами:



    PIXEL {

    RED

    BLUE

    GREEN

    EMPTY

    }



    Берем цифровую подпись и раскладывае ее на биты, получаем

    длинную цепочку едениц и нулей.

    10101010111010010111011101010101010100101110... и т.д



    В цикле начинаем обходить все пиксели картинки, и

    читаем значения RED, BLUE, GREEN. При этом условимся,

    что 1 - будет соответсвовать четное число, а 0 - нечетное.



    К примеру, первый пиксель имеет цвет:



    RED - 133

    GREEN - 98

    BLUE - 32



    Разбиваем подпись, на куски по 3 бита



    101 010 101 110 100 101 110 ...



    И начинаем "модулировать" цифровой подписью цветовую

    насыщенность:



    1 0 1 -> Четное, нечетное , четное



    RED - 133, изменяем на четное - 134

    GREEN - 98 , изменяем на нечетное - 97

    BLUE - 32, оставляем без изменений - 32



    На выходе, пиксель будет содержать в себе 3 бита информации, закодированной через "чет-нечет".

    Затем берем следующий пиксель, и следующую тройку битов

    и повторяем цикл и т.д.



    Поскольку "глубина модуляции" состовляет только 1, изменение цвета, практически не происходит. На фотографии, оно совсем незаметно.



    Чтение стеганографической подписи происходит в обратном

    порядке. Читаем содержимое пикселя,



    RED - 134

    GREEN - 97

    BLUE - 32



    По скольку RED - четное число в выходной поток пишем 1,

    GREEN - нечетное пишем 0, BLUE - четное пишем 1.



    Получаем кусок кода 101, и так далее со следующим пикселем.



    Определить, что цвет был "промодулирован" на фотографиях

    невозможно, только на белой картинке будет виден "муар данных"



    Подпись можно сжать алгоримом ZLIB и зашифровавать RC4,

    и значит нельзя подделать



    Определить факт использования стего - невозможно. Подсчет энтропии "чет-нечет" дает распределение неотличимое от обычной фотографии.





    На WASM.RU есть статья про стеганографию:



    http://www.wasm.ru/print.php?article=set26_0x0A
     
  12. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    jangle >




    Если в ключе будет написано: "Версия Васи Пупкина", то он немного подумает, прежде чем распространять ключ :derisive:

    А в существующем варианте просто выкладывается расшифрованный экзешник, а ключ-то зачем к нему прилагать? =)



    Для такого случая есть более простое решение: раздавать всем демо-версию. А оплатившим слать полнофункциональную. Результат тот же, но телодвижений разработчика куда меньше.



    ЗЫ: watermarking - это совсем другая история, к данным кдючам отношения не имеет.
     
  13. flankerx

    flankerx New Member

    Публикаций:
    0
    Регистрация:
    2 июл 2004
    Сообщения:
    423
    Адрес:
    Moscow, Russia




    Поверь, это придумали задолго до тебя :)



    а теперь попробуй сделать то же самое в 16-цветных иконках :)
     
  14. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    а теперь попробуй сделать то же самое в 16-цветных иконках



    Придумать несложно и для иконок, и для WAV, и MP3.

    Было бы время и желание.. :))
     
  15. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    А в существующем варианте просто выкладывается расшифрованный экзешник, а ключ-то зачем к нему прилагать? =)



    Ничего никуда не выкладывается! После расшифровки в памяти, он запускается из памяти же, без сохранения на диск. TextPAD это своего рода упакощик EXE файлов..
     
  16. S_T_A_S_

    S_T_A_S_ New Member

    Публикаций:
    0
    Регистрация:
    27 окт 2003
    Сообщения:
    1.754
    Если Вася Пупкин _знает_, что в BMP watermarks, он грузит картинку в фотожоп, применяет фильтр, и ?



    ЗЫ: но это опять же, не имеет отношения к S/N
     
  17. jangle

    jangle New Member

    Публикаций:
    0
    Регистрация:
    5 фев 2005
    Сообщения:
    56
    Адрес:
    Russia
    Если Вася Пупкин _знает_, что в BMP watermarks, он грузит картинку в фотожоп, применяет фильтр, и



    watermarks могут быть в любых подходящих структурах данных, не обязательно в картинках, в PE вполне можно запихнуть стеганографическую подпись. Ну естественно,

    каждый дистибутив прийдется шифровать своим ключом, как

    я писал ранее. Чтобы копии не совпадали между собой побайтно.
     
  18. volodya

    volodya wasm.ru

    Публикаций:
    0
    Регистрация:
    22 апр 2003
    Сообщения:
    1.169
    как запихнул ты ее, так и выпихнут... с тем подходом, что предлагаешь ты, выпихнуть ее не составит особых проблем
     
  19. captain cobalt

    captain cobalt New Member

    Публикаций:
    0
    Регистрация:
    21 дек 2003
    Сообщения:
    222
    Адрес:
    /ru/perm
    jangle

    [ <font color="gray]Стеганография - это своего рода "водяные знаки" которые внедряются в данные и их можно "выявить" применив особые алгоритмы.</font><!--color--> ]



    Да, спасибо, я довольно неплохо знаю, что такое стеганография.



    [ <font color="gray]На WASM.RU есть статья про стеганографию</font><!--color--> ]



    Более того, там есть книга про стеганографию:

    http://www.wasm.ru/doclist.php?list=8#63

    Возможно, окажется полезно. ;)



    [ <font color="gray]watermarks могут быть в любых подходящих структурах данных</font><!--color--> ]



    Так как насчёт устойчивости к атакам на их намеренное уничтожение без нарушения функциональности программы? ;)
     
  20. Chingachguk

    Chingachguk New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2002
    Сообщения:
    340
    Если заранее неизвестно, в каком месте спрятана стеганографическая подпись



    Если известно, что она есть, то можно сравнить две разные копии пpограммы или выполнить стат.тесты (кажется, Z0mbee накопил в свое время статистику для win-32 кода).