Pull to refresh
1
Константин@ConstOrVar

Разработчик мобильных приложений

Send message

Мне прислали фишинг под MAX. Я разобрал ссылку и нашёл уязвимость в их API

Level of difficultyMedium
Reading time14 min
Reach and readers24K

«Мне прислали фишинг под MAX. Внутри оказался MITM в их API» «Не ты ли на фото?» — пришло поздно вечером, в обычной переписке, от знакомого, который пишет редко. К сообщению приложена короткая ссылка. Я понял, что у него увели аккаунт, и захотел разобраться, что внутри. Через пять дней я смотрел на инфраструктуру из 179 фишинговых доменов, четырёх хостингов, через которые оператор переезжал каждые сутки, и обнаружение, что фишинг-кит работает не как сборщик паролей, а как MITM-прокси к настоящему API мессенджера MAX. Жертва получает реальный SMS от реального MAX и не может распознать атаку. CVSS 8.8. VK молчит уже неделю.

Читать далее

Мой опыт установки Sentry self-hosted

Level of difficultyEasy
Reading time15 min
Reach and readers7K

Привет! Меня зовут Даниил Ткаченко, я веб‑разработчик в ИТ‑компании «Активика». В статье я поделюсь опытом развёртывания Sentry self‑hosted для высоконагруженного проекта. Несмотря на обилие материалов по SaaS‑версии, актуальных гайдов по self‑hosted‑установке почти нет — особенно с учётом современных требований к производительности и отказоустойчивости.

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

Статья будет полезна разработчикам и DevOps‑инженерам без опыта работы с self‑hosted Sentry.

Читать далее

Copy.Fail (CVE-2026-31431) — больше чем LPE

Level of difficultyMedium
Reading time3 min
Reach and readers11K

Свежая CVE-2026-31431 только набирает обороты, и тут я хочу показать, почему это не совсем обычная LPE.

Copy Fail как примитив Process Injection через Page Cache

Оригинальный PoC модифицирует setuid binary перед execve и получает root.
Второй публичный PoC подменяет id у текущего юзера на 0000.

Хорошие, рабочие LPE, дающие рута.

Но исследуя дополнительные свойства этого примитива я обнаружил несколько эффектов, не описанных в оригинальном disclosure.

Читать далее

Я люблю «Героев меча и магии», но пару моментов бы поменял

Level of difficultyEasy
Reading time24 min
Reach and readers15K

«Герои меча и магии» (Heroes of Might & Magic или просто HoMM) это серия игр, на которой я вырос, и в которую до сих пор периодически с удовольствием играю. Конечно же, больше всего наиграны третьи Герои, а также пятые. И вот только что в раннем доступе вышла новая часть — HoMM: Olden Era от студии Unfrozen, с чем я всех нас и поздравляю.

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

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

И сегодня я хотел бы поделиться своими субъективными мыслями на этот счёт и сразу же проанализировать, насколько моё мнение совпадает с видением разработчиков новой части — Olden Era. Она уже долгое время была доступна в виде демо-версии, поэтому у всех желающих было время её попробовать и понять, какой будет игра. Также приглашаю вас поделиться своими мнением в комментариях и вместе конструктивно подискутировать.

Читать далее

Часть I. Конечные автоматы. Универсальная машина Тьюринга. Интерпретатор Brainfuck

Level of difficultyMedium
Reading time71 min
Reach and readers13K

