Pull to refresh
27
0
Джони Дэп @Godless

Супермэн

Send message

Пишем телеграм-бота на Rust, предварительно спаяв сетевую карту

Reading time11 min
Views19K

Что делать, если ваш микроконтроллер не умеет работать с сетью, а бота для телеграма написать хочется? Конечно же, сделать свой сетевой адаптер на логических микросхемах!

Читать далее

Huawei S5720 и IP телефоны Grandstream: нераскрытый пока инцидент

Reading time4 min
Views3.9K

Недавно обратился заказчик, который эксплуатирует стек из S5720-52X-PWR-SI и дюжину IP телефонов Avaya и Grandstream. С Avaya проблем не было, а вот Grandstream периодически отключались, при этом отключались спонтанно и выборочно. Зависимостей не было обнаружено: в отдельные дни могло быть до 30 отключений, в другие 1-2. Некоторые аппараты отключались чаще, другие – реже. C PoE и с кабельной трассой проблем не было. Больше подозрений вызвала именно конфигурация портов в режиме hybrid...

Читать далее

Умные указатели в современном C++ с точки зрения новичка

Reading time10 min
Views94K

Новые (?) пути управления памятью


Указатели в языках C и C++ — те еще штучки. Они чрезвычайно мощные, но в то же время такие опасные: достаточно небольшого недосмотра, чтобы сломать все ваше приложение. Проблема в том, что управление указателями полностью зависит от вас. За каждым динамическим выделением объекта (например, new T) должно следовать ручное удаление (например, delete T). Забудете это сделать, и в итоге получите хорошенькую утечку памяти.

Более того, динамически выделяемые массивы (например, new T[N]) необходимо удалять с помощью другого оператора (например, delete[]). Поэтому приходится мысленно отслеживать, что вы выделили, и соответственно вызывать нужный оператор. Ошибки с выбором формы приводят к неопределенному поведению, чего при работе на C++ нужно избегать любой ценой.

Другая деликатная проблема заключается во владении. Сторонняя функция возвращает указатель: а не динамически ли были выделены эти данные? Если да, то кто отвечает за очистку? Невозможно получить такую информацию, просто посмотрев на возвращаемый тип.
Читать дальше →

Как работает Wine

Reading time10 min
Views86K


Wine — это свободное программное обеспечение для запуска Windows-приложений на нескольких POSIX-совместимых операционных системах, включая Linux, macOS и BSD.

Если вы любите Linux, то наверняка когда-то запускали Wine. Возможно, для какой-то «важной» программы Windows, у которой нет аналога под Линуксом, или поиграться. Забавный факт: даже Steam Deck от Valve запускает игры через оболочку на основе Wine (она называется Proton).

За последний год я намучился с отладчиком, который позволяет одновременно дебажить и Wine, и Windows-приложение в нём. Разобраться во кишочках Wine оказалось очень интересно! Я-то раньше много им пользовался, но никогда не понимал механику целиком. Можно взять файл Windows — и просто запустить его в Linux без каких-либо изменений. Если вы хотите знать, как это сделано, добро пожаловать под кат.
Читать дальше →

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

Reading time18 min
Views37K

Это - полный разбор алгоритма подписи на эллиптических кривых (ECDSA), который является ключевым элементом большинства блокчейнов (типа Bitcoin, Ethereum, ...). С примерами кода и реализацией с полного нуля. Всё сведено к уровню школьной математики, а читать код не обязательно!)

Читать

Как я несколько лет боролся с прокрастинацией и победил: полное практическое руководство

Reading time8 min
Views327K

Постоянно откладываешь дела на потом и не видишь в этом проблемы? Мне это знакомо. Расскажу как не повторить моих ошибок и почему пора это прекращать. Не откладывай эту статью на потом!

Начать читать

Заблуждения программистов о времени

Reading time12 min
Views77K

Музей-скансен эпохи Средневековья в Дании в режиме обычной работы (слева) ставит целью воссоздать повседневную жизнь города на стыке XIV и XV веков. Для съёмок фильма (справа) он «погрязнел»

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

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

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

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

Заблуждение 1. В сутках 24 часа или 86 400 секунд


Иногда и кое-где стрелки часов переводят, создавая сутки длиной в 23 и 25 часов — всё очевидно. Будет неплохо углубиться в случаи поэкзотичней.
Читать дальше →

PostgreSQL Antipatterns: простой(?) INSERT… VALUES

Reading time3 min
Views18K

Представим, что у вас есть некоторая табличка статистики, куда вы периодически скидываете таймстамп последнего "текущего" состояния в паре координат - например, (ID организации, ID сотрудника).

Как больно наступить на грабли в совсем простом, казалось бы, запросе?

Читать далее

SAST для самых маленьких. Обзор open-source инструментов поиска уязвимостей для C/C++

Reading time33 min
Views25K


Привет, Хабр!


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

Читать дальше →

Kerberoasting для Red Team

Reading time5 min
Views5.4K

