Кодерская мастерская
137 subscribers
1 photo
14 files
39 links
Блог Данила Пылаева
Download Telegram
Новый пост в рубрике "Оно сломалось"!
Получилось, кажется, чересчур затянуто, пожалуй в будущем буду меньше говорить и больше делать. Если что расшифровка будет в комментах.
Как сбросить пароль пользователя windows из командной строки

Многие знают, что командой
net user username password можно задать пароль пользователя, но непонятно, как его сбросить, ибо выполнение команды без последнего аргумента к желаемому результату не приводит.

Лет 5 назад я гуглил этот вопрос, но так ничего и не нашёл.

А сейчас, уже имея некоторый опыт работы с консольными программами, решил попробовать на удачу вместо пароля задать две кавычки, и это действительно сработало.

Проверил на седьмой винде, в ней тоже фокус удался, так что видимо плохо я гуглил.

А ещё для любителей секьюрной безопасности есть интересная фишка: можно вместо пароля задать звёздочку, и тогда винда запросит ввод пароля прямо в консоли, при таком способе не будут отображаться вводимые символы, пароль не сохранится в истории выполненных команд, а также он будет запрошен дважды, что минимизирует вероятность ошибки ввода.

#ХакВоБлаго
Проявления профдеформации

Поздней ночью читал книгу, посмотрел время: 05:03.
Сонный мозг переварил информацию и выдал следующую мысль: "Service unavailable, наверное пора спать..."
Bluetooth наушники с агрессивным энергосбережением плюс телефон со скринридером, и на экране быстрых настроек неожиданно появляется нарик.
👍1🔥1
Пробник факапа

Только что я опрокинул кружку, в которой две минуты назад была кола.
Кружка стояла на столе около компа, а опрокинулась невероятно чётко впритык с телефоном.
Причём впритык к нижнему торцу, на котором Type C и mini-jack.
И если бы там оставалось хотя бы миллилитров 30...

В общем в очередной раз я доказал, в первую очередь самому себе: нехер держать жидкость в открытых ёмкостях на рабочем месте, т.к. рано или поздно происходит неизбежный сценарий, поставил -> отвлёкся -> забыл, что поставил -> смахнул -> понёс пк в ремонт.
🔥1
Audio
Я вот баг нашёл. А вы?
Осторожно! Оно шумное!
Windows из будущего

Ставлю на виртуальную машину windows 11, и на экране выбора ISO файла получаю следующее:

Installer disc image file (iso):
D:\temp\Windows11-24h2.iso
Browse...
Windows Server 2025 detected.


Да, я погуглил и выяснил, что server 2025 действительно существует, и даже можно поставить превьюшку, но тем не менее - это забавно.
Константы

Мне поступил feature request на реализацию ограничений частоты отправки сообщений в чат Snow war.
И я первый раз в жизни использовал константы в bgt.

const int PLAYER_CHAT_MESSAGE_LIMIT_TIME = 1000;
const int VIEWER_CHAT_MESSAGE_LIMIT_TIME = 5000;


Всем спасибо за внимание. Можете устроить холивар в комментах на тему необходимости использования констант.
Дело было в августе, мучал свою клавиатуру и кое-какой софт, в попытках изобрести мониторинг уровня заряда батареи, ибо они разряжаются, как правило, в самый неподходящий момент.
Колупался с этим 3 дня и уже почти бросил, разок намертво повесил донгл клавиатуры, но всё же результат в виде nvda-аддона получил.
И вот сейчас таки выстрелило, пришло оповещение "Keyboard battery level reached 20%", и пока я его не скипну, будет каждую минуту меня долбить, т.е. пропустить его не реально.
А стало быть не зря колупался. Такие вот дела.
Взломал сам себя, ну почти

Имеется значит следующий сетап: мини пк с Home assistant, маршрутизатор и провайдер, дающий серый ip за натом.

Также имеется два сервера с разумеется белыми ip, один из которых в москве.

Из мини пк выходят 2 реверс-туннеля, первый идёт на сервер, который в москве, там для него настроен nginx с блэкджеком и сертификатами, выходит туннель в виртуалку, в которой стоит home assistant.
Этот туннель нужен, чтобы yandex мог как можно быстрее передать команду в home assistant, т.е. чтобы цепочка Алиса -> сервер yandex в москве -> home assistant -> целевое устройство, отрабатывала с минимальными задержками.
Второй реверс-туннель уходит на сервер НЕ в москве, он смотрит на порт ssh хост-системы, т.е. позволяет получать удалённый доступ к машине за натом.

