@den335 нет
Как обойти ввод пин-кода в всплывающие окно Windows Hello?
-
Думаю у многих когда-то будет такая проблема (но может кто-то уже знает) - как обойти ввод пин-кода (пароля) в всплывающие окно Windows Hello?

Обычный сайт вызывает это окно (он хочет хранить важную инфу на компе). Хочу сделать эту тему ответом для всех (а то других таких тем нет).
Вот кстати что сайт вызывал-бы на разных устройствах:
iOS + MacOS - iCloud Keychain
Android - Google Password Manager
Windows - Windows HelloЩас пока сам ищу как, а то создавать какой-то exe который будет вводить пароль это такой костылище (а сам ввод пароля в Windows Hello вроде не отключишь)
-
Вот на py можно использовать в BAS через бесплатный python модуль или переписать его под бесконечную работу и вручную запустить не через BAS
from pywinauto import Application import time # Подключаемся к приложению app = Application(backend="uia").connect(path="CredentialUIBroker.exe") # Найдём окно window = app.window(title_re=".*") # Подключение по регулярному выражению для окна # Сразу минимизируем окно, чтобы оно не перехватывало фокус window.minimize() # Ищем поле ввода PIN-кода (элемент типа "Edit") pin_input = window.child_window(control_type="Edit") if pin_input.exists(): pin_input.set_text("ВАШ_КОД_WINDOWS_ПОЛЬЗОВАТЕЛЯ") # Ждем пару секунд time.sleep(2) -
This post is deleted!
-
Вот итоговый вариант который я юзаю
import sys import time import psutil from pywinauto import Application def is_process_running(process_name): for proc in psutil.process_iter(['name']): if proc.info['name'] == process_name: return True return False def main(): # Ожидание когда окно запустится while not is_process_running("CredentialUIBroker.exe"): time.sleep(1) # После запуска подключаемся и отправляем в фон app = Application(backend="uia").connect(path="CredentialUIBroker.exe") window = app.window(title_re=".*") window.minimize() # Ищем поле ввода PIN-кода (элемент типа "Edit") pin_input = window.child_window(control_type="Edit") if pin_input.exists(): pin_input.set_text("ВАШ_WINDOWS_ПАРОЛЬ") # Ждем пару секунд time.sleep(2) if __name__ == "__main__": main() -
@SatoshiMoto можешь кинуть шаблон бас скрипта, который у тебя работает? У меня ни в какую не хочет взаимодействовать с этим окном. чатгпт говорит, что оно защищено от автоматизированного ввода и такой скрипт не будет работать.
UPD. работает с виндовс хелло в гугл хром, но не работает с окном виндовс хелло, что создается в басе
-
@cruz Смотри замени пароль ниже на свой, установи библиотеки (в py библиотеки доступны всему пк удобно). И просто запусти код не через BAS (я в Visual Studio Code) он будет каждые 5 сек (можешь уменьшить) проверять окно и как только оно появится мгновенно введет пароль (даже мешать тебе визуально не будет), работает бесконечно пока консоль не оффнешь (но если что одновременно можно открыть только 1 Windows Hello окно - тоесть если у тебя в BAS мультипоток ты сам должен сделать чтоб разные потоки одновременно не открывали Windows Hello, а с задержкой в пару сек)
import sys import time import psutil from pywinauto import Application def is_process_running(process_name): for proc in psutil.process_iter(['name']): if proc.info['name'] == process_name: return True return False def main(): pin_code = "ВАШ_WINDOWS_ПАРОЛЬ" while True: if is_process_running("CredentialUIBroker.exe"): try: app = Application(backend="uia").connect(path="CredentialUIBroker.exe") window = app.window(title_re=".*") window.minimize() pin_input = window.child_window(control_type="Edit") if pin_input.exists(): pin_input.set_text(pin_code) except Exception as e: print(f"Ошибка: {e}") time.sleep(5) # Проверять процесс каждые 5 секунд if __name__ == "__main__": main() -
Если что я нашел решение для всех (расширение написал за 2 дня (40 часов, потно так-то было), оно перехватывает WebAuthn запросы у браузера, подписывает, возвращает сайту) в итоге до windows ... они не доходят, работает идеально (но бесплатно скинуть как минимум пока не готов)
-
@SatoshiMoto И правильно считает и каждый кто Любит разработку должен дойти сам до этого и ещё умней тем самым будет.
-
Почти год прошел - вот держите WebAuthn_spoof_my_browser_extension.rar расширение (если кому-то нужно) оно автоматически подписывает WebAuthn запросы, поддерживает все существующие 3 типа подписи, сохраняет ключ (тот ключ который Windows хранит не удаляя в сверх защищенном TPM) в LocalStorage поле webauthn_credentials текущего сайта на котором работаете (если хотите использовать позже webauthn без регистрации нового ключа - нужно достать ключ из LocalStorage и сохранить, ну и собственно потом в будущем нужно добавить ключ обратно в LocalStorage, или просто использовать BAS как профили - расширение всегда использует ключ иза хранилища текущего сайта, которое при использовании профилей не удаляется)