▒▒▒▒▒▒▒▒▒█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
▒▒▒▒▒▒▒█░▒▒▒▒▒▒▒▓▒▒▓▒▒▒▒▒▒▒░█
▒▒▒▒▒▒▒█░▒▒▓▒▒▒▒▒▒▒▒▒▄▄▒▓▒▒░█░▄▄
▒▒▄▀▀▄▄█░▒▒▒▒▒▒▓▒▒▒▒█░░▀▄▄▄▄▄▀░░█
▒▒█░░░░█░▒▒▒▒▒▒▒▒▒▒▒█░░░░░░░░░░░█
▒▒▒▀▀▄▄█░▒▒▒▒▓▒▒▒▓▒█░░░█▒░░░░█▒░░█
▒▒▒▒▒▒▒█░▒▓▒▒▒▒▓▒▒▒█░░░░░░░▀░░░░░█
▒▒▒▒▒▄▄█░▒▒▒▓▒▒▒▒▒▒▒█░░█▄▄█▄▄█░░█
▒▒▒▒█░░░█▄▄▄▄▄▄▄▄▄▄█░█▄▄▄▄▄▄▄▄▄█
▒▒▒▒█▄▄█░░█▄▄█░░░░░░█▄▄█░░█▄▄█

Я практик и популяризатор языково-ориентированного программирования [1]. В нём задачи решают тройкой: доменная виртуальная машина VM, доменный язык программирования DSL и алгоритмы на нём.
В этом курсе удачными фрагментами разных заметок доступно объясним причины многообразия языков и преимущества их разработки. С теорией, историей и примерами.
Вся наша работа строится вокруг VM, DSL, EBNF, отношений и графов. Мы увидим, как эти объекты соединяют вместе, получая вычислители и программы.

Читать далее

Shrek Linux: кастомизируем Kubuntu для любителей «Шрека»

Reading time3 min
Reach and readers9.4K

Ох уж этот мир свободного ПО! Хотите создавать проекты, которые покорят мир? Пожалуйста. Хотите просто развеяться и проверить, где же предел гибкости Linux? Этим можно заниматься сколько угодно.

Хотите конкретный пример? Их есть у меня, причем один из них совсем свежий. Шринукс, или Shrek Linux, появился буквально пару дней назад. Это полноценная операционная система с нескучными обоями, где буквально каждая деталь отсылает к мультфильму про болотного огра. К слову, создатель не стал ограничиваться парой обоев — он погрузил в атмосферу Шрека все, что только можно было кастомизировать.

Читать далее

Как действительно отдохнуть на майских

Level of difficultyEasy
Reading time11 min
Reach and readers12K

Привет, читатели! На связи Лера Плошкина, технический писатель в Авито. Майские праздники — идеальное время для перезагрузки. Вместо обзора книги в этот раз предлагаю вместе изучить научные стратегии отдыха, основанные на свежих исследованиях когнитивных наук, чтобы вы не просто провалялись все праздники, а действительно восстановились.

Что же такое хороший отдых? Узнаете под катом. 

Читать далее

MAX и метка Spyware в Cloudflare: что это значит и к чему может привести

Level of difficultyEasy
Reading time9 min
Reach and readers18K

30 апреля в сети появилась информация, что глобальная IT-компания и оператор крупной интернет-инфраструктуры Cloudflare присвоила домену национального мессенджера Max классификацию Spyware (шпионское ПО). Прежде чем мысленно ухмыльнуться и подумать «а я же говорил», давайте объективно разберемся, что это за шум.

В этой статье мы расскажем: кто такая компания Cloudflare, почему она ставит подобные метки, что значит «spyware», на основании каких признаков Cloudflare принимает такие решения, а также какие последствия такая метка может иметь.

Читать далее

Почему я написал Paginator вместо Paging 3

Level of difficultyEasy
Reading time7 min
Reach and readers9.3K

Это статья от автора библиотеки, поэтому нейтральным разбор не будет. Но это и не рассказ про
конкретный проект — а разбор задач, на которых, на мой взгляд, Paging 3 начинает буксовать, и
того, как Paginator устроен, чтобы эти задачи
закрывать. KMP-библиотека пагинации для Android, iOS, JVM и Desktop. Ниже — почему она появилась
именно как отдельная библиотека, а не как fork или обёртка над Paging 3.

Читать далее

Лузеры следуют рецептам, победители строят систему: учимся собирать секси-еду по принципу LEGO

Level of difficultyEasy
Reading time8 min
Reach and readers11K

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

Я построила систему, которая решает эту задачу.

