Создание протектора

Тема в разделе "WASM.RESEARCH", создана пользователем 3ton, 21 дек 2005.

  1. 3ton

    3ton New Member

    Публикаций:
    0
    Регистрация:
    28 май 2004
    Сообщения:
    11
    Адрес:
    Ukraine
    Понимаю что тема избитая.

    Думаю просто какую тему выбрать на диплом...

    Если сделать не просто навесной протектор, их и так уже дофига и не переплюнешь так просто, а протектор со своим простым АПИ.

    Например с 3 функциями:

    _API_ShowSerialDialog()

    _API_StartCrypt()

    _API_EndCrypt()



    Программер при создании своей проги на какой нить кнопке/меню/т.п вешает функцию _API_ShowSerialDialog(). Которая при коппилляции внедряет некоторую уникальную сигнатуру нужной длинны.

    Функциями _API_StartCrypt() и _API_EndCrypt() обматываются критические участки кода. Они тоже внедряют сигнатуру при компилляции.

    После компилляции полученная программа скармливается протектору, который находит сигнатуру диалога и внедряет код диалога (там секцию добавляет, импорт редактирует или сам в процессе работы находит, это уже как реализовать). Между сигнатурами функций _API_StartCrypt() и _API_EndCrypt() код шифруется и внедряется проверка которая проверяет, если код расшифрован нормально, то она его запускает, если нет, то выводит сообщение что не введен серийный номер.

    Введенный при наложении защиты серийник естесвенно не хранить, а юзать его как ключ шифрования. Хранить только хеш участков кода до шифрования. И сравнивать его с полученным при дешифровании. Если сошлись, то с большой вероятностью серийник введен верно.



    Такие защиты тоже наверняка существуют... Но... В общем, что думаете по этому поводу?
     
  2. bogrus

    bogrus Active Member

    Публикаций:
    0
    Регистрация:
    24 окт 2003
    Сообщения:
    1.338
    Адрес:
    ukraine
    В таком случае можно обойтись и макросами
    Код (Text):
    1. ;=====================================================================
    2. macro random key ; возможно реализовать без кода
    3. {генерация случ. ключа}
    4. macro encrypt data,size,key ; возможно реализовать без кода
    5. {шифрование на ключе}
    6. macro display key ; возможно реализовать без кода
    7. {отображение случ. ключа}
    8. ;=====================================================================
    9. macro read key ; необходим код для получения ключа
    10. {чтение случ. ключа из файла\диалога и т.д.}
    11. macro decrypt data,size,key ; необходим код для расшифровки
    12. {дешифрование на ключе}
    13. macro validation ; необходим код
    14. {проверка и запуск\отлуп}
    15. ;=====================================================================
    Или свести все к двум макросам
    Код (Text):
    1. ;=====================================================================
    2. key = encrypt (data,size) ; шифрование при компиляции и отображение ключа
    3. isvalid = decrypt (data,size,key) ; дешифрование при выполнении и возврат результата
    4. ;=====================================================================
    Т.е. прогер в свой код вставляет макро шифрования и указывает откуда-докудаво (макро возвращает ключ), как прога скомпилена её можно с ключем распространять, а при запуске запрашиваем ключ и передаем в макро раскриптовки (возвращает отлуп если bad key)



    Простейший пример есть тут http://wasm.ru/forum/files/995930221__xtea.zip , короче пиши тему "Создание защит макросами!" :)







    А с какой стороны надо думать, с твоей, прогера, препода? или ещё чего ...
     
  3. 3ton

    3ton New Member

    Публикаций:
    0
    Регистрация:
    28 май 2004
    Сообщения:
    11
    Адрес:
    Ukraine
    Ага, через макросы неплохо выходит. Но я думаю через прогу и маленький апи более унивесально будет со стороны языков программирования. Бо легче для нескольких разный языков маленокое апи написать чем большие макросы. Хотя конечно гемороя при разработке больше =) Плюс диалог запроса серийника в разных языках по разному, а так уже откомпиленный внедрить...

    А насчет думать =) Так я имел ввиду просто, насколько живучая идея, в смысле прикладная? И плюс есть ли уже что нить похожее, которое реально используется?
     
  4. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Да полно. Хотя бы ASprotect и Armadillo.

    Да я тоже раньше писал прот, где помимо всего прочего использовались и макросы и апи. Это теперь есть неверное у всех, так что незачем изобреать очередной велоспед.
     
  5. 3ton

    3ton New Member

    Публикаций:
    0
    Регистрация:
    28 май 2004
    Сообщения:
    11
    Адрес:
    Ukraine
    Да, подстава... Повтыкал, действительно уже почти все такую защиту имеют в своем наборе... Как говориться: "Все уже украдено до нас" =(.

    А в каком направлении тогда посоветуете покопать? Какое приоритетное направление щас в этом деле? Что поисследовать?
     
  6. Ms Rem

    Ms Rem New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2005
    Сообщения:
    1.057
    Адрес:
    С планеты "Земля"


    Пермутации и ВМ.

    А еще лучше даже не браться за протектор если нет конкретного заказчика, все равно никто не купит.
     
  7. 3ton

    3ton New Member

    Публикаций:
    0
    Регистрация:
    28 май 2004
    Сообщения:
    11
    Адрес:
    Ukraine
    Да мне продавать и не надо =) Мне надо развить теорию... Провести какие нибудь исследования... Мне на диплом.

    Просто я преподу уже сказал что буду этим заниматься, думал такую штуку разработать про которую сверху писал, а тут облом вышел, что такого уже дофига. Вот теперь в раздумьях что делать. Мне в принципе в итоге и рабочая прога не обязательно, главное чтобы была новизна и исследования...
     
  8. Drakon

    Drakon New Member

    Публикаций:
    0
    Регистрация:
    24 сен 2004
    Сообщения:
    85
    Адрес:
    Russia
    Ms Rem, расскажи поподробнее про "Пермутации и ВМ"... Хотя бы вкратце, что такое, где искать об этом. ВМ - это я так понял виртульная машина. Где почитать?

    И если ты занимался опиши какие-нибудь основные тенденции развития протекторов, т. е. что обычно делают и что скорее всего дальше будут делать.

    Я тоже хочу заняться... Как дипломный проект (тем более, что специальность моя - компьютерная безопасность) да и по работе мне очень поможет свой протектор.



    P. S.

    Похоже, что я Ms Rem'а попросил написать целую статью. =) Ну, сколько сможешь плиз.



    3ton, а ты когда сделаешь диплом - если не жалко скинь на почту drakon [at] dubki [dot] ru