Вопрос про алгоритм реги через лицензию

Тема в разделе "WASM.RESEARCH", создана пользователем twgt, 17 авг 2007.

  1. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Привет. Вопрос по CryptoAPI. Есть программа, в которой вызывается CryptAcquireContext(&hProv, NULL,MS_DEF_PROV,PROV_RSA_FULL,0).
    Эта функция возвращает NTE_BAD_KEYSET(0X80090016). Стал разбираться почему. Мсдн говорит что эта ошибка может возвращаться если не создан key container, либо доступ и нему закрыт. И действительно эта функция нигде не вызывается с параметром CRYPT_NEWKEYSET чтобы создать новый key container, и как следствие не расшифровывается программа для корректной регистрации. Или я не доглядел?
    Скажу сразу что вся это защита патчится двумя байтами и превращается из версии за 5600 в версию за 14000 :)
    сама прога http://www.download.ru/soft/Network_Monitoring/Network__Internet/VCWatcher/32549
    Все проверки в файле server.exe, который запакован mew'ом, но он легко распаковывается. Если запустите client.exe то убить его будет немного проблематично :)
    И еще одно: авторы пишут что эта программа совместима со всеми версиями винды, так то оно так, но с ослом версии менее 6.0 работать их защита тоже не может, ибо у них стоит MS_DEF_PROV!
     
  2. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    twgt
    ie и криптоапи как-то мало связаны.

    0 в параметре pszСontainerName означает использование default контейнера.
     
  3. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    enhanced provider ставится вместе с ие 5.5 если не ошибаюсь, так что связаны, и весьма сильно.
     
  4. slow

    slow New Member

    Публикаций:
    0
    Регистрация:
    27 дек 2004
    Сообщения:
    615
    infern0
    возможно. то же самое можно сказать про любой не мелкомягкий провайдер и софт, его использующий.
     
  5. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    там где я читал было написано что с ие 6.0
     
  6. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    замечательно, но вопрос то в другом, ошибка идет..
     
  7. infern0

    infern0 New Member

    Публикаций:
    0
    Регистрация:
    7 окт 2003
    Сообщения:
    811
    Адрес:
    Russia
    не знаю где ты смотрел, рекомендую начинать с msdn.

    MS_DEF_PROV это "Microsoft Base Cryptographic Provider v1.0" так что будет работать на любой винде.
    по поводу ошибки:
    NTE_BAD_KEYSET( 0x80090016L ) The key container could not be opened. A common cause of this error is that the key container does not exist. To create a key container, call CryptAcquireContext using the CRYPT_NEWKEYSET flag. This error code can also indicate that access to an existing key container is denied. Access rights to the container can be granted by the key set creator by using CryptSetProvParam.

    т.е. у тебя нет ключевого контейнера, нужно его сначала создать (call CryptAcquireContext using the CRYPT_NEWKEYSET flag)
     
  8. twgt

    twgt New Member

    Публикаций:
    0
    Регистрация:
    15 янв 2007
    Сообщения:
    1.494
    Млин, я не тот параметр написал, конечно же там MS_ENHANCED_PROV.
    A по поводу ключевого контейнера...
    1. Не у меня, а у них :)
    2. Я и написал в #1 что ключевой контейнер нигде не создается, и к тому же hProv!=0 на момент вызова функции .