Тестирование на проникновение Active Directory – зрелище не для слабонервных. Стоит только взглянуть на дорожную карту Пентеста Active Directory: “Active Directory Penetration Mind Map” как сразу становится ясным то, что это вовсе не «легкая прогулка». Тем не менее, к настоящему времени исследователями, энтузиастами и другими неравнодушными собрано достаточно большое количество статей и материалов, в которых (по моему скромному мнению) можно найти ответ на любой вопрос, и при этом рассмотреть проблему с разных сторон! Поэтому, данная статья является всего лишь адаптацией на русский язык англоязычного аналога, приправленной некоторыми комментариями автора. По-моему мнению, данный материал возможно «размылит»  тот самый замыленный глаз после использования несметного числа утилит и методик при тестировании на проникновение, и возможно заставит задуматься о тех средствах и методах, которые мы применяем в повседневной деятельности!

Читать далее

Пишем голосового ассистента на Python

Reading time16 min
Views188K

Введение


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

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

image
Читать дальше →

Telegram бот с offline распознаванием голосовых и генерацией аудио из текста

Reading time9 min
Views29K

Всем привет! После прочтения постов про голосового ассистента и  сервис Silero, мне стало интересно поиграться с offline распознаванием аудио в текст, а также с обратным преобразованием текст в аудио. И как все начинающие разработчики я сделал своего Telegram бота. Просто Telegram – это удобный и мобильный интерфейс для взаимодействия с чем угодно.

В своем пет-проекте я использовал aiogram, vosk, silero и ffmpeg.

Подробности под катом!

Наглядное руководство по SSH-туннелям

Reading time8 min
Views200K

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

Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.

Читать далее

Анализ трафика телеметрической информации Android смартфона

Reading time4 min
Views20K

Сбор телеметрических данных о пользователях и их действиях в вебе и приложениях — плата за пользование «бесплатными» сервисами в Интернете. Пользователи расплачиваются своим вниманием и временем, проведёнными в данных сервисах и приложениях. Поэтому производители мобильных платформ, ИТ-компании, социальные сети заинтересованы в получении максимального объёма данных с устройств.

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

В данной статье рассматривается вопрос о том, какую конкретно информацию смартфон передает на серверы вендоров.

Интересненько

Простая схема динамических указателей поворотов, и никаких микроконтроллеров

Reading time4 min
Views50K

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

Читать далее

Делаем firefox корпоративным браузером

Reading time7 min
Views14K

Всем привет. Предвижу вопросы у большинства — а он разве не корпоративный?

Да, не корпоративный. Возможно, я связался с плохой компанией, но для меня пока ещё основной рабочий браузер — это Internet Explorer не выше 11 версии. Корпорация — организм большой, инертный. Менять софт — сплошные муки пользователям, головняк ИТ-службе, счастье интеграторам. Именно поэтому до сих пор на десктопах тут живёт винда, вплоть до XP, а периметры сетей зажаты в первую очередь бумагами с печатями, и потом уже межсетевыми экранами. Ну и основным «сдерживающим фактором» является обилие «легаси», приложений с ActiveX и безальтернативной поддержкой Internet Explorer в разметке.
Читать дальше →

Возможен ли двигатель — без двигателя?

Reading time7 min
Views30K

Жизнь человечества невозможно представить без двигателей, которые сопровождают нас и применяются во множестве областей человеческой деятельности. Однако зададимся вопросом: а бывает ли «двигатель без двигателя»?

Согласно Теории Решения Изобретательских Задач (ТРИЗ) — «самый лучший механизм, это тот, который отсутствует, но, тем не менее, его функция выполняется».

Если бы подобный двигатель существовал, то он был бы идеальным устройством в своём классе! Как ни странно, подобный двигатель существует и называется «магнитогидродинамическим двигателем» (МГД), и именно об этом мы и поговорим в нашей статье.

Читать дальше →

Динамическая маршрутизация на основе FRRouting

Reading time6 min
Views25K

Приветствую, дорогой читатель!

Меня зовут Евгений, я занимаюсь развитием сетевой инфраструктуры в Домклик. Сегодняшняя статья будет охватывать только применение динамической маршрутизации на основе FRRouting (FRR), но, возможно, в будущем я напишу продолжение о том, как конфигурировать другое оборудование, которое вы встретите в тексте.

Читать далее

Ethereum 2.0. Как прошёл переход на PoS. ETH всё ещё децентрализован? Никто больше не майнит Эфир

Reading time5 min
Views39K

15 сентября произошёл по-настоящему исторический момент для всего крипторынка. Блокчейн второй по капитализации криптовалюты Ethereum перешёл с алгоритма Proof of Work на Proof of Stake. Небольшой спойлер: слияние прошло без ошибок и сеть успешно обновилась, несмотря на неутихающие споры и противоречия мнений участников криптосообщества. Сегодня мы поговорим о том, как происходил переход, что принципиально изменилось в Эфириуме и чего ждать от монеты ETH дальше. Поехали!

Даже самый дорогой NFT-художник Beeple поддержал слияние Эфириума двумя масштабными работами. Изображение слева называется «PROOF OF STAKE», справа - «THE MERGE» (объединение).

Читать далее

Information

Rating
7,763-rd
Location
Россия
Registered
Activity