Информация о железе через WMI

Тема в разделе "WASM.WIN32", создана пользователем float, 2 июн 2011.

  1. float

    float New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2010
    Сообщения:
    113
    Насколько надежно юзать WMI? каков шанс что он не сработает, и при каких условиях это может быть? Хочу использовать для генерации ключей с привязкой по железу
     
  2. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    Отключен сервис "Windows Management Instrumentation", например...так что "шанс" всегда есть..
    ...
    А какие параметры хотите юзать? может,их можно и другими путями получить...

    PS: У Русиновича в книге есть инфа по WMI
     
  3. Xml

    Xml New Member

    Публикаций:
    0
    Регистрация:
    18 май 2011
    Сообщения:
    54
    setupapi лучше попробуйте
     
  4. float

    float New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2010
    Сообщения:
    113
    ну мне надо просто пара-тройка значений, которые можно получить во всех виндах от 2000, желательно 1 способом. Возможно даже ключ реестра, главное чтобы после переустановки системы они не менялись. У меня есть уже получение серийника жесткого диска, но он может не у всех взяться. Поэтому ищу за что еще зацепиться.
     
  5. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Это еще почему?
     
  6. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    float
    для данной цели ненадежно, тк слабым и отслеживаемым местом будет само получение серийника. вам нужно какой нибудь очень простая и распространенная комбинация или часто используемый в вашей проге момент.
     
  7. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    float А где WMI дает серийник жд..? вот писал когда-то тест...
    Вот более менее значимые поля:

    Код (Text):
    1. 1. Initialize COM
    2. 2. Set general COM security levels
    3. 3. Obtain the initial locator to WMI
    4. 4. Connect to WMI through the IWbemLocator::ConnectServer method
    5. Connected to ROOT\CIMV2 WMI namespace
    6. 6. Use the IWbemServices pointer to make requests of WMI
    7. 7. Get the data from the query in step 6
    8.  Results:
    9.  -PNPDeviceID: IDE\DISKWDC_WD3200BPVT-22ZEST0__________________01.01A01\5&2C5D13AF&0&0.0.0
    10.  -Model: WDC WD3200BPVT-22ZEST0 ATA Device
    11.  -DeviceID: \\.\PHYSICALDRIVE0
    12.  -Signature: 0x2EB72EB6
    Но серийника ЖД тут нет... или я туплю - забыл какое-то поле??
     
  8. float

    float New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2010
    Сообщения:
    113
    я нашел код, там берется 4мя способами, во всех способах идет опрос железа через DeviceIoControl. в каком-нибудь китайском говновинчестере вполне может быть не заполнено поле серийного номера.
     
  9. float

    float New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2010
    Сообщения:
    113
    ну если найти что-то действительно стоящее из реестра, можно даже подумать как это от туда без палева достать.

    p.s. в вике написано что HKEY_LOCAL_MACHINE\HARDWARE\ переписывать каждую загрузку винды и пишет туда инфу о железе.

    HKEY_LOCAL_MACHINE\HARDWARE\ACPI\RSDT\IntelR\AWRDACPI\42302e31 там у себя обнаружил бинарное значение. Его можно использовать для такой цели?




    cpu-z еще получает информацию о номере партии DDr и ее серийнике. Но по моему там это все из драйвера берется, а для меня драйвер будет не лучшее решение, как минимум из-за х64
     
  10. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    float
    как? если вы хотите защиту, которая бы не перехватывалась за 5 минут бряком на апи, вам надо отказаться от использования любых именованных функций. строки сюда же. точно также не очень желательно использовать редко используемые команды и комбинации чтобы не создавать сигнатуры. хотя, тут можно и извернуться.
    но это дело ваше.

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

    float New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2010
    Сообщения:
    113
    главное требование - так сказать, удобство активации, и привязка к чему-то, что не слетает после переустановки. Запрятать обращения к реестру это уже моя проблема, я буду думать сам отдельно, если что.
     
  12. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    float
    Делал привязку по серийнику диска, ни разу не было чтобы он не определялся.
    Одновременно так можно определить виртуалку, т.к. там специфические значения.

    gorodon
    Серийника здесь нет, есть модель и firmware revision.
     
  13. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    K10
    :) ... да, я понимаю что сам запостил.. там(WMI) просто еще кучу полей можно вытащить (я думал, что где-то там болтается серийник, потому и спрашивал).

    А для юзерских и гостевых акков вы какие алгоритмы использовали? (или через предустановленный драйвер/сервис делали?)
     
  14. gorodon

    gorodon New Member

    Публикаций:
    0
    Регистрация:
    19 окт 2009
    Сообщения:
    301
    K10
    Кстати, по-моему у У.Они читал, что в строке, наподобие
    Код (Text):
    1. IDE\DISKWDC_WD3200BPVT-22ZEST0__________________01.01A01\5&2C5D13AF&0&0.0.0
    идентификатор "5&2C5D13AF&0&0.0.0" генерится с учетом железа (возможно, и серийника)...
    нигде не могу подтвердить/опровергнуть эту информацию.
    Может, проясните этот вопрос или ссылку на литературу, плиз?
     
  15. OldDino

    OldDino New Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    44
    Поищите на Microsoft'e инструмент под названием WMI Tools. Многие вопросы по использованию WMI отпадут сами собой.
     
  16. OldDino

    OldDino New Member

    Публикаций:
    0
    Регистрация:
    3 июл 2006
    Сообщения:
    44
    Поищите на Microsoft'e инструмент под названием WMI Tools. Многие вопросы по использованию WMI отпадут сами собой.
     
  17. float

    float New Member

    Публикаций:
    0
    Регистрация:
    7 янв 2010
    Сообщения:
    113
    а такой вопрос. все же реально узнать номер партии и серийный номер физической памяти? (без драйвера и WMI)
     
  18. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    gorodon
    Под ограниченными учетками работа была не предусмотрена. Кому надо запустят от имени администратора)