Win32 что это такое
Что такое окно?
Что такое окно?
Очевидно, что Windows является центральной для Windows. Так важно, чтобы они называли операционную систему после них. Но что такое окно? Если вы считаете окно, вы, вероятно, думаете примерно так:
Вот еще один тип окна:
если вы не знакомы с Windows программированием, это может заудивлено тем, что элементы управления пользовательского интерфейса, такие как кнопки и поля редактирования, являются окнами. Основное различие между элементом управления пользовательского интерфейса и окном приложения заключается в том, что сам элемент управления не существует. Вместо этого элемент управления располагается относительно окна приложения. При перетаскивании окна приложения элемент управления перемещается вместе с ним, как и хотелось бы. Кроме того, элемент управления и окно приложения могут взаимодействовать друг с другом. (Например, окно приложения получает команду уведомления от кнопки.)
Таким образом, при обдумывании окна не следует просто думать окно приложения. Вместо этого представьте окно как конструкцию программирования, которая:
родительский Windows и владелец Windows
В случае элемента управления пользовательского интерфейса окно элемента управления называется дочерним элементом окна приложения. Окно приложения является родительским для окна управления. Родительское окно предоставляет систему координат, используемую для размещения дочернего окна. Наличие родительского окна влияет на аспекты внешнего вида окна; Например, дочернее окно обрезается таким образом, что никакая часть дочернего окна не может отображаться вне границ родительского окна.
На следующем рисунке показано приложение, которое отображает диалоговое окно с двумя кнопками:
Окно приложения владеет диалоговым окном, а диалоговое окно является родительским для обоих окон кнопок. Эти связи показаны на следующей схеме:
Дескрипторы окон
Windows являются объектами — они содержат как код, так и данные, но они не являются классами C++. Вместо этого программа ссылается на окно, используя значение, называемое маркером. Маркер является непрозрачным типом. По сути, это просто число, используемое операционной системой для обнаружения объекта. вы можете создать изображение Windows как наличие большой таблицы всех созданных окон. Она использует эту таблицу для поиска окон по их дескрипторам. (Будь это именно то, как он работает внутренне, не имеет значения.) Для дескрипторов окон используется тип данных HWND, который обычно произносится как «аитч-ветер». Дескрипторы окон возвращаются функциями, которые создают окна: CreateWindow и CreateWindowEx.
Первый параметр — это маркер окна, которое требуется переместить. Другие параметры указывают новое расположение окна и необходимость перерисовки окна.
Помните, что дескрипторы не являются указателями. Если HWND является переменной, содержащей дескриптор, попытка разыменования дескриптора с помощью записи *hwnd является ошибкой.
Координаты экрана и окна
В зависимости от задачи можно измерять координаты относительно экрана, относительно окна (включая рамку) или относительно клиентской области окна. Например, можно разместить окно на экране с помощью экранных координат, но нарисовать внутри окна с помощью клиентских координат. В каждом случае источник (0, 0) всегда находится в левом верхнем углу области.
Win32
Windows API (application programming interfaces) — общее наименование целого набора базовых функций интерфейсов программирования приложений операционных систем семейств Windows и Windows NT корпорации «Майкрософт». Является самым прямым способом взаимодействия приложений с Windows. Для создания программ, использующих Windows API, «Майкрософт» выпускает библиотек, утилит и других инструментальных средств.
Содержание
Общие сведения
Windows API был изначально спроектирован для использования в программах, написанных на языке C (или C++). Работа через Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model.
Версии
Полный алфавитный список технологий, доступных через Windows API
См. также
Ссылки
Литература
Widget toolkit
Amiga OS | BOOPSI · Magic User Interface · Zune · ReAction GUI | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Mac OS и Mac OS X | · MacApp · MacZoop · PowerPlant | ||||||||||
Microsoft Windows | Microsoft Foundation Classes · Windows Template Library · SmartWin++ · Object Windows Library · Visual Component Library · Windows Forms · Windows Presentation Foundation | ||||||||||
Unix, under the X | Xaw · · · InterViews | ||||||||||
Cross-platform | Based on Flash: Adobe Flex · · SWF2EXE SoftwareПолезноеСмотреть что такое «Win32» в других словарях:Win32 — Win32, der Nachfolger von Win16, also die API von 32 bit Windows Versionen (9x/Me) … Universal-Lexikon Win32 — Das Windows Application Programming Interface (kurz: WinAPI; zu dt. etwa: Windows Anwendungs Programmierungs Schnittstelle) ist eine Programmierschnittstelle und Laufzeitumgebung, welche Programmierern bereitsteht, um Anwendungsprogramme für… … Deutsch Wikipedia Win32 — Windows API Windows API ou WinAPI est le nom donné par Microsoft à l Interface de programmation (API) sur les systèmes d exploitation Microsoft Windows. Elle est conçue pour les langages de programmation C et C++ et est la manière la plus directe … Wikipédia en Français Win32 — Kurzform für 32 Bit Windows Versionen (meist synonym zu Windows95 und Windows NT) … Acronyms Win32 — Kurzform für 32 Bit Windows Versionen (meist synonym zu Windows95 und Windows NT) … Acronyms von A bis Z Win32 console — is a plain text window for console applications within the system of Windows API. A Win32 console has a screen buffer and an input buffer.Win32 consoles are typically used for applications that do not need to display images. Examples include… … Wikipedia Win32-loader (Debian) — win32 loader win32 loader Debian Installer для Windows Vista Тип Debian Installer loader Разработчик Robert Millan … Википедия Win32-loader — Entwickler: Robert Millan Aktuelle Version: 0.6.7 (22. Juni 2008) Betriebssystem: Windows 95 / 98 / 2000 / XP / Vista Kategorie: Debian Installer loader … Deutsch Wikipedia Win32-loader (Debian) — win32 loader Entwickler: Robert Millan Aktuelle Version: 0.6.7 (22. Juni 2008) Betriebssystem: Windows 95 / 98 / 2000 / XP / Vista Kategorie: Debian Installer loader … Deutsch Wikipedia win32-loader — Debian Installer для Windows Vista Тип Debian Installer loader Разработчик Robert Millan Операционная система … Википедия начало работы с настольными Windows приложениями, использующими API Win32в этой документации описывается создание классических Windows приложений с помощью API Win32. Win32 API — это одна из нескольких платформ приложений, которые можно использовать для создания настольных Windows приложений. Дополнительные сведения о других платформах приложений см. в разделе Выбор платформы. Подготовкаследуйте этим инструкциям и приступите к созданию классических приложений для Windows 10, использующих API Win32. Если вы хотите создать классическое приложение в пакете MSIX и протестировать или отладить упакованное приложение на компьютере разработчика, необходимо включить режим разработчика на компьютере. для сценариев, которые можно использовать для настройки компьютера разработки и установки других компонентов или пакетов, ознакомьтесь с этим GitHub проектом. Узнайте, как создавать классические приложения с помощью API Win32.Если вы не знакомы с созданием классических приложений с помощью API Win32, ознакомьтесь со следующими учебниками и статьями, которые помогут вам приступить к работе.
Модернизировать классические приложения для Windows 10если у вас есть существующее приложение Win32 для настольных систем, в универсальная платформа Windows (UWP) имеется множество функций, которые можно использовать для предоставления наилучшего опыта работы на Windows 10. например, начиная с Windows 10 версии 1903 можно размещать элементы управления XAML UWP в приложении Win32 для настольных систем с помощью функции, которая называется «острова xaml». Большинство этих функций UWP доступны в виде модульных компонентов, которые можно использовать в своем классическом приложении без необходимости перезаписи всего приложения. вы можете усовершенствовать имеющееся классическое приложение, выбрав части Windows 10 и UWP, которые следует принять. C++/WinRTПри необходимости можно настроить компьютер разработки для использования C++/WinRT. c++/WinRT — это совершенно стандартная современная проекция языка c++ 17 позволяет легко использовать api среда выполнения Windows среда выполнения Windows (WinRT) api из классического приложения Win32 на c++. C++/WinRT реализован в виде библиотеки на основе файлов заголовков. Чтобы настроить C++/WinRT для проекта, сделайте следующее: Дополнительные сведения об этом варианте см. в этой статье. Новые возможности API-интерфейсов Win32 в Windows 10дополнительные сведения о новых api-интерфейсах Win32, появившихся в Windows 10, см. в разделе новыевозможности. Приступая к работе с функциями и технологиями Win32api-интерфейсы Win32 существуют для многих функций и технологий в Windows 10, включая базовые api интерфейса пользователя и оконный интерфейс, аудио и графику, а также сети. Инструкции и примеры кода об использовании этих API см. в статье индексы функций и технологий. Не является приложением Win32 – исправить на Windows XP и 7Сегодня хочу рассказать о распространённой проблеме, возникающей у пользователей с операционной системой Windows: Программа не является приложением Win32. Сразу отметим, что данная ошибка возникает при установке таких программ, которые не предназначены для Windows. Естественно, что данную проблему можно исправить, но не всегда удается. Что такое Win32 и что значит «Не является приложением»Если у вас возникла ошибка подобного рода, то не стоит пугаться, а нужно сразу же пробовать решить проблему. Начнем с того, что появляется она по разным причинам. Допустим, что у нас есть Windows 8 или Windows 7 64-битная, все равно, такая система будет поддерживать приложения, которые рассчитаны на 32-х битные системы. А вот если программа не соответствует нужной архитектуре, то тут уже проблема. Программа могла быть создана в другой ОС, например, в Linux, и как раз для нее предназначена, либо же, есть нехватка необходимых файлов, а также, эти самые файлы повреждены. Также, немаловажную роль могут играть и вирусы, стоит проверить компьютер антивирусом. Программа не только может быть предназначена для другой операционной системы, но и являться мусором и даже вирусом. Но такое можно подхватить только на непроверенных источниках. Всегда перед скачиванием смотрите на комментарии, дизайн сайта, его предназначение. Если источник безопасный, то подозрений вызывать не будет. Для запуска приложений, не предназначенных для Windows, можно использовать эмуляторы, создающие виртуальную среду определенной ОС, будь это MacOS или Android. Есть еще виртуальные машины, например, VirtualBox, позволяющие установить любую операционную систему внутри песочницы. Грубо говоря, вы можете из-под Windows пользоваться другими системами без последствий. Как исправить ошибку «Не является приложением win32»Если вы успешно распаковали программу и запускаете установщик, и появляется данная ошибка, то стоит попробовать скачать ее из другого источника. Если вы ее успешно установили, но при запуске возникает ошибка, то удалите ее, а потом установите заново. Банальные советы, но могут помочь, так что, начинаем с самого простого. Если снова ничего не помогло, то попробуйте найти эту программу для той ОС, которая у вас стоит. Обязательно смотрите в описании программы, какие ОС она поддерживает. А еще ознакомьтесь с отзывами, если таковые имеются. Запуск в режиме совместимости на Windows 10Можно попробовать запустить программу в режиме совместимости, для этого нажмите по значку приложения ПКМ и выберите «Свойства», потом перейдите во вкладку «Совместимость» и выберите «Запускать программу в режиме совместимости» и выберите из списка, например, более раннюю ОС. Отсутствуют компоненты Net Framework, Microsoft Visual C++Конечно, многие игры и программу уже в пакете имеют данные компоненты, но если появляется подобная ошибка, то стоит ее исправить именно таким способом. Чтобы узнать, какие версии Net Framework уже установлены в системе Widows нужно открыть панель управления, затем перейти в раздел «Программы и компоненты». Далее перейдем по ссылке слева «Включение или отключение компонентов Windows». Там вы увидите все версии нужных вам компонентов. Попробуйте проверить Windows на наличие обновлений, чаще всего там присутствуют обновления NET Framework. Обновлять и устанавливать нужно не только ту платформу, которую я указал, это относится и к Java или Microsoft Visual C++. Вот собственно и все. Надеюсь, что вы решили данную проблему. Изменение данных в реестре исправит ошибку win32 приложенияЧтобы попасть в реестр нужно выполнить следующие действия: Для исправления проблемы можно скачать готовый Win32.Reg файл и просто его запустить. Загружаемый файл Win32 не скачан – проверяем Хеш-суммыНередки случаи, когда загрузка файла через браузер или торрент прерывается. В описании закачки указано, что файл успешно скачан, но это не может быть так. В лучшем случае программа установится, но не запустится, поскольку не хватает важных компонентов для ее работы. Если игр или программа выдает ошибку, что приложение не является win32, то лучше закачать ее из другого источника. Чтобы убедиться в целостности скачанных файлов существует алгоритм Хэш-сумм. Для каждого файла он уникальный и имеет размер 32 символа – буквы, цифры. Если один байт в файле изменен, например, из-за не полной загрузки или повреждения данных, то хэш сумма будет отличаться. По-другому хэш сумма называется контрольной суммой. Итак, на многих сайтах и торрент трекерах, откуда идет загрузка файлов имеется подробное описание и контрольные суммы файлов. После скачивания вы можете сравнить хэши на сайте и с помощью специальной программы под Windows. Такие программы могут проверять сразу несколько алгоритмов контрольных сумм: SHA1, MD5, CRC и другие. Для проверки и сравнения контрольных сумм вы можете использовать расширение для проводника – HashTab. Инструмент проверки будет находится в свойствах каждого файла на вкладке «Хеш-суммы файлов». Если нет возможности установить расширение, скачайте программу проводник – Total Commander. Там выберите программу или архив из встроенного проводника, выберите его и нажмите на вкладку «Файл», затем жмем по пункту «Посчитать CRC-суммы (CRC32, MD5, SHA1)». Самый простой способ решить проблему с недокачанной или повреждённой программой – скачать ее из другого источника. Файл Win32 является вирусом или поврежден антивирусомДля проверки файлов можно использовать антивирус, но если вирус все же найден, то антивирусное ПО попытается его вылечить. К сожалению, попытка лечения вирусного файла часто заканчивается неудачей. Почему так происходит? А дело в том, что скачанный файл может быть взломанным, пиратским или в простонародье – крякнутым. Программы или игры, имеющие кряк или, так называемые, файлы таблетки для лечения от лицензии быстро устраняются антивирусами. Выход здесь только один – отключить временно антивирус, установить и запустить программу. Но делайте это очень осторожно. Устанавливайте приложение только в том случае, если доверяете источнику. Для проверки системы на вирусы следует использовать не только встроенный программный антивирус, но и специальные одноразовые программы – AVZ, Kaspersky Virus Removal Tool, Dr. Web Cureit. Если не является приложением Win32 на Windows XPМногие еще работают на старой доброй Windows XP и ошибки там есть, которые не дают запустить нужную программу. Самая стандартные причины, которые могли привести к ошибке Win32 – поврежденная программа / архив или сбой в системе. Для устранение первой ошибки достаточно скачать приложение из другого источника. Решение второй причины достигается обычной перезагрузкой ОС. Следующие причины могут быть следующими конкретно на Windows XP. Итоги Итак друзья, подведем итоги и кратко укажем, что нужно сделать, чтобы избавиться от ошибки “Программа не является приложением win32”. Win32/Virlock – первый саморазмножающийся вымогательВредоносная программа Win32/Virlock представляет из себя первый известный на сегодняшний день вымогатель (ransomware), который специализируется на заражении исполняемых файлов, т. е. ведет себя как файловый вирус. Virlock умеет блокировать рабочий стол пользователя с требованием выкупа, шифровать файлы пользователя, а также размножать свое тело как полиморфный вирус. Семейства вымогателей, который мы наблюдали ранее, фактически, можно разделить на две большие группы: блокировщики экрана (LockScreen) и шифровальщики файлов (Filecoder). В первом случае вымогатель блокирует пользователю доступ к рабочему столу до получения выкупа, а во втором шифрует файлы пользователя, делая невозможным их использование. При этом сообщение с требованием выкупа может появится в качестве обоев рабочего стола, в виде открытого текстового файла, а также через простое окно (как в случае с Cryptolocker). В некоторых случаях, вымогатель может применить гибридный подход и содержать обе этих возможности, т. е. блокирование доступа к рабочему столу или устройству сопровождается шифрованием файлов на нем. При этом код вредоносной программы будет использовать специальные механизмы для запрещения закрытия появившегося окна. Примером такой вредоносной программы является вымогатель Android/Simplocker. В октябре мы зафиксировали новый тип такого вредоносного ПО как вымогатель. Вредоносная программа Win32/Virlock могла блокировать рабочий стол пользователя с требованием выкупа, шифровать файлы, а также заражать исполняемый файлы как полиморфный вирус, встраивая в них свой код. Недавно мы обнаружили несколько новых модификаций этого вируса, что указывает на его активное развитие со стороны злоумышленников. Код VirLock демонстрирует высокий уровень технической подготовки авторов этой вредоносной программы. Win32/Virlock использует особый прием для шифрования файлов. Вместо обычного метода побайтового шифрования всего файла или его начала, такой файл преобразуется в исполняемый и к нему дописывается код Virlock. Вредоносная программа специализируется на компрометации следующих типов файлов: *.exe, *.doc, *.xls, *.zip, *.rar, *.pdf, *.ppt, *.mdb, *.mp3, *.mpg, *.png, *.gif, *.bmp, *.p12, *.cer, *.psd, *.crt, *.pem, *.pfx, *.p12, *.p7b, *.wma, *.jpg, *.jpeg. При этом Virlock способен заражать файлы на сетевых дисках и съемных носителях. Запуск зараженного Virlock файла сопровождается созданием двух его новых файлов, которые аналогичны оригинальному дропперу, но из-за полиморфизма содержат разный исполняемый код. Один файл создается в директории %userprofile%, а второй в %alluserprofile%. Для обеспечения автозагрузки, вредоносная программа прописывает путь к своему файлу в соответствующем разделе реестра Run обоих разделов HKLM и HKCU. Мы также наблюдали модификации Virlock, которые извлекали из себя третий исполняемый файл. Он регистрировался в качестве сервиса. Эти извлеченные файлы отвечали за дальнейшее заражение файлов в системе. Часть кода вымогателя ответственна за отображение пользователю экрана блокировки, при этом используя уже ставшие типичными методы самозащиты, в том числе завершение процессов проводника и диспетчера задач.
Сообщение в окне блокировки содержит текст предупреждения для пользователя и предлагает оплатить сумму выкупа в биткоинах. Недавно мы писали про другой вымогатель TorrentLocker, который также вымогает у пользователя денежные средства в этой криптовалюте. Ниже представлен экран блокировки более новой версии Virlock, он позволяет пользователю использовать приложения веб-браузер и блокнот.
Код вредоносной программы, который отвечает за вывод экрана блокировки, способен выполнять некоторую локализацию интерфейса самого экрана (окна). Для этого используется соединение с веб-сайтом google.com и дальнейший анализ домена, на который осуществляется перенаправление, например, google.com.au, google.ca, google.co.uk, google.co.nz. Также используется функция GetUserGeoID. Для стран, соответствующих вышеперечисленным доменам, отображается свой флаг, стоимость биткоинов и текущий курс национальной валюты. С технической точки зрения наиболее интересной частью вредоносной программы является механизм заражения файлов и полиморфизм. Полиморфизм Virlock гарантирует уникальность тела вредоносной программы в каждом зараженном файле. Virlock использует несколько слоев шифрования файла. Исполняемый файл Virlock включает в себя специальный код, который мы называем XOR stub builder. Он располагается в файле в не зашифрованном состоянии. Остальные данные вредоносной программы и ее код, а также данные оригинального файла (в случае, если мы имеем дело не с оригинальным дроппером, а файлом который был заражен) находятся в зашифрованном виде. Упоминаемый XOR stub builder состоит из восьми блоков кода и используется для генерации инструкций типа XOR, которые будут использоваться для расшифровки данных файла. Один из таких блоков изображен ниже на рисунке.
Блоки кода XOR stub builder являются полиморфными, т. е. различаются от одного зараженного файла к другому. В любом случае, исполнение каждого из них приводит к вычислению определенного двойного слова (DWORD) и его записи по фиксированному смещению в памяти. Эти слова представляют из себя инструкции XOR stub, т. е. заглушки с инструкциями XOR, которые расшифровывают остальную часть файла. Мы говорили про многоуровневый подход, который Virlock использует при шифровании файла. В такой схеме, XOR заглушка используется для расшифровки небольшого участка кода исполняемого файла (Часть 1). Такой код состоит из нескольких функций. На скриншоте ниже приведен фрагмент кода XOR заглушки. Для расшифровки использовался ключ 0x6B130E06, причем размер расшифровываемой части равен 0x45c.
Интересной особенностью Virlock является строение его расшифрованного кода (Часть 2). Почти каждая функция в нем зашифрована еще раз и начинается с заглушки, которая расшифровывает код самой функцию. Это существенно осложняет анализ вредоносной программы, поскольку код функций нельзя проанализировать в дизассемблере. Код заглушки достаточно прост и использует алгоритм XOR для расшифровки тела функции. После исполнения функции, ее код в памяти зашифровывается обратно, при этом шифрование производится с использованием нового ключа. Ниже на рисунке показан пример такого кода. Инструкция rdtsc используется для получения ключа шифрования, далее операция XOR применяется для шифрования нескольких переменных и тела функции.
Такую особенность вредоносной программы можно назвать полиморфизмом периода исполнения (run-time polymorphism). При запуске нескольких ее копий, дампы памяти исполняемого файла будут различаться. При расшифровке Части 2, код вредоносной программы также прибегает к применению еще одной процедуры расшифровки. Как мы упоминали, Часть 1, которая расшифрована с использованием XOR stub, расшифровывает остальную часть файла вредоносной программы и содержимое зараженного файла, в случае его присутствия. Процедура расшифровки состоит в применении операции циклического сдвига вправо ROR. Используемый ключ расшифровки жестко зашит в теле вредоносной программы. Таким образом, Virlock использует трехуровневую схему шифрования: Наша система телеметрии LiveGrid показывает, что заражению Virlock подверглось небольшое количество пользователей. Их количество не сравнимо с количеством пользователей, которые подверглись заражению TorrentLocker или других подобных ему вымогателей. Тем не менее, анализ транзакций, проведённых по указанному счету Bitcoin, показывает, что некоторые жертвы уже оплатили выкуп злоумышленникам.
|