#winapi — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #winapi, aggregated by home.social.
-
Как я автоматизировал UI в Windows: UIAutomation и Win32
Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:
https://habr.com/ru/articles/1035292/
#automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов
-
Как я автоматизировал UI в Windows: UIAutomation и Win32
Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:
https://habr.com/ru/articles/1035292/
#automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов
-
Как я автоматизировал UI в Windows: UIAutomation и Win32
Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:
https://habr.com/ru/articles/1035292/
#automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов
-
Как я автоматизировал UI в Windows: UIAutomation и Win32
Привет, меня зовут Алексей, я C# разработчик. Я разрабатывал библиотеку для автоматизации взаимодействия с различными UI-элементами и их захвата. Одной из поддерживаемых сред в такой библиотеке обязательно должна быть Windows и в ней так же требуется: находить кнопки, поля, окна, списки, нажимать на них, читать значения, вводить текст и в целом обращаться с интерфейсом не как пользователь с мышкой, а как программа. На первый взгляд задача звучит просто: нашли элемент, кликнули, пошли дальше. Но в реальных приложениях у элемента может не быть (считай не будет) нормального AutomationId , у нескольких окон может быть один и тот же заголовок, дерево интерфейса может прогружаться не сразу, а старое desktop-приложение вообще не предназначено для взаимодействия с современными API для автоматизации. В итоге в моей библиотеке появилось два основных Windows-подхода:
https://habr.com/ru/articles/1035292/
#automation #ui_testing #ui_automation #winapi #win32 #тестирование #автоматизация #автоматизация_тестирования #интерфейсы #автоматизация_бизнеспроцессов
-
Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2
Мы продолжаем увлекательное путешествие по миру удалённого доступа . В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE , а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux . Это вторая часть цикла про протокол SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows . Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных! В бездну виндового угнетения
-
Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2
Мы продолжаем увлекательное путешествие по миру удалённого доступа . В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE , а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux . Это вторая часть цикла про протокол SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows . Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных! В бездну виндового угнетения
-
Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2
Мы продолжаем увлекательное путешествие по миру удалённого доступа . В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE , а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux . Это вторая часть цикла про протокол SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows . Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных! В бездну виндового угнетения
-
Препарируем графическую подсистему Windows. Протокол SPICE в современном графическом стеке, часть 2
Мы продолжаем увлекательное путешествие по миру удалённого доступа . В предыдущей части заглядывали под капот протокола доставки рабочего стола SPICE , а сейчас на операционный стол попала великая и ужасная ОС Windows - точнее, её графическая подсистема. Заглянем в её недры и окунёмся в её философию и историю развития. И заодно найдём интересные параллели в Linux . Это вторая часть цикла про протокол SPICE и то, как он вынужден работать в современных условиях. Наша конечная цель - создать пилот стримингового агента для виртуальной машины на ОС Windows . Приглашаю под кат всех, кто работает или сталкивается с системами виртуализации, с протоколом SPICE, с виртуальными машинами в принципе; кто интересуется такими темами как удалённый доступ и компьютерная графика; да и вообще всех любознательных! В бездну виндового угнетения
-
Как я писал трей-утилиту для управления sing-box на Windows
Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box . Началось с того, что для прокси на Windows я стал использовать Nekobox. Про гибкое раздельное туннелирование я еще не знал, и приходилось постоянно включать и выключать системный прокси, чтобы зайти то туда (сайт заблокирован), то сюда (сайт блокирует IP прокси). Много раз в час: клик по значку в трее, режим системного прокси, отключить (а потом обратно). И я подумал, что было бы удобнее просто кликать по значку. Ничего сложного — почему бы не реализовать? Начал я, конечно же, с рисования значка. Решил, что хорошо подойдет портал из «Рика и Морти» как метафора беспрепятственного перемещения между измерениями. Провел целый вечер в Procreate на iPad, замучился, устал и отложил затею на потом. Что было дальше
-
Как я писал трей-утилиту для управления sing-box на Windows
Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box . Началось с того, что для прокси на Windows я стал использовать Nekobox. Про гибкое раздельное туннелирование я еще не знал, и приходилось постоянно включать и выключать системный прокси, чтобы зайти то туда (сайт заблокирован), то сюда (сайт блокирует IP прокси). Много раз в час: клик по значку в трее, режим системного прокси, отключить (а потом обратно). И я подумал, что было бы удобнее просто кликать по значку. Ничего сложного — почему бы не реализовать? Начал я, конечно же, с рисования значка. Решил, что хорошо подойдет портал из «Рика и Морти» как метафора беспрепятственного перемещения между измерениями. Провел целый вечер в Procreate на iPad, замучился, устал и отложил затею на потом. Что было дальше
-
Как я писал трей-утилиту для управления sing-box на Windows
Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box . Началось с того, что для прокси на Windows я стал использовать Nekobox. Про гибкое раздельное туннелирование я еще не знал, и приходилось постоянно включать и выключать системный прокси, чтобы зайти то туда (сайт заблокирован), то сюда (сайт блокирует IP прокси). Много раз в час: клик по значку в трее, режим системного прокси, отключить (а потом обратно). И я подумал, что было бы удобнее просто кликать по значку. Ничего сложного — почему бы не реализовать? Начал я, конечно же, с рисования значка. Решил, что хорошо подойдет портал из «Рика и Морти» как метафора беспрепятственного перемещения между измерениями. Провел целый вечер в Procreate на iPad, замучился, устал и отложил затею на потом. Что было дальше
-
Как я писал трей-утилиту для управления sing-box на Windows
Эта статья о том, как я хотел сэкономить несколько секунд при переключении системного прокси в Nekobox, а в итоге уже несколько месяцев пишу мини-программу для управления sing-box . Началось с того, что для прокси на Windows я стал использовать Nekobox. Про гибкое раздельное туннелирование я еще не знал, и приходилось постоянно включать и выключать системный прокси, чтобы зайти то туда (сайт заблокирован), то сюда (сайт блокирует IP прокси). Много раз в час: клик по значку в трее, режим системного прокси, отключить (а потом обратно). И я подумал, что было бы удобнее просто кликать по значку. Ничего сложного — почему бы не реализовать? Начал я, конечно же, с рисования значка. Решил, что хорошо подойдет портал из «Рика и Морти» как метафора беспрепятственного перемещения между измерениями. Провел целый вечер в Procreate на iPad, замучился, устал и отложил затею на потом. Что было дальше
-
Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)
Что если защита от копирования вообще не содержит ни одного условного перехода? Ретро-разбор библиотеки 2009 года, где вместо if (key == valid) используется вычисление адреса следующей функции, любая ошибка в данных уводит процессор в никуда. Классический взломщик ищет в дизассемблере инструкции JZ/JNZ и инвертирует их ("Magic Jump"). Здесь этот приём не работает: нет точки принятия решения, нет и цели для патча. Вместо этого серийный номер диска, CRC32 исполняемого файла и системная дата складываются в единственно верный адрес перехода. Чуть изменил данные - получил Access Violation в случайном месте памяти.
https://habr.com/ru/articles/1008824/
#Delphi_7 #Pascal #WinAPI #Защита_программного_обеспечения #Обфускация #Антиотладка #Ретро #x86 #Программирование
-
Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)
Что если защита от копирования вообще не содержит ни одного условного перехода? Ретро-разбор библиотеки 2009 года, где вместо if (key == valid) используется вычисление адреса следующей функции, любая ошибка в данных уводит процессор в никуда. Классический взломщик ищет в дизассемблере инструкции JZ/JNZ и инвертирует их ("Magic Jump"). Здесь этот приём не работает: нет точки принятия решения, нет и цели для патча. Вместо этого серийный номер диска, CRC32 исполняемого файла и системная дата складываются в единственно верный адрес перехода. Чуть изменил данные - получил Access Violation в случайном месте памяти.
https://habr.com/ru/articles/1008824/
#Delphi_7 #Pascal #WinAPI #Защита_программного_обеспечения #Обфускация #Антиотладка #Ретро #x86 #Программирование
-
Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)
Что если защита от копирования вообще не содержит ни одного условного перехода? Ретро-разбор библиотеки 2009 года, где вместо if (key == valid) используется вычисление адреса следующей функции, любая ошибка в данных уводит процессор в никуда. Классический взломщик ищет в дизассемблере инструкции JZ/JNZ и инвертирует их ("Magic Jump"). Здесь этот приём не работает: нет точки принятия решения, нет и цели для патча. Вместо этого серийный номер диска, CRC32 исполняемого файла и системная дата складываются в единственно верный адрес перехода. Чуть изменил данные - получил Access Violation в случайном месте памяти.
https://habr.com/ru/articles/1008824/
#Delphi_7 #Pascal #WinAPI #Защита_программного_обеспечения #Обфускация #Антиотладка #Ретро #x86 #Программирование
-
Защита программ без IF: ретро-анализ библиотеки TViorProtect (Delphi 7)
Что если защита от копирования вообще не содержит ни одного условного перехода? Ретро-разбор библиотеки 2009 года, где вместо if (key == valid) используется вычисление адреса следующей функции, любая ошибка в данных уводит процессор в никуда. Классический взломщик ищет в дизассемблере инструкции JZ/JNZ и инвертирует их ("Magic Jump"). Здесь этот приём не работает: нет точки принятия решения, нет и цели для патча. Вместо этого серийный номер диска, CRC32 исполняемого файла и системная дата складываются в единственно верный адрес перехода. Чуть изменил данные - получил Access Violation в случайном месте памяти.
https://habr.com/ru/articles/1008824/
#Delphi_7 #Pascal #WinAPI #Защита_программного_обеспечения #Обфускация #Антиотладка #Ретро #x86 #Программирование
-
Голосовой ввод для Windows через Vosk своими руками
Я пытался найти в Windows похожий встроенный инструмент или готовое решение, но все они либо брали на себя слишком много неактуального для меня функционала, так как задумывались для людей с ограниченными возможностями, либо были платными, либо были недоступны для русского языка. Лучшим выходом из моей ситуации было создать свое минималистичное решение, и вот как это было:
https://habr.com/ru/articles/969360/
#vosk #распознавание_речи #speechtotext #python #голосовые_интерфейсы #winapi
-
far2l в Ubuntu 25.04: наконец-то GUI-версия из коробки
Исторически первая версия far2l — порта Far Manager на Linux, BSD и Mac, была реализована как графическое приложение. Терминалы той эпохи не умели ни передавать приложению некоторые сочетания клавиш (такие как Control+Enter), ни давать ему возможность взаимодействия с буфером обмена. Кому же нужен Far без этих возможностей? Поэтому пришлось сделать своё собственное консольное окно со своим собственным рендерингом текста — да, усложнение, зато всё сразу заработало «как-в-Винде» (а потом и консольную версию сделали тоже). И сегодня мы празднуем историческое событие: графическая версия, наиболее полная в плане соответствия UX Windows-версии, попала, наконец, в официальные репозитории Ubuntu:
https://habr.com/ru/articles/903796/
#far_manager #far #linux #file_manager #фар #macos #bsd #winapi #ubuntu #консоль
-
far2l в Ubuntu 24.04 LTS готов для повседневного использования
Несколько дней назад вышло обновление, устраняющее последние шероховатости UX, и мы рады представить вам долгожданный полноценно работающий Far Manager в составе LTS-версии Ubuntu 24.04! В этой статье я расскажу, как получить максимум удовольствия от его использования. Поехали! sudo apt update sudo apt install far2l
https://habr.com/ru/articles/845998/
#far_manager #far #linux #file_manager #фар #macos #bsd #winapi #ubuntu #консоль
-
CIMCO Edit для Windows 7
Windows 10 нинужон! Запускаем 3D симуляцию самого популярного в мире редактора УП для станков с ЧПУ CIMCO Edit 2025 (2025.01.25) в операционной системе Microsoft Windows 7 . И ещё переводим на русский язык саму программу. Читать далее всё это безобразие...
https://habr.com/ru/articles/980632/
#CIMCO #windows_7 #crack #winapi #licensing #c++ #cad #cam #чпу #русский_перевод
-
Assembler для Windows в Visual Studio. Часть вторая — MASM x64 и юникод
Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простого консольного REPL'а, а ещё как обойтись без Visual Studio и пользоваться masm просто из командной строки. Первая часть — Assembler для Windows в Visual Studio .
https://habr.com/ru/companies/ruvds/articles/884240/
#assembler #masm #winapi #windows #visual_studio #64bit #ruvds_статьи
-
Мониторинг CPU + RAM в трее. Часть 2
Я хотел видеть состояние своих CPU и ОЗУ прямо в трее панели задач, чтобы не открывать дополнительные окна, по типу cpuz или CoreTemp. Решил написать свою фоновую программу с возможностью настроек и вот что получилось. Интересно!
https://habr.com/ru/articles/938430/
#C++ #winapi #мониторинг #десктоп #программирование #gdi+ #софт
-
Утечка хендлов в IP Helper API: как мы нашли и обошли ещё один баг Windows
После статьи о баге в CancelIoEx решил рассказать ещё об одном дефекте в системных компонентах Windows — на этот раз в IP Helper (часть Windows API, отвечающая за работу с сетевой статистикой и таблицами соединений). Этот API, среди прочего, даёт возможность сопоставлять перехваченные на уровне сети пакеты с локальными процессами. Казалось бы, проверенный механизм, который работает «под капотом» множества утилит и сетевых фильтров. Но в ходе тестирования WireSock Secure Connect в режиме split tunneling по процессам мы наткнулись на утечку, способную за считанные минуты выбить лимит хендлов в системе. Поводом для расследования стало сообщение в нашей группе поддержки WireSock в Telegram: один из пользователей заметил аномально быстрый рост числа открытых дескрипторов процессов. Проблема стабильно воспроизводилась под нагрузкой и исчезала, если использовать фильтрацию по IP-адресам. Это стало первой зацепкой, которая в итоге вывела нас на баг в реализации IP Helper. Отдельное спасибо пользователю @dno5iq , который обнаружил проблему, выполнил реверсинг GetOwnerModuleFromPidAndInfo и помог подтвердить наличие дефекта в её реализации.
https://habr.com/ru/articles/935610/
#windows_api #wiresock #vpn #winapi #reverse_engineering #системное_программирование #proxifyre #ip_helper #split_tunneling #handle_leak
-
Мониторинг CPU и RAM на панели задач C++
Приветствую читателя этой статьи. Я студент, учусь по направлению «Приборостроение», но большую часть времени занимаюсь программированием. Все таки это меня привлекает больше. Задумывался по поводу смены ОС на Arch Linux, но пока отложил эту затею в долгий ящик. Смотрел различные ролики на YouTube и заметил, что многие пользователи ставят себе Polybar, в котором можно легко настраивать информацию, выводимую на нечто похожее на Панель задач в Windows. Тогда я подумал «А почему бы не сделать такое в винде?!» и сразу начал гуглить что к чему. Попытался найти готовые аналоги, но ничего не впечатлило, поэтому решил написать свою программу на C++.
-
Проект выходного дня: экранные линейки
. Привет, Хабр! Хочу поделиться историей как я портировал свой (очень)старый пет-проект с Delphi 7 на Zig с помощью LLM. Утилиты rulers (экранные линейки, «как в фотошопе»). В 2007 году это был простой инструмент для замеров и выравнивания элементов интерфейса прямо на экране, написанный на Delphi. Почти два десятилетия спустя я решил воскресить его, но с современным подходом: портировать на zig, да ещё и задействовав LLM для автоматизации. Почему? Потому что я реально фанатею от языка zig, и руки так и чешутся на нём что-то написать. Но переписывать не маленький кусок старого кода — занятие довольно унылое, и я всё откладывал его в «долгий ящик». С другой стороны, я, как реальный ИИ-скептик, с сомнением отношусь к новомодному вайб-кодингу и не доверяю таким инструментам. Но, всё же я решил рискнуть и попробовать, если не для написания нового кода, то хотя-бы для портирования уже написанного. Наверное, шанс на успех тут будет выше. Эта статья о том, что у меня получилось (и не получилось).
-
Баг SRWLock в Windows вешает многопоточные программы
std::shared_mutex — стандартный примитив синхронизации, появившийся в C++17, призванный упростить реализацию паттерна «многие читатели — один писатель». Однако, как показывают некоторые практические кейсы, его реализация на Windows, использующая SRWLock (Slim Reader/Writer Lock), может привести к серьёзным проблемам: в определённых ситуациях многопоточное приложение может зависнуть (дедлок).
-
Разработка служб для Windows на C++
В данной статье описан пошаговый процесс разработки служб для операционной системы Windows с использованием языка программирования C++. В статье будет представлена теоретическая база по работе служб в Windows, рассмотрено их общее устройство и будет реализовано приложение, с помощью которого можно будет устанавливать свою службу, запускать её, останавливать и удалять (деинсталлировать).
-
Как я учил войс чат дискорда работать через прокси с помощью перехвата системных вызовов и DLL Hijacking
Я, как и многие, пользуюсь дискордом и китайскими прокси клиентами, но, к сожалению, голосовой чат дискорда не поддерживает работу через прокси. Из-за этого постоянно приходится включать режим TUN/VPN, который заворачивает в туннель много лишнего. Можно ли с этим что-то сделать? Конечно! Добро пожаловать под кат, там вас ждет готовое решение и куча технических подробностей. Пожаловать под кат
https://habr.com/ru/articles/855164/
#discord #reverse_engineering #dll_hijacking #winapi #прокси #socks5 #google_chrome #hooks #windows #c++
-
Ретрансляция Kerberos. Как работает RemoteKrbRelay
В Windows Active Directory существует протокол Kerberos, который считается безопасным и неуязвимым к Relay-атакам. Или всё-таки...? В статье автор погрузился в глубины аутентификации Windows, DCOM и рассказал об инструменте RemoteKrbRelay. Изучить
https://habr.com/ru/articles/848542/
#winapi #kerberos #pentest #relay #hacking #тестирование_на_проникновение #windows_ad #active_directory_pentest
-
Волк в овечьей шкуре — как атакующие эксплуатируют CVE-2023-38831 в WinRAR
Привет, Хабр! Меня зовут Илья Ефимов, я аналитик-исследователь угроз кибербезопасности в компании R-Vision. Моя статья будет посвящена разбору уязвимости CVE-2023-38831 в архиваторе WinRAR . Эта уязвимость активно используется хакерами в атаках на отечественные компании. В отчете компании BI.ZONE фиксируется информация, что злоумышленники из групп Cobalt Werewolf, Mysterious Werewolf использовали данную уязвимость для доставки вредоносной полезной нагрузки. В этом случае уязвимость эксплуатировала вредоносный архив при доставке фишингового письма. Схожую информацию предоставляют исследователи из Positive Technologies , связав активность группировки ExCobalt с эксплуатацией CVE-2023-38831. Также фиксировались случаи эксплуатации данной уязвимости ВПО Agent Tesla и DarkMe . Стоит отметить, что по данным компании Kaspersky в 2024 году данная уязвимость занимает третье место по частоте эксплуатации атакующими в России и странах СНГ. В своей статье я опишу, в чем заключается суть уязвимости, продемонстрирую её эксплуатацию, а также генерируемые события по активности. Затем я подробно опишу процесс детектирования уязвимости и определю основные артефакты с помощью R-Vision SIEM. Смотреть
https://habr.com/ru/companies/rvision/articles/837632/
#winrar #cve202338831 #уязвимости #siem #correlation_rule #winapi #windbg
-
Ему не место на помойке: хакаем 15-летний электронный переводчик и пишем под него приложения
Дисклеймер : Статья очень подробная и во всех красках "простым языком" описывает процесс хакинга и программирования под такой необычный девайс. Так что даже если вас не интересуют электронные переводчики и минипк, статья может оказаться для вас занимательной! Я всегда любил находить новые применения стареньким девайсам, даже если обход защиты и разработка для них чего-то полезного занимала у меня некоторое время. И если с прошлыми моими статьями, где я привносил новую жизнь смартфонам на Android 2.3, а затем и на Android 1.5, всё понятно - девайсы получили возможность не только быть звонилками, но и вполне полноценными смартфонами, то в случае таких необычных девайсов, как электронные переводчики - всё гораздо интереснее, ведь по сути, это дешёвые альтернативы таким легендарным устройствам, как HP Jornada! Недавно я купил переводчик Ectaco за 1.500 рублей на Windows CE, обошел встроенную оболочку, написал программу, которая твикает реестр и даже портировал туда эмулятор NES. Интересно узнать об этом процессе во всех подробностях? Тогда добро пожаловать под кат!
https://habr.com/ru/companies/timeweb/articles/840418/
#bodyawm_ништячки #bodyawm_программирование #переводчик #моддинг #кастом #программирование #хакинг #C #Windows #WinAPI
-
«Бобер выдыхай»: Go, WinAPI и ассемблер
Что вам приходит в голову при слове «Golang»? Google и микросервисы? Я тоже так думал, но реальность оказалась значительно интересней.
-
Реверс алгоритма поиска устройств в сети
При создании оконного клиента под MS-Windows для удалённого взаимодействия с LED-матрицами стояла задача сделать автоматический поиск всех табло в сети. Моей первой идеей было перебирать все существующие IP-адреса конкретной подсети, по очереди посылая на них запросы и ожидая что одно или несколько устройств отправят соответствующий ответ. Я быстро отказался от этой задумки, ведь подобный брутфорс будет сильно нагружать сеть, да и сам алгоритм не самый быстрый. Других идей по реализации на тот момент у меня не было. Мне предоставили копию другого клиента, где поиск осуществляется моментально по нажатию одноимённой кнопки, а приложение в табличном виде выводит IP и MAC-адреса с рядом другой информации об обнаруженных матрицах, если таковые нашлись. Эти данные затем могут быть использованы для подключения, конфигурации и отправки команд на найденные устройства. Не имея исходного кода, я подготовил дизассемблеры, отладчики и hex-редакторы, готовясь к глубокому анализу и разбору проприетарного алгоритма поиска, чтобы реализовать что-то подобное уже в своей программе.
https://habr.com/ru/articles/830582/
#декомпиляция #дизассемблирование #обратная_разработка #winapi #сокеты #сетевое_программирование #низкоуровневое_программирование #ida_pro #x64dbg
-
People implementing WinAPI libraries for languages should take into account how to auto-import by name.
If I type in my code editor: WM_MAXIMIZE, FindWindowEx, LoadImageW, PostMessage, and so on, how do I auto-import it from your library?
With Rust and window-rs it's constant looking up the docs for features to import. That is highly inconvenient compared to how it was with C.
-
I have FINALLY figured out how to ungroup a single window from taskbar. Now I can do the PWA style Firefox windows like in Chrome.
1. SHGetPropertyStoreForWindow to ungroup a single window in TaskBar
2. WM_SETICON to set a new icon to the taskbar. -
Погружаемся в PEB. DLL Spoofing
В предыдущей статье мы в первом приближении рассмотрели PEB и разобрались, как подменить аргументы командной строки. Продолжая разбираться с PEB, рассмотрим еще один способ повлиять на исполнение программы, и попробуем подменить вызываемую из DLL функцию.
-
I take back everything bad I said about rpaths and sonames.
Turns out LoadLibraryExW is like 1000 times worse
#sharedLibraries #dynamicLinking #softwareEngineering #win32 #winapi #dlls
-
Bad Apple на значках рабочего стола — работаем с WinAPI
В рамках статьи, будем запускать Bad Apple на значках рабочего стола, познакомимся с различными API (COM, WinAPI, GDI+), поработаем в ffmpeg Поехали
-
BTW the specific #win32-api-braindamage that hit me in #dos2ansi 1.0 was FlushFileBuffers(): https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-flushfilebuffers
Sure, my fault not to read the *whole* docs before using it and just assuming sane semantics 🙈:
> The function fails if _hFile_ is a handle to the console output. That is because the console output is not buffered.
Okayyyy. I mean, not *having* to know what some "handle" used to do I/O is referring to exactly is kind of the whole point of any I/O abstraction, at least I thought so. Any API I've seen so far would just make it a no-op (and, of course, succeed) in such a case. 🤯
-
«Пиратский» Google Chrome в Microsoft Windows 7 год спустя. И примкнувший к ним MS EDGE, Opera, Brave. Полная версия
Пиратство растёт, милорд! Google Chrome для Windows 7 - детальный технический отчёт, каким образом актуальная версия популярнейшего браузера всё равно работает в «семёрке» даже спустя год после официального прекращения её поддержки корпорацией. Реакция Google LLC или почему пиратство только набирает обороты?
https://habr.com/ru/articles/789120/
#google_chrome #debugger #crack #piracy #windows_7 #windows_10 #assembler #winapi #sandbox
-
Как я создавал автокликер для приложения «ДругВокруг»
Социальные сети и мессенджеры последнее время завоевали большую популярность среди пользователей интернета. Одной из таких соцсетей было приложение «ДругВокруг». Точнее, было в моём обиходе. Стояло оно у меня на компьютере с Windows XP в 2016 году. В то время у меня возникла идея сделать одну интересную программу для работы с этим приложением...
https://habr.com/ru/articles/784414/
#ДругВокруг #winapi #winhex #социальные_сети #windows_xp #whatsapp
-
Assembler для Windows в Visual Studio. Часть вторая — MASM x64 и юникод
Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простого консольного REPL'а, а ещё как обойтись без Visual Studio и пользоваться masm просто из командной строки. Первая часть — Assembler для Windows в Visual Studio .
https://habr.com/ru/companies/ruvds/articles/884240/
#assembler #masm #winapi #windows #visual_studio #64bit #ruvds_статьи
-
Assembler для Windows в Visual Studio. Часть вторая — MASM x64 и юникод
Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простого консольного REPL'а, а ещё как обойтись без Visual Studio и пользоваться masm просто из командной строки. Первая часть — Assembler для Windows в Visual Studio .
https://habr.com/ru/companies/ruvds/articles/884240/
#assembler #masm #winapi #windows #visual_studio #64bit #ruvds_статьи
-
Assembler для Windows в Visual Studio. Часть вторая — MASM x64 и юникод
Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простого консольного REPL'а, а ещё как обойтись без Visual Studio и пользоваться masm просто из командной строки. Первая часть — Assembler для Windows в Visual Studio .
https://habr.com/ru/companies/ruvds/articles/884240/
#assembler #masm #winapi #windows #visual_studio #64bit #ruvds_статьи
-
Реверс алгоритма поиска устройств в сети
При создании оконного клиента под MS-Windows для удалённого взаимодействия с LED-матрицами стояла задача сделать автоматический поиск всех табло в сети. Моей первой идеей было перебирать все существующие IP-адреса конкретной подсети, по очереди посылая на них запросы и ожидая что одно или несколько устройств отправят соответствующий ответ. Я быстро отказался от этой задумки, ведь подобный брутфорс будет сильно нагружать сеть, да и сам алгоритм не самый быстрый. Других идей по реализации на тот момент у меня не было. Мне предоставили копию другого клиента, где поиск осуществляется моментально по нажатию одноимённой кнопки, а приложение в табличном виде выводит IP и MAC-адреса с рядом другой информации об обнаруженных матрицах, если таковые нашлись. Эти данные затем могут быть использованы для подключения, конфигурации и отправки команд на найденные устройства. Не имея исходного кода, я подготовил дизассемблеры, отладчики и hex-редакторы, готовясь к глубокому анализу и разбору проприетарного алгоритма поиска, чтобы реализовать что-то подобное уже в своей программе.
https://habr.com/ru/articles/830582/
#декомпиляция #дизассемблирование #обратная_разработка #winapi #сокеты #сетевое_программирование #низкоуровневое_программирование #ida_pro #x64dbg
-
Реверс алгоритма поиска устройств в сети
При создании оконного клиента под MS-Windows для удалённого взаимодействия с LED-матрицами стояла задача сделать автоматический поиск всех табло в сети. Моей первой идеей было перебирать все существующие IP-адреса конкретной подсети, по очереди посылая на них запросы и ожидая что одно или несколько устройств отправят соответствующий ответ. Я быстро отказался от этой задумки, ведь подобный брутфорс будет сильно нагружать сеть, да и сам алгоритм не самый быстрый. Других идей по реализации на тот момент у меня не было. Мне предоставили копию другого клиента, где поиск осуществляется моментально по нажатию одноимённой кнопки, а приложение в табличном виде выводит IP и MAC-адреса с рядом другой информации об обнаруженных матрицах, если таковые нашлись. Эти данные затем могут быть использованы для подключения, конфигурации и отправки команд на найденные устройства. Не имея исходного кода, я подготовил дизассемблеры, отладчики и hex-редакторы, готовясь к глубокому анализу и разбору проприетарного алгоритма поиска, чтобы реализовать что-то подобное уже в своей программе.
https://habr.com/ru/articles/830582/
#декомпиляция #дизассемблирование #обратная_разработка #winapi #сокеты #сетевое_программирование #низкоуровневое_программирование #ida_pro #x64dbg
-
Как я создавал автокликер для приложения «ДругВокруг»
Социальные сети и мессенджеры последнее время завоевали большую популярность среди пользователей интернета. Одной из таких соцсетей было приложение «ДругВокруг». Точнее, было в моём обиходе. Стояло оно у меня на компьютере с Windows XP в 2016 году. В то время у меня возникла идея сделать одну интересную программу для работы с этим приложением...
https://habr.com/ru/articles/784414/
#ДругВокруг #winapi #winhex #социальные_сети #windows_xp #whatsapp
-
Разработка служб для Windows на C++
В данной статье описан пошаговый процесс разработки служб для операционной системы Windows с использованием языка программирования C++. В статье будет представлена теоретическая база по работе служб в Windows, рассмотрено их общее устройство и будет реализовано приложение, с помощью которого можно будет устанавливать свою службу, запускать её, останавливать и удалять (деинсталлировать).
-
Разработка служб для Windows на C++
В данной статье описан пошаговый процесс разработки служб для операционной системы Windows с использованием языка программирования C++. В статье будет представлена теоретическая база по работе служб в Windows, рассмотрено их общее устройство и будет реализовано приложение, с помощью которого можно будет устанавливать свою службу, запускать её, останавливать и удалять (деинсталлировать).