Привет, я Тоня. Несколько лет назад я ушла из IT в гастрономию: веду канал, хожу на воркшопы шефов в Лондоне, стала завсегдатаем Le Cordon Bleu и учу готовить так, чтобы даже самый уставший айтишник мог собирать блюда как это делают в ресторанах. 

Погнали разбираться!

Читать далее

User Story: полный гайд по написанию без ошибок

Level of difficultyEasy
Reading time9 min
Reach and readers7.6K

Почему одни User Story работают как часы, а другие становятся источником бесконечных багов и ночных звонков? За годы работы в FinTech собрал коллекцию типичных ошибок, из‑за которых команды теряют драгоценное время. В статье — живые кейсы, наглядные диаграммы, разбор INVEST и практики Three Amigos, которые снижают число дефектов. Рассмотрим, как превратить сырую идею в зрелую User Story с чёткими критериями приёмки и нефункциональными требованиями.

Читать далее

Рецензия на книгу «Сети Linux. Модели и приложения» — от TCP/IP до ядра и сетей будущего

Level of difficultyEasy
Reading time9 min
Reach and readers9.1K

В этой рецензии хотим привлечь внимание к последней прижизненной книге по Linux известного автора Олега Цилюрика. Книги по сетям обычно делятся на две категории: либо это классические учебники по протоколу TCP/IP и сетевым утилитам, либо практические руководства по настройке конкретных сервисов. Книга «Сети Linux. Модели и приложения» объединяет оба подхода — и в этом ее главное отличие.

Читать далее

Структуры данных на практике. Глава 14: Обработка строк и эффективность использования кэша

Level of difficultyEasy
Reading time10 min
Reach and readers7.5K

«В Computer Science есть только две сложные вещи: инвалидация кэша и придумывание названий», — Фил Карлтон

Разрыв в производительности

Наш парсер логов обрабатывал 800 тысяч строк в секунду. Нам требовалось 3 миллиона строк в секунду. От нужного нам показателя мы отставали в 3,75 раза.

Задача инструмента заключалась в парсинге строк логов в реальном времени, извлечении временных меток, уровней логов и сообщений из миллионов строк в секунду. Обработка миллиона строк логов в текущей реализации требовала 1,25 секунды — слишком долго для анализа в реальном времени.

Профилировщик показывал 85 миллионов промахов кэша. Для обработки строк это казалось слишком большим показателем.

В реализации использовались стандартные строковые функции C — простые, читаемые, но, очевидно, слишком медленные.

Я переписал этот код, добавив обработку строк с учётом кэша. Результаты были такими:

В 4,5 раза быстрее и в 7 раз меньше промахов кэша.

В этой главе мы поговорим о том, как эффективно использовать кэш при обработке строк.

Читать далее

Почему Chrome весит 7 000 Марио или как сжать «Змейку» в 1 000 раз

Level of difficultyMedium
Reading time11 min
Reach and readers14K

На вашем диске лежит семь одинаковых моделей птицы Додо. Не благодарите — это ARK заботливо положил их вам в каждое DLC.

Раньше Super Mario Bros весила 40 КБ. Сейчас одно обновление Chrome — это ~7 000 таких Марио. Как мы дошли до жизни такой, и почему все идет по кругу?

В статье пройдем путь от тайлов NES до Neural Texture Compression и рассмотрим змейку в трех версиях: по трем вехам сжатия. Одна из них в 1 120 раз меньше первой. И это не та, в которой ИИ.

Читать далее

Пентест веба на пальцах: для новичков и слегка отбитых

Level of difficultyEasy
Reading time17 min
Reach and readers7.8K

Этот гайд проводит тебя через все этапы пентеста веб-приложений по порядку. На каждом шаге разобрано, какие инструменты нужны, как они работают, для чего предназначены и какие задачи решают. Цель показать не просто список утилит, а понимание, где какой инструмент уместен и почему он работает именно так. После прочтения у тебя будет рабочий каркас, по которому можно действовать в любой ситуации, от разведки до составления отчёта.

Читать далее