Так вот вчера выяснилось, что Алиса перестала управлять устройствами, небольшое расследование привело к реверс-туннелю в Москву, который перестал подниматься.
А перестал подниматься он потому, что, по какой-то причине, изменились ключи sshd на сервере, который, кстати, мне не принадлежит, мне просто там выделен юзер для туннеля, по дружбе так сказать.
Владелец сервера сказал, что херегознает почему там эти ключи сменились, и что просто надо их дропнуть и зааксептить новые.

Ну полез я в файл known_hosts, а там что-то то ли зашифрованное, то ли закодированное, в общем нельзя так с ходу понять, какая строка за какой хост отвечает.
И что же я сделал? Правильно, rm .ssh/known_hosts, т.е. удалил файл со всеми когда либо встреченными хостами.
Потом сходил по ssh на Московский сервер, принял ключ сервера, убедился, что туннель поднялся и забыл об этой истории.
Прошло около 20 часов, в том числе прошло и 5 часов утра, когда провайдер забрал у меня дефицитный ip и выдал мне новый, т.е. все открытые с внешним миром соединения были безвозвратно разорваны.

И после того, как это всё случилось, я попытался с какой-то целью попасть в мини пк, на что получил:
channel 0: open failed: connect failed: Connection refused
stdio forwarding failed
Connection closed by UNKNOWN port 65535

Что за херня?! Наверное надо просто нажать ещё раз... Но результат не изменился.
Пара минут попыток достучаться хоть куда-то наконец привела меня к следующему выводу: после удаления known_hosts я зааксептил ключ московского сервера, но забыл про другой сервер, через туннель к которому и ходил по ssh.
Туннель для ssh благополучно оставался открытым до смены ip, но после неё попытка реконнекта не удалась, т.к. ключа в known_hosts уже не было.

Поразмышляв о способах восстановления доступа сначала решил, что удалённо его вернуть не получится, но после кружки чая вдруг придумал штуку.

Вот есть у нас мини пк, из него торчит туннель, он приходит в nginx, а из него мы можем попасть в home assistant.
Home assistant стоит внутри qemu, и попадая внутрь, мы попадаем, по факту, в виртуалку, не на хост.
Виртуалка тоже сидит за собственным натом, но, в теории, если постучаться в шлюз, то можно достучаться как раз до хоста, если оно фаерволом не закрыто.
В home assistant установлен аддон для доступа к нему по ssh, вот только толку вроде от этого не очень много, ибо проклятый нат, причём двойной, а в каком-то смысле даже тройной (isp -> router -> vm).
Но изучив панельку аддона я выяснил, что у него имеется веб-интерфейс, т.е. можно получить доступ в виртуалку через веб.
На самом деле не в виртуалку, а в докер-контейнер, но это не сильно важно для моего мува.
И так открыл я этот web ui, разумеется нифига не доступно, но с windows ocr что-то понять можно.
Постучался на ssh по адресу шлюза и о чудо, оно живое! Оно мне ответило!
А дальше всё просто и вполне секьюрно (нет). Вставить из буфера обмена туда не получилось, поэтому раздал приватный ключ на весь интернет, скачал его курлом в вм, зашёл по ssh в хост, зашёл по ssh в туннель, зааксептил хост и туннель восстановился.

Во всей этой истории меня слегка волнует только тот факт, что у qemu-машины по-дефолту есть доступ в хост, конечно виртуалка и sandbox - не одно и тоже, но всё же... В общем надо будет прикрыть это дело.
Кодерская мастерская
Дело было в августе, мучал свою клавиатуру и кое-какой софт, в попытках изобрести мониторинг уровня заряда батареи, ибо они разряжаются, как правило, в самый неподходящий момент. Колупался с этим 3 дня и уже почти бросил, разок намертво повесил донгл клавиатуры…
А толку то в итоге не очень много, сели аккумы посреди катки в Ball bouncer, кое-как вырулил.
Но с другой стороны, на осознание проблемы ушло гораздо меньше времени, чем если бы я не знал о низком заряде, так что польза какая-то определённо есть.
Сегодня мне приснилось, что я нашёл где-то палёные сосиски с неприятным привкусом, и для его исправления в них нужно было загрузить 200 килобайтную прошивку с помощью программатора.
Программатор представлял собой круглую штуку, похожую на таблетку, размером примерно с CR2032, я заказал его с алика за 1300 рубасов, залил прошивку по nfc.
Далее программатор закидывается в кастрюлю с варящимися сосисками, после завершения готовки оттуда извлекается и может быть переиспользован.
Всем спасибо за внимание.
👍3🔥2
dev-версия аддона Volume Manager теперь в магазине дополнений!
Желающие могут потестировать на свой страх и риск, документации пока нет, на данный момент возможности такие.
nvda+shift+v, вкл / выкл оверлея.

В оверлее следующие возможности:
Стрелки влево / вправо: перемещение по звуковым сессиям / устройствам ввода вывода.
Т.е. master volume теперь output device, и добавлен input device (микрофон).
m: заглушение выбранной сессии, например браузера, или устройства, то есть микрофона или динамиков / наушников.
Стрелки вверх / вниз: добавить / убавить 1 процент громкости.
page up / page down: добавить / убавить 5 процентов громкости.
home / end: 100 / 0 процентов громкости.
Цифры от 1 до 9: установка от 10 до 90% громкости соответственно.
0: установка 100% громкости.
ctrl+up / ctrl+down: переключение доступных для смены устройств.
ctrl+right: установка выбранного устройства как устройства по умолчанию.
Для устройств ввода / вывода этот функционал должен работать с windows 8, для других сессий - с той версии windows, в которой эту фичу завезли. Если не ошибаюсь, это случилось в версии windows 10 1803.
d: переключить тип изменяемых устройств input / output.
Т.е. если нужно поменять микрофон у chrome, находим left / right chrome.exe, потом d, чтобы переключиться на input devices, затем ctrl+up / ctrl+down находим нужный микрофон и ctrl+right применяем.
Диалог, открываемый по пробелу удалён за ненадобностью, если вы считаете, что он нужен, то открывайте issue на github, или пишите сюда в комменты, обсудим.
А вот не будет заголовка у поста, и объяснения не будет. Сами догадайтесь, что не так. Такая вот субботняя загадка.
Welcome to Ubuntu 24.04.1 LTS (GNU/Linux 6.8.0-1021-aws x86_64)

* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro

System information as of Sat Jan 18 16:39:45 UTC 2025

System load: 0.15 Temperature: -273.1 C
Usage of /: 53.4% of 57.97GB Processes: 129
Memory usage: 58% Users logged in: 0
Swap usage: 42% IPv4 address for ens5: 172.21.66.17

* Ubuntu Pro delivers the most comprehensive open source security and
compliance features.

https://ubuntu.com/aws/pro

Expanded Security Maintenance for Applications is not enabled.

12 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

Enable ESM Apps to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status


Last login: Sat Jan 18 16:34:35 2025 from x.x.x.x
user@host:~$
Кодерская мастерская
aidaMenu-0.0.1.nvda-addon
Запоздалое дополнение к посту с дополнением Aida Menu.
Вот я задействовал Be my ai, логику и научный тык одновременно, потратил около получаса своего времени, написал замечательный аддон, чтобы воспользоваться им полтора раза, и вроде круто, да? Ведь ну я не пользуюсь, а кто-то другой может пользуется.
Правда есть один нюанс, я узнал о нём через пару недель после создания аддона, но как-то позабыл и пишу вот только сейчас.
Так вот: это самое замечательное меню с настройками и тестами, оказывается, можно открыть из иконки аиды в трее. Да, она там неожиданно есть, сам случайно выяснил.
Это конечно чуть дольше, чем открывать менюшку прямо из окна, но если бы я знал об этом изначально, аддона, очевидно, не было бы.
Также потихоньку начал закидывать дополнения в магаз, ставьте реакцию палец вверх, если хотите видеть aida menu там.
👍2
Обновляем git for windows

Сегодня я совершенно неожиданно узнал, что git for windows умеет обновлять сам себя!
Открываем ваш любимый shell, пишем git update-git-for-windows, и всё. Вообще всё, после этого нужно просто дать согласие на обновление, и оно скачается и установится.
И не то чтобы его надо было часто обновлять, как правило я его ставлю сразу после установки винды, и ничего с ним не происходит до следующей переустановке, однако само наличие фичи оказалось для меня неожиданным.
Кодерская мастерская
Обновляем git for windows Сегодня я совершенно неожиданно узнал, что git for windows умеет обновлять сам себя! Открываем ваш любимый shell, пишем git update-git-for-windows, и всё. Вообще всё, после этого нужно просто дать согласие на обновление, и оно скачается…
Очень важное дополнение к предыдущему посту!
При обновлении git for windows описанным способом он затирает глобальный конфиг! Не наступите на мои грабли!
И в рот я наоборот такие апдейты вертел, так вам скажу. Я понятия не имею, что было в этом конфиге, ну то есть editor там был прописан, но скорее всего что-то ещё, и бэкапа у меня нет, я даже и не подумал эту директорию в бэкап включать, ибо туда никто кроме меня не залезет, ага-ага.