Win10 - определить наличие версии 2004

Тема в разделе "WASM.WIN32", создана пользователем ormoulu, 29 авг 2020.

  1. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Необходимо определить наличие версии/апдейта 2004 для Windows 10. В идеале при помощи WinAPI.
    Заранее спасибо за советы.
     
  2. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    version.dll
    --- Сообщение объединено, 29 авг 2020 ---
    И можно через WMI, Win32_InstalledWin32Program
     
  3. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Если вам не сложно, хотелось бы чуть больше подробностей, для дебилов.
     
  4. f13nd

    f13nd Well-Known Member

    Публикаций:
    0
    Регистрация:
    22 июн 2009
    Сообщения:
    1.995
    GetFileVersionInfoSize, GetFileVersionInfo, VerQueryValue. Апдейт заменяет ряд исполняемых файлов, их версия (в ресурсах) меняется. Вручную ее можно посмотреть пкм-свойства-подробно, а программно - перечисленными апями.

    А Win32_InstalledWin32Program насколько я помню при установке апдейта он просто в списке установленных программ светится (вряд ли проканает с готовым дистрибутивом этой версии).
     
  5. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.576
  6. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Как-то все это чересчур хаково.
    Хочется какой-нибудь стандартный/официальный вариант.
    Как например winver определяет версию винды?
     
  7. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.323
  8. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    ormoulu,

    Всё верно сказали, можешь прочитать версию из памяти, есть она в usd/teb/peb но это плохой метод, хотя смещения не менялись и не изменятся в этих структурах.

    Следует использовать паблик апи, а не читать значение из каких то интернал структур, если не малварь/крипторы/протекторы и тп.
     
  9. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.576
    Разве майкрософт предоставляет документированый вариант получения инфы? Вот как вы хотите, без структур и прочей магии. Они же убрали даже GetVersion(Ex), правда оставив пока Rtl-версию апи;

    так то , наверное, максимум можно получить номер сборки (хз как), вот этот который 18362 , и его преобразовывать в 1903 по каким-то внутренним таблицам.
     
  10. RETN

    RETN Member

    Публикаций:
    4
    Регистрация:
    4 апр 2020
    Сообщения:
    74
    PEB или реестр в помощь. + file version ntdll.dll
     
  11. TermoSINteZ

    TermoSINteZ Синоби даоса Команда форума

    Публикаций:
    2
    Регистрация:
    11 июн 2004
    Сообщения:
    3.552
    Адрес:
    Russia
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
     
    ormoulu, M0rg0t и Indy_ нравится это.