Kotlin IR Compiler Plugin в дизайн-системе: автотесты с Compose без ручной разметки

Level of difficultyMedium
Reading time13 min
Reach and readers8K

Меня зовут Максим, я Android-разработчик в команде дизайн-системы «БКС Мир инвестиций». В 2025 году у нас шёл большой редизайн: компонентная библиотека росла, команды подключали новые Compose компоненты, а вместе с этим быстро рос и объём UI-тестов.

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

Эта статья про то, как мы решили задачу через Kotlin IR Compiler Plugin. Снаружи решение выглядит почти незаметно: разработчик ставит одну аннотацию, а на этапе компиляции компонент автоматически получает стабильный testTag и тестовые semantics, собранные из его state. В результате у команды стало меньше бойлерплейта в компонентах, меньше риска рассинхронизации между state и тестами, а экранные UI-тесты получили более устойчивый контракт работы с дизайн-системой.

Читать далее

Я думал, что просто не могу найти себя — пока не разобрался, как на самом деле работает СДВГ

Level of difficultyEasy
Reading time10 min
Reach and readers25K

Мне всю жизнь говорили одно и то же: «ты умный, но ленивый».
И знаешь, самое неприятное - я сам в это поверил.

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

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

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

Я долго думал, что проблема в дисциплине. Потом - что в выборе сферы. После - что я просто нестабильный или, если честно, немного «не такой».

Пока не наткнулся на одну вещь, которую обычно вообще не обсуждают, когда говорят про СДВГ.

Это не про «не можешь сосредоточиться».
Это про то, что твой мозг по-другому решает, на что вообще стоит тратить усилия.

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

Это не та версия СДВГ, о которой рассказывают в TikTok.
И, возможно, ты узнаешь в этом себя.

Узнать о необычном типе СДВГ

Сила плоского юмора: как сэр Терри Пратчетт проявлял реальность, искажая и высмеивая ее

Reading time17 min
Reach and readers12K

Привет, Хабр! Когда говорят про культовую для IT художественную литературу, то вспоминают киберпанк или научную фантастику. При этом был фэнтези-писатель, который говорил, что его основная аудитория — люди, которые работают за компьютерами. И мы начали его немного забывать. 

На рубеже двухтысячных не знать эти книги было невозможно: короткие и емкие цитаты, фраза «КОШКИ…КОШКИ — ЭТО ХОРОШО» и картинки с бегающим на множестве ножек сундуком однозначно указывали на их автора — самого популярного британского писателя 90-х годов.  

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

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

НУ ЧТО, ПОЕХАЛИ.

Задание 7 ЕГЭ по информатике: разбираем базу по кодированию изображений с нуля

Level of difficultyEasy
Reading time9 min
Reach and readers8.2K

Седьмое задание ЕГЭ по информатике кажется проходным: выучил пару формул, умножил ширину на высоту — и законный балл в кармане. Но статистика неумолима: именно на кодировании изображений абитуриенты регулярно теряют баллы из-за путаницы с битами/килобайтами и коварных правил округления. В этой статье мы разбираем железобетонную «базу» задания №7 с нуля. Никакой воды — только логика работы памяти, элегантные вычисления через степени двойки и готовые шаблоны, которые помогут щёлкать эти задачи на автомате.

Читать далее

От написания промптов к проектированию контекста. Или один очень обширный материал по Context Engineering

Level of difficultyMedium
Reading time21 min
Reach and readers15K

Если вы часто упираетесь в лимиты Claude Code / Codex и не понимаете, куда улетают токены — этот лонгрид для вас

Да и вообще всем, кто хочет разбираться в современных AI инструментах, будет полезно

Разбираемся

1. Как устроено контекстное окно изнутри: 7 слоёв (от весов модели до MCP и skills)
2. Что такое attention и при чем тут O(n²)
3. Как работает agent loop на примере 4 вызовов модели
4. Почему prompt caching экономит до 10× в лимитах при правильной работе с ним

Сууупер длинная статья

Че там Че там 👀
1
23 ...

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity