Обновить

Все потоки

Сначала показывать
Период
Уровень сложности

RuStore качает MAX без спроса и мониторит GPS каждые 5 минут и ему даже не стыдно

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели125K

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

С 1 апреля 2024 года RuStore принудительно предустанавливается на все смартфоны, продаваемые в РФ. После недавнего разбора правительственного мессенджера MAX, я декомпилировал APK самого национального стора и проверил его реальное поведение по коду.

нашёл: скрытую подсистему трекинга с записью GPS-координат в локальную SQLite-базу каждые 2 минуты, классический бэкдор для тихой фоновой установки любых пакетов по Push-команде с сервера, слив детальной статистики экранного времени всех ваших приложений, жесткий обход ограничений Android 10+ для сбора несбрасываемых аппаратных IMEI и IMSI, раздачу токенов авторизации VK через AIDL без согласия пользователя, извлечение захардкоженных секретов из C++ библиотек и встроенный движок Касперского с транзитными P2P-узлами и постоянной inotify-слежкой за директорией фото. Все находки сверены с реальным кодом, ссылки на классы и JNI-вызовы внутри.

Читать далее

Новости

П維чему нейро考ети дел思ют так

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели88K

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

Статью я решил поделить на два уровня. Первая часть (без которой сложно понять вторую) — для тех, кто слышал слово «эмбеддинг», но не трогал его руками: разберем на пальцах и со стрелочками, что модель держит внутри своего цифрового серого вещества, в общем объясню простые вещи простыми словами. Вторая часть — для тех, кому интересно копнуть чуть дальше базы: туда я поместил grokking, фурье-частоты и суперпозицию, и там мы вытащим реальное пространство обученной модели и посмотрим, как оно устроено. 

Читать далее

Как «Рога и Копыта» попали в топ работодателей HH.ru

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели47K

Поделюсь с Вами недавно всплывшей историей, но которая еще не расфорсилась на Хабре.

Здесь Вы узнаете как за год "фиктивная компания-помойка" с арестованным лицевым счетом, пробилась в ТОП-20 и ТОП-1 Рейтинга работодателей лидера рынка рекрутинга HH.ru

Вперед к разоблачению

Заморозка по fingerprint: как ТСПУ в июне 2026 ломает соединения по поведению, а не по протоколу

Уровень сложностиСредний
Время на прочтение22 мин
Охват и читатели84K

Полгода назад я написал здесь разбор «почему VLESS работает» — он собрал 169 тысяч просмотров и под тысячу закладок. Я тогда уверенно заявил: REALITY не отличить от обычного HTTPS, поэтому он держится там, где всё остальное давно отвалилось. Прошло полгода — и оказалось, что я был прав ровно наполовину.

В феврале ТСПУ перешёл на поведенческий анализ, а в июне — на то, что в чатах называют «заморозкой по fingerprint». И тут разом перестали подключаться мои собственные конфиги — и конфиги тысяч других людей. Приложение бодро рапортует «connected», а трафика нет. А привычный совет «обнови клиент» вдруг превратился в пустой звук.

Вот я и вернулся — посмотреть, что осталось от моих же выводов. Это разбор со стороны клиентского устройства — угла, который обычно недозанят. Что на самом деле творится в телефоне, когда «всё зелёное, а интернета нет». Как устроена новая детекция. И как измерить её самому, чтобы не потерять доступ к легальным сервисам, которые попали под ложные срабатывания.

Пара слов о том, чему верить. Тема скользкая, источников мало, и я не хочу делать вид, что у меня на руках спецификация системы. Поэтому дальше честно помечаю, где у меня твёрдый пруф, а где — реконструкция по одному источнику. Самое важное сразу: ядро всей новой схемы (разделы 2–4) собрано по одному структурированному первоисточнику — посту в Obsidian/Zapret, где автор разбирает поведение через инструмент dpi-ch. Это не выписка из документа РКН и не консенсус исследователей ТСПУ. Академические работы (ensafi/IMC 2022, gfw.report) такой схемы вообще не описывают — как и кодового имени, под которым она ходит в обсуждениях. Так что всё про конкретные пороги — «>3 хендшейка», «350–400 мс», «120/600 с» — это инженерная реконструкция чёрного ящика по одному наблюдению, а не доказанное устройство системы. Числа читайте как рабочие гипотезы.

Читать далее

Новые правила Хабра. Версия от 2026

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели31K

Всем привет! Мы обновили правила Хабра — эта публикация посвящена их анонсу. Что, зачем, почему — под катом.

Читать далее

Как увеличить продолжительность жизни своего ребенка в два раза

Время на прочтение12 мин
Охват и читатели51K

Эта история началась более 17 лет назад. Старший шалопай в наступающем году должен был закончить школу, и у меня с женой с каждым днем росло беспокойство о том, где он будет учиться дальше. Кроме того, подрастал еще один кандидат, которому предстояло поступление в вуз через год после первого. Как у настоящих оболтусов успеваемость обоих сыновей в школе не добавляла уверенности на гарантированное поступление в приличное учебное заведение. Тем более на бюджет. Полученный не так давно женой за рождение двойняшек материнский капитал несильно прибавлял уверенности, поскольку на полную оплату обучения в Москве даже одного отпрыска точно бы не хватило. Поэтому кроме набивших всем оскомину нравоучений о важности образования, я решил поискать дополнительные рычаги, которые   облегчили бы доступ моим потомкам в чертоги высшей школы.

Узнать секрет

Всё, что вы настроили в Linux, можно было не настраивать

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели49K

Я использую Linux 15 лет. Ну, то есть как использую: первые года три я его настраивал, а не использовал. Это разные вещи, и мне понадобилось позорно много времени чтобы это понять.

Сейчас у меня Fedora. Из коробки. С GNOME. Почти без кастомизации. Я набираю в ней код, сижу в браузере, иногда монтирую видео для внутренних демок. Всё работает.

Пятнадцать лет назад я бы от такого описания плевался. Как это «из коробки»? А где i3? Где polybar? Где 400 строк .vimrc? Где кастомный скрипт на баше который при подключении второго монитора переключает раскладку DPI и температуру цвета?

Ну вот, нету. И ничего не сломалось.

Читать далее

Слишком умный, чтобы выжить

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели34K

Если смотреть на жизнь и эволюцию как на постоянный перебор решений случайным поиском, возникает резонный вопрос: почему интеллект так редок в природе? Эволюция умеет находить удачные решения и воспроизводить их снова и снова. Глаз, крыло, социальные сообщества — термитники, муравейники, ульи, переизобретались независимо десятки раз. А развитый ум, способность строить модели мира и решать новые задачи, почему‑то не стал рядовым инструментом выживания. Обычно спрашивают, как человек стал разумным. А меня интересует, почему никто больше не стал? Почему острый ум, дающий такое невероятное преимущество, так и не стал рядовой способностью? Думаете, он новинка? Нет. Природа уже несколько раз бралась делать существ умными, и каждый раз бросала начатое на полдороге. Может, развитый интеллект — данайский дар, слишком опасный для принимающих его видов? Или, может, его преимущества не так очевидны?

Читать далее

Создаём графику, как будто на дворе 1993 год

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели42K

Catlantean 3D — это хобби-проект, который я неспешно пишу в своё свободное время уже больше года. В следующем году я планирую выпустить его в Steam.

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

Читать далее

Полвека с дипломом ИТ-шника. Дан приказ ему на Запад

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели46K

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

Читать далее

C++101

Время на прочтение179 мин
Охват и читатели34K

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

Большинство этих примеров родилось в эпоху до C++11, когда у языка ещё не было ни умных указателей в стандарте, ни move-семантики, ни constexpr, ни концептов, и приходилось руками собирать из шаблонов и перегрузок некоторые конструкции, которые в более поздних стандартах язык даёт почти бесплатно. Многие идиомы, примеры и идеи стоит читать в двух смыслах сразу, как исторический артефакт, объясняющий «почему старый код выглядит вот так», и как живой приём, который всё ещё применяется в движках и играх.

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

Когда я собирал оглавление Game++, раздел про идиомы, идеи, паттерны и механизмы C++ планировался шестым и завершающим, и должен был занять страниц сто, по одной на каждый пункт, но чем дальше я собирал материал, тем яснее становилось, что каждая секция тянет за собой историю, а каждая история требует контекста, а каждый контекст в игрострое никогда не бывает простым. В итоге текст разросся до размеров, при которых он просто сломал бы структуру книги, и мне пришлось выбирать между «урезать до неузнаваемости» и «отпустить жить отдельно». Пришлось выбрать второе.

Перед вами то, что могло бы стать половиной Game++, но стало самостоятельным материалом. Здесь собраны идиомы, идеи, паттерны и механизмы C++, которые сложились в сообществе за несколько десятилетий и продолжают жить в кодовых базах игровых движков, иногда под своими именами, иногда под другими, иногда вообще без имён, потому что их давно перестали объяснять. У большинства имена все же есть, есть и история с ответом почему именно так, а не иначе.

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

Читать далее

О схеме ограничений РКН в июне 2026-го

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели127K

В начале июня 2026-го года сообщество в очередной раз проявило беспокойство: у многих "отвалились" их средства обхода блокировок, в т.ч. построенных на классической базе: xray + VLESS + REALITY. Был произведен реверс-инжиниринг внутреннего устройства проблемы, и в данной статье будет описан алгоритм искомой волны ограничений.

Читать далее

Я выпустил нейросеть в реальный мир — и стало не смешно

Время на прочтение10 мин
Охват и читатели31K

Я хотел понять простую вещь: если дать ИИ не окошко чата, а тело — колёса, камеру, дальномер, голос, — что он станет делать? Собрал тележку на Arduino и посадил за руль по очереди Claude, GPT, Gemini и Grok. Промпт на всех один: мизантроп-матерщинник, который зовёт людей кожаными мешками.

Это история о том, как затея «выпустим ИИ в реальный мир поржать» вывела меня к вопросу, от которого смеяться расхотелось.

Читать далее

Ближайшие события

Оживляем дешевый Smart TV: обход вырезанного ADB, деблоат Яндекс.ТВ и сборка легкого медиацентра

Время на прочтение6 мин
Охват и читатели40K

Купил я тут по дешевке 43-дюймовый телевизор Hartens (модель HTY-43FHD06B‑HK22, панель BOE HV430FHB‑F91) под проект умного гостевого дома. Железо внутри скромное: чипсет MediaTek MT5867, 32-битная архитектура (armeabi‑v7a), 1.5 ГБ оперативной памяти и вишенка на торте — фирменная оболочка Яндекс.ТВ на базе AOSP Android 11.

Из коробки это чудо техники работает «не очень». Интерфейс задумчивый, повсюду рекомендации, Алиса, Кинопоиск, Яндекс.Музыка и куча другого софта, который постоянно висит в памяти и кушает и без того дефицитные ресурсы.

План по исправлению созрел быстро, но на первом же шаге я уперся в стену: производитель полностью вырезал пункт «Отладка по USB» (USB Debugging) из меню разработчика. USB‑порты у телевизора работают только в режиме хоста (подключить ПК напрямую кабелем нельзя), а сетевой ADB по умолчанию закрыт.

Ниже я расскажу, как удалось обойти это ограничение, залезть «под капот» телевизора и превратить тормозящий яндекс‑комбайн в чистый и шустрый Android TV.

Читать далее

Как я написал свой клиент Miracast для шаринга экрана под Linux в 2026 году и погряз в войне за проприетарные байты

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели28K

Как превратить крик души в работающую утилиту и попасть в официальную ArchWiki? Мне 17 лет, и мне просто надоело тянуть HDMI-кабель от ноутбука к телевизору через всю комнату. В этой статье я расскажу, как написал свой стример экрана FluxCast на Python, с какими багами Smart TV пришлось столкнуться и как устроен «слепой» дебаг проприетарного железа по логам пользователей со всего мира.

Читать далее

XB-70 Valkyrie: самолет, изменивший сверхзвуковую авиацию и разбившийся ради красивого кадра

Уровень сложностиПростой
Время на прочтение34 мин
Охват и читатели31K

Утро 8 июня 1966 года. База Эдвардс в Калифорнии. Майор ВВС Карл Кросс паркует машину у ангара за час до старта. В правом кресле XB-70 Valkyrie он сядет сегодня впервые в жизни. Его ждет первый полет на самом амбициозном детище американской авиации 60-х.

Самолет, к которому он шел, через час с небольшим окажется в плоском штопоре, а еще через 25 секунд превратится в обломки в пустыне Мохаве. Кадр, который сделают в строю за 20 секунд до катастрофы, станет, наверное, самой известной фотографией в истории испытательной авиации. А виновником катастрофы окажется фотограф компании General Electric, попросивший пилотов «потесниться для красивого снимка».

ding!

Как я купил кота в мешке: реверс-инжиниринг электронных ценников. Часть 1. Знакомство с nrf52832

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели32K

Как-то давным-давно я заинтересовался дешевым железом, ибо был студентом-ардуинщиком, который очень хотел сэкономить. И как-то раз пришла идея — поработать с E-INK дисплеем. Цены на новые модули на Али кусались, поэтому я отправился шерстить Авито и нашел там объявление о продаже б/у электронных ценников из супермаркета и DNS.

О чудо! Всего 250 рублей за штуку: плата, контроллер, корпус, и оно даже работает... наверное.

Я заказал целую партию, не подозревая, что внутри меня ждет коррозия всего - чего можно, чип nRF52832 в новой партии, нестандартный протокол связи и абсолютный ноль документации. О том, как я ковырял эти платы китайским программатором, как писал в RAM через GDB, убил пару ценников, экранов и в итоге завел дисплей через Zephyr RTOS. Спойлер: фрактал Мандельброта успешно выведен! Дум не за горами

Читать далее

Я обнаружил крупномасштабное распространение вирусов в GitHub

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели33K

Это история о том, как я нашел 10.000 репозиториев в GitHub, в которых находится ссылка на скачивание zip архива. В этом архиве — троян. Все эти репозитории от разных контрибьюторов, с разным названием и не являются форками других репозиториев. Даже если мы найдем один такой репозиторий, мы не сможем по нему найти другие репозитории. Но у всех них есть одинаковый паттерн, который и позволил написать скрипт для поиска таких репозиториев.

Читать далее

Почему мы до сих пор неправильно пишем физические движки и 3D-графику

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели27K

Стоит открыть исходники любого современного игрового движка – неважно, это C++-рендер, сделанный на коленке, или какая-нибудь гигантская экосистема вроде Unity или Unreal Engine – вы первым делом натыкаетесь на одни и те же знакомые сущности. Все вокруг живет в Vector3: координаты, направления движения, точки столкновений. Каждая частица указывает, куда она смотрит, с помощью Quaternion. А если требуется что-то покруче – переносить и одновременно крутить объект, то Matrix4x4. Это уже как стандарт де-факто: кто пробовал крутить объекты руками, тот точно переписывал код с этими структурами. Ещё конечно же отдельно существуют лучи, плоскости, сферы, bounding boxes, а между ними тянутся километры функций вроде dot()cross()normalize()lookAt()inverse()project() и бесконечных преобразований типов.

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

И самое интересное заключается в том, что так было не обязательно.

Читать далее

Полная доказательная база аудита мессенджера MAX

Уровень сложностиСредний
Время на прочтение21 мин
Охват и читатели60K

Реверс-инжиниринг MAX: Архитектура телеметрии и фоновой эксфильтрации в «защищённом» мессенджере

что скрывает «гос-мессенджер» MAX? Мы провели глубокий статический анализ APK и вскрыли промышленный конвейер сбора данных. Внутри: полное отсутствие E2EE, ежедневный аудит разрешений (камера/микрофон/GPS), скрытое сканирование всех установленных приложений и фоновая выгрузка файлов на сторонние серверы с последующей зачисткой следов на устройстве. Разбираем пакеты, классы и методы, которые превращают мессенджер в систему направленного наблюдения.

Читать далее
1
23 ...