Кодерская мастерская
137 subscribers
1 photo
14 files
39 links
Блог Данила Пылаева
Download Telegram
На каком сервере будем играть? Разницы между ними никакой нет, отличается только название.
Final Results
45%
Барсик
14%
Горыныч
14%
Кеша
17%
Кузя
10%
Мурзик
systemctl restart coding_workshop

Давненько ничего сюда не писал, в ближайшее время постараюсь это исправить.
Тем для постов набралось много, поэтому мне осталось всего лишь победить лень 🙂
Мегапост

Написал пост про модификацию прошивки роутера, пытаюсь запихнуть в telegraph, кнопка publish не прожимается, и ошибок вроде нет.
Попробовал отправить через API, а там...

{"ok": false, "error": "CONTENT_TOO_BIG"}

Придётся на две части делить.

#ОноСломалось
Модификация прошивки роутера D-Link DIR-822

Под новый год я решил упороться и прошить роутер от MTS, а сейчас победил лень и описал это в немаленьком таком лонгриде.
Формат получился необычным, текст содержит кучу вставок блоков кода и цитат / копипаста уже написанного ранее, и надеюсь в таком виде оформлять посты мне больше не придётся, так как это достаточно сложно и муторно.

Постом выше я писал про две части.

Но что-то пошло не так, и их получилось 3.

Технически, думаю, можно было и в две запихнуть, но логически контент поделить не получалось.

Первая часть,
Вторая часть,
Третья часть.

UPD: на Android есть проблемы с доступностью некоторых элементов текста, лучше открывайте в браузере (сначала обычный Instant view просмотр внутри приложения, а потом кнопка Ещё (так называемые три точки), и там в меню можно открыть сторонним приложением).

#ХакВоБлаго
Перерождение Survive the Wild

Многим известна игра Survive the Wild, которую последние года полтора Sam Tupy (главный разработчик и, насколько мне известно, единственный программист в команде) допиливал, пытаясь устранить некоторые глобальные проблемы.

В итоге им было решено вообще сменить язык программирования, да и вообще стек разработки.

Я слежу за изменениями в проектах Сэма, кажется, ещё с осени 21-го года, когда вернулся в stw.

Лично мне интересно наблюдать за развитием навыков и возможностей человека, начинал который с bgt (по крайней мере известные его проекты написаны на этом ЯП), а сейчас освоил git, базы данных, администрирование linux на некотором уровне, и вроде даже C++ и Python.

В феврале на сервере игры навернулся SSD, с восстановлением данных возникли некоторые траблы (ага, он не делал бэкапы! Точнее делал, вроде бы, раз в месяц, и в итоге последний бэкап до выхода диска из строя выполнялся за три недели до инцидента), после этого игру было решено не восстанавливать, пока кодовая база не будет переведена на новый ЯП, и не будут внесены некоторые нововведения (цельная карта, относительно умные животные, система багрепортов и т.п.).

И вот сегодня на 15:14 по МСК запланировано открытие публичной беты, куда я предлагаю сходить всем, кому это интересно, и поискать там весёлых багов, а они там будут по-любому.

Вот
ссылка на последний пост по состоянию stw.

#Игры
Ностальгический видос

На днях листал ленту в Youtube, и мне попалось видео со следующим названием: "ЗЕМЛЯНКА ИЗ ШЕСТИ БРЕВЕН НА СКЛОНЕ ГОРЫ - ЯМА, КАРКАС, ГЛИНЯНАЯ ПЕЧЬ и ЛЕС - ВЫЖИТЬ ПОД ЗЕМЛЕЙ!".

И т.к. я люблю видосы про крафт, решил его глянуть, и сделал это не зря.

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

В общем если хотите отвлечься и расслабиться, рекомендую к просмотру, наверное лучше смотреть перед сном, главное в процессе не уснуть, что, кстати, в моём случае чуть не произошло 🙂

https://www.youtube.com/watch?v=hqqNYDXSEjg
Яндекс диск свернул куда-то не туда

Прислал мне как-то яндекс практикум анонс вебинара по английскому, я зарегистрировался, думая что они будут стримить на youtube.

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

И вот сегодня они прислали запись. "Ладно, послушаю в записи" - подумал я.

Ссылка на яндекс диск, открываю, попадаю, как я понял, в папку с единственным mp4 файлом, и...

Пытаюсь найти кнопку "Скачать".

Не нахожу, изучаю всю страницу, не нахожу контрола для скачивания (ни кнопок, ни ссылок).

Тыкался в режиме обзора и редактирования, эмулировал левый и правый клик куда можно и нельзя, всё тоже самое с отключенным блокировщиком рекламы.

Спустя 5 минут, неожиданно, начал открываться плеер при нажатии Enter на файле в режиме редактирования (иначе никак не открывается).

Круто, ща из плеера скачаю!

Вот значит кнопочки для управления воспроизведением, ползунки, настройки, кнопочка "Ещё"...

Тыкаем, а там только инфу о файле предлагают посмотреть.

Кручу-верчу плеер ещё пару минут, и делаю то, чего вообще пользователь облачного сервиса не должен делать, он даже думать об этом не должен, но мне вот пришлось.

Открываю DevTools, перехожу на вкладку Network, немножко магии, и дрррааассти, master-playlist.m3u8, попался!

Копируем здорровый урл, запихиваем в yt-dlp и получаем желанный видос, если ещё не забыли, с яндекс диска.

Вот такие вот чудеса, я, разумеется, не исключаю вероятность своего рукожопства, вот вам ссылка, попробуйте скачать сами и если получится, расскажите об этом в комментах, хоть буду знать, как с яндекс диска нынче качать надо 🙂

https://disk.yandex.ru/d/r7fiuUWtEUSz8g

#ОноСломалось #ХакВоБлаго
speechFilter-0.1.nvda-addon
7.6 KB
Speech Filter

Долгое время я испытывал негативные эмоции в следующем сценарии:
1. В NVDA каким-то образом попадает куча текста, например 100000 символов.
2. NVDA добросовестно передаёт эту кучу текста на синтезатор.
3. Синтезатор пытается её сожрать, офигевает, зависает и намертво глушит NVDA.

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

Вроде несколько версий назад эту проблему попытались решить, но иногда такие жёсткие фризы всё равно проскакивают, и тогда только либо помощь зрячего, либо танцы с бубном из под alt+ctrl+del.

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

Возможно, кстати, какие-то синты от этого не глохнут, но как минимум у eSpeak такое поведение наблюдается.
👍1
Рандом в Unix

В линуксе для получения случайных (ну или псевдослучайных) байтов имеется два файла, /dev/random и /dev/urandom.

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

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

Но однажды я решил немножко погуглить, и узнал один простой факт, благодаря которому я с того момента ещё ни разу не перепутал эти файлы.

urandom так называется потому что, внезапно, unlimited random!
Да, буковка u означает unlimited, т.е. не ограниченный.

Ну а просто random, соответственно, ограниченный, т.е. замораживающийся при исчерпании накопленной энтропии.
🥰1
Кодерская мастерская
Смена пароля в "Яндекс 360" Чтобы сменить пароль в "Яндекс 360" нужно сделать следующее: 1. Зайти на адрес admin.yandex.ru. 2. Найти заголовок "Сотрудники". 3. Под заголовком найти нужного сотрудника и нажать на него. 4. Найти в нижней части страницы информацию…
Смена пароля в "Яндекс 360" V 2

Около года назад я уже описывал увлекательную процедуру смены пароля сотрудника в yandex 360, и сегодня мне снова пришлось это делать, а, стало быть, можно повторить.

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

Чтобы сменить пароль в "Яндекс 360" нужно сделать следующее:
1. Зайти на адрес admin.yandex.ru.
2. Найти заголовок "Сотрудники".
3. Под заголовком найти таблицу с сотрудниками.
4. Найти строку нужного сотрудника и переместиться в шестой столбец.
5. Нажать на кликабельный элемент.
6. Элемент в шестом столбце должен преобразоваться в кнопку, нужно снова нажать на неё.
7. Под таблицей появится меню с возможными действиями.
8. Для смены пароля нужно найти соответствующее действие и активировать его.
9. Должен открыться диалог смены пароля, в котором будет находиться искомая вами форма.

#A11yTricks
Машинный перевод

Некоторое время назад я, читая про раздачу интернета с телефона на Windows оказался на странице статьи, описывающей реализацию RNDIS (универсальных драйверов для этой самой раздачи).

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

Наверное многим знаком перевод некой инструкции от Microsoft, в котором предлагалось казнить монтажника изображением подноса. Так вот в той статье я нашёл конструкции, которые могут посоревноваться с тем переводом по упоротости.

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

1. "Корпорация Майкрософт предоставляет драйвер мини-порта NDIS, Rndismp.sys, который реализует набор сообщений удаленного NDIS и взаимодействует с универсальными водителями автобусного транспорта, которые, в свою очередь, взаимодействуют с соответствующим водителем автобуса. Этот драйвер мини-порта NDIS реализуется и поддерживается корпорацией Майкрософт и распространяется в составе Windows."

2. "Корпорация Майкрософт также предоставляет драйвер транспорта автобуса USB, который реализует механизм для передачи сообщений удаленной NDIS через USB-шину. Этот драйвер транспортирует стандартизированные сообщения удаленного NDIS между драйвером мини-порта Remote NDIS и конкретным драйвером автобуса, например USB. Водители, относящиеся к автобусу, также обязаны сопоставлять любые требования к шине, такие как управление питанием, в стандартизированные сообщения удаленного NDIS."
👍1🔥1
Проблемы со временем

Почему-то так получается, что я постоянно встречаюсь с проблемами синхронизации времени, началось это всё ещё в детстве, и продолжается до сих пор.

Лет 10 назад у меня были говорящие часы, такая коробочка примерно 8 на 8 на 7 см, которая офигенно быстро убегала вперёд, за месяц набиралось около четырёх минут.

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

Чуть позже у меня появился компьютер с windows, на котором через пару недель использования стало отваливаться время. Оказалось, что села батарейка RTC, после её замены всё стало хорошо.

Прошло ещё несколько лет, и я стал обладателем телефона с Talkback-ом на борту (да, комп освоил раньше телефона, и такое бывает).

И с телефоном тоже были приколы: прыгал часовой пояс, решилась эта проблема выключением синхронизации часового пояса, и на какое-то время всё стало хорошо.

А тем временем наступил 2023, и винда решила упороться.

Работаю я за компом, никакие настройки времени в винде не трогал уже несколько месяцев, и тут вдруг выясняется, что в 10 утра винда показывает полпятого, причём совсем рандомно, без привязки к какому-то часовому поясу.

Ладно, синхронизировал, прошла пара месяцев, и что-то вдруг посыпалось, вроде браузер не смог верифицировать ssl.

Проверил время, И действительно, оно снова улетело, на этот раз вперёд, и уже почти на сутки. Причём это произошло месяца через полтора после посещения СЦ, где поменяли полумёртвый вентилятор системы охлаждения, и заодно освежили батарейку RTC.

Но самое увлекательное было впереди, наступило лето 23-го.

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

Там уведомление от телеги через 2 минуты, прям вот так и написано.

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

Проверяю телегу, и там действительно сообщение минуты на 2-3 позже, чем текущее системное время, что меня сильно удивило, т.к. вроде синхронизация по сети включена, и не должно быть таких жёстких смещений.

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

Такая же история со смещением назад произошла через несколько недель, а потом ещё одна...

В итоге я выяснил, что на самом деле телефон не синхронизирует время через интернет, как я всегда думал.

Он синхронизирует время по телефонным вышкам, на которых, как раз, оно может быть не очень точным (хз, почему в 2023 на таком оборудовании время имеет такие проблемы с точностью, но вот оно так, и остаётся жить с этим).

Временным решением стало выключение синхронизации времени, но часы в телефоне, как выяснилось, потихоньку убегают вперёд, поэтому так всё оставлять было нельзя.

И решение то я нашёл, установил ClockSync, который синхронизирует время по NTP, но вот только чтобы менять системное время нужен root, который у меня есть, но как же быть пользователям без таких привилегий?..

И на этом, разумеется, ничего не закончилось, пару недель назад я переустановил систему на сервере, поменяв девятый debian на 22-ю ubuntu, и угадайте, что произошло?

Получая сообщения от всяких сервисов я заметил, что приходят они раньше положенного, например сообщение, которое должно приходить в начале часо (т.е. в 0 минут), могло приходить в 59 минут.

Пошёл смотреть чего там с timedatectl, а там написано: System clock synchronized: no.

Стал разбираться, выяснил, что не работает systemd-timesyncd - сервис синхронизации по ntp, за 20 минут гугления ничего больше понять я не смог, и решил просто наугад задать ntp-сервер.

И знаете, это сработало! Я просто нагуглил какой-то рандомный ntp-сервер, задал его в конфиге, перезапустил службу, и оно сразу завелось!

Почему в дистрибутиве почти свежей ОС, причём ОС, которая более-менее должна быть дружелюбна к пользователю, нельзя было настроить ntp из коробки?..

В общем вот такая вот дичь порой происходит, и, скорее всего, этот случай далеко не последний.
Спам от Литрес

Литресом я не пользуюсь, но сейчас понадобилось зайти, и решил я заодно отключить уведомления от них.

Зашёл на страницу настроек, а там с доступностью флажков большая беда: нет ни состояний, ни ролей.

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

<div class="Spam__checkboxes_3kJh8">...


Да, в классе элемента прямым текстом написано, за что, на самом деле, отвечают сие флажки, вот такой вот прикол от разработчиков.
👍2
Разрушительный сбой

NVDA, как некоторым известно, порой выдаёт всякие весёлые ошибки, которые просто происходят, и частенько даже не влияют на работоспособность nvda.

Видал я от неё всякое, но такое случилось со мной впервые.

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

Потом, практически сразу, nvda блямкнула ошибкой, и я, как любопытный юзер, разумеется полез в журнал.

А там...

_ctypes.COMError: (-2147418113, 'Разрушительный сбой', (None, None, None, 0, None))


Что это было и какого вообще фига я не знаю, но выглядело настолько круто и грозно, что я хорошенько поржал.
errorSound-0.3.nvda-addon
4.3 KB
Error Sound

Это дополнение для NVDA позволяет включать или выключать воспроизведение звука ошибки независимо от настроек и версии.

Например, вы можете выключить воспроизведение звука ошибок в альфа-версии, или включить его в релизе.
Вечный двигатель в Eurofly3

Относительно недавно вышла в свет бета-версия игры Eurofly3, в которой значительно переделали многие механики, повысили реалистичность, добавили новых фишек и всё в таком духе.

Одна из возможностей - это заправка самолёта, она, конечно, была и во второй версии, но в третьей с ней, на данный момент (2024-02-08 22:00 по мск) имеется презабавнейший баг.

Если убрать парковочный тормоз и в поле для ввода кол-ва топлива указать большое отрицательное значение (минус несколько десятков тысяч), то самолёт начнёт разгоняться с выключенными двигателями.

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

Кстати да, заправка в небе тоже возможно, такая вот бета...
Если же подобрать скорость так, чтобы приблизить массу самолёта к нулевой (для стартовой Цесны это около -1500 литров), то начнётся лютое веселье, самолёт за пару секунд наберёт скорость в несколько миллионов, потом провалится в -2147483648 и уедет куда-то в далёкие дали, а если это сделать в полёте, то географические координаты станут либо бесконечными, либо начнут отображаться как NaN (не число).

Не знаю, зачем вам эта информация, но лично меня всегда веселят такие баги, когда что-то начинает работать странно, удивительно, и совсем не так, как предполагал разработчик продукта. В общем может кому-то это тоже будет интересно.
👍1
Вирус для BIOS. Бред или реальность?

Лет 20 назад по интернету гуляла информация, что существуют сверхкрутые вирусы, которые могут чего-то там в биосе подкрутить, и, например, спалить процессор или хард.

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

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

Начну с небольшой предыстории. Вчера на мой ноут из центра обновлений пришёл апдейт биоса, ну пришёл и пришёл, что-нибудь пофиксили наверное, но ради интереса я решил заглянуть на сайт производителя и узнать, что именно завезли в новой версии.

Примечание к апдейту оказалось довольно кратким: "Update the patch for the LogoFAIL vulnerabilities".

Что перевести можно примерно так: "Обновлён патч для уязвимостей LogoFAIL."

Сам факт наличия уязвимости в UEFI меня слегка удивил, да и название показалось немного странным, поэтому я решил погуглить.

А нагуглил я неожиданно для себя следующее: оказывается, в конце 23-го года, некие исследователи нашли способ обойти безопасную загрузку и Intel Boot Guard, и сделали это не на уровне ОС, а на уровне UEFI.

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

Вкратце уязвимость заключается в следующем:
1. UEFI при запуске выводит на экран логотип производителя, который на некоторых платах возможно заменить на кастомный.
Атакующий подкладывает заранее подготовленную картинку в EFI раздел и прописывает в NVRAM некие переменные для замены стартового изображения.
Для этих действий внутри windows достаточно обычных прав администратора, которые мы часто выдаём приложениям не задумываясь.

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

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

Железо так испортить, наверное, не получится, но вот залезть внутрь ОС и натворить там шпионских / деньговымогательских дел - почему бы и нет.
А учитывая, что эта штука, как я понял, прописывается в сам UEFI и выживает после переустановки ОС, потенциал уязвимость имеет немаленький.

На данный момент официально неизвестно о существовании вирусов, эксплуатирующих эту уязвимость, но учитывая, что на многие машины апдейты не попадают годами и десятилетиями, будет вообще не удивительно, если кто-то этим воспользуется.

Почитать про уязвимость подробнее (на английском) можно здесь: https://binarly.io/posts/finding_logofail_the_dangers_of_image_parsing_during_system_boot/index.html