Обновить

Разработка

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

Партизанский Telegram: как поднять прокси-невидимку, прикидываясь онлайн-магазином

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

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

Это продолжение серии про обход блокировок Telegram. В первой части мы подняли MTProxy на nineseconds/mtg с Fake TLS. Работает, подключаешь и забываешь. Но есть нюанс.

Fake TLS маскирует протокол. DPI смотрит на пакеты и видит обычный TLS к 1c. Всё красиво, пока к вашему серверу не придёт краулер и не попробует на него зайти.

Читать далее

Хакнуть ИИ: обзор игры «Защищ[AI]» — киберполигона для изучения промт-инъекций

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

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

Сегодня не существует универсальных методов, полностью исключающих промт-инъекции в LLM. Это делает их источником долгосрочных рисков для организаций, проходящих ИИ-трансформацию. Проблема актуальна не только для IT- и ИБ-специалистов, но и для обычных пользователей. Теория подробно описана, однако без практики ее сложно воспринимать как реальную угрозу.

На связи Андрей Давид, руководитель отдела продуктов клиентской безопасности в Selectel. Под катом разберем, почему такие атаки остаются актуальной угрозой для LLM-приложений и как на практике выглядит их эксплуатация — на примере обучающей игры «Защищ[AI]». Это «интерактивный киберполигон», где можно безопасно попробовать атаковать ИИ-ассистента и увидеть, почему одних «запретов в системном промте» недостаточно.

Под кат!

Пишем свою OS на Zig: Первый релиз с многоядерностью, FAT32 и скриптами

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

11 000 строк кода, 95% Zig, 0% стандартной библиотеки: история создания NovumOS с поддержкой SMP, FAT32 LFN и Huge Pages.

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

Меня зовут Антон, и я хочу поделиться историей создания своей собственной операционной системы.

Это моя первая статья и первый серьезный релиз системы (v0.20). Многие разработчики мечтают написать свою операционную систему. Обычно этот путь заканчивается на выводе "Hello World" в VGA-буфер. Я тоже начинал с малого (C# COSMOS), потом уходил в Ассемблер, бросал, возвращался... Но в этот раз я решил пойти до конца.

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

Встречайте NovumOS...

Читать далее

Chrome DevTools — не панацея. Что умеет Firefox

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

Бьюсь об заклад вы привыкли к инструментам разработчика в Chrome. Ежедневная проверка вёрстки, просмотр логов или анализ загрузку страницы делается на автопилоте. Но что если есть альтернатива, которая в некоторых моментах работает иначе и часто даже лучше?

Инструменты разработчика в Firefox создавались отдельно и имеют свою историю. Их команда не ставила задачу сделать копию Chrome. Вместо этого они сфокусировались на своих идеях о том, как сделать отладку более наглядной. В результате некоторые вещи там реализованы более прямолинейно и понятно. Конечно, не всё идеально, и у Chrome есть свои преимущества. Об этом сегодня и поговорим.

В этой статье мы посмотрим на Firefox DevTools в деталях. Отойдем от банальных соревнований в стиле «у кого DevTools длиннее». Вместо этого разберем, в каких ситуациях панель Firefox может сэкономить вам время, а в каких всё же удобнее остаться в Chrome. Откроем для себя несколько приёмов, которые можно добавить в свою ежедневную работу, независимо от браузера.

Читать далее

Повышаем стабильность Telegram: поднимаем партизанский MTProxy с Fake TLS

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


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

Telegram блокируют всё активнее. VPN детектят и режут. Обычные прокси живут неделю. Что делать? Ответ MTProto Proxy с Fake TLS: специализированный прокси, который маскируется под обычный HTTPS-трафик к легитимным сайтам вроде 1c или sberbank. Для DPI это выглядит как обычный визит на сайт, а на деле стабильный Telegram.

Сегодня разберём полную инструкцию: от выбора правильного VPS до эффективной маскировки и мониторинга.

Читать туториал

Изучаем, как работает клавиатура в Linux, и пишем шуточный модуль ядра

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

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

Читать далее

Мой локальный агент помнит проект лучше меня. Контекст — 32K токенов. Расскажу, как

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

Мой агент на Llama 3.1 8B в третий раз спросил, как меня зовут. Я представился 200 сообщений назад. Контекст переполнился — начало разговора уехало. Большие контексты не спасают: дорого, «Lost in the Middle», локально не влезает. Суммаризация теряет детали. Я сделал по-другому — три типа внешней памяти: Redis для фактов, ChromaDB для семантического поиска, файлы для документов. Контекст маленький, память большая. Внутри — код на Python и грабли, на которые я уже наступил.

Читать далее

Как работало АЛУ процессора Intel 8086

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

В 1978 году Intel представила процессор 8086 — революционный чип, приведший к созданию современной архитектуры x86. Однако в отличие от современных 64-битных процессоров, 8086 был 16-битным. Его арифметически-логическое устройство (АЛУ, ALU) работает с 16-битными значениями, выполняя арифметические операции (например, сложение и вычитание), а также логические операции, включающие побитовые AND, OR и XOR. АЛУ процессора 8086 — сложная часть чипа, выполняющая 28 операций1.

В этом посте я расскажу об управляющих АЛУ схемах, генерирующих сигналы управления конкретных операций. Этот процесс сложнее, чем можно было бы ожидать. Во-первых, команда машинного кода приводит к исполнению множества команд микрокода. Использование АЛУ — это двухэтапный процесс: одна команда микрокода (микрокоманда) конфигурирует АЛУ под нужную операцию, а вторая микрокоманда получает результаты из АЛУ. Кроме того, на основании микрокоманды и команды машинного кода схема управления отправляет в АЛУ сигналы управления, переконфигурируя его под нужную операцию. Таким образом, эта схема становится источником «клея» между микрокомандами и АЛУ.

На фотографии показан процессор 8086 под микроскопом. Я разметил основные функциональные блоки. Архитектурно чип разделён на блок интерфейса шины (Bus Interface Unit, BIU) в верхней части и блок исполнения (Execution Unit, EU) внизу. BIU занимается действиями с шиной и памятью, а также упреждающей выборкой команд, а EU исполняет команды. В правом нижнем углу находится ROM микрокода, хранящее микрокоманды. АЛУ (ALU) находится в левом нижнем углу; биты 7-0 расположены сверху, биты 15-8 — снизу, а между ними расположена схема флагов состояний. Темой этой статьи станет схема управления АЛУ, выделенная внизу красным цветом.

Читать далее

Qwen-Image-Layered: будущая замена Photoshop (или нет)

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

Привет, Хабр! Я Антон, инженер по информационной безопасности в Selectel. В 2023 году Adobe расширила возможности Photoshop генеративными AI-функциями вроде Generative Fill — они заметно упростили редактирование сцен и отдельных объектов. Параллельно развивались и универсальные модели, работающие с изображениями вне привычных графических редакторов. Так, всего месяцем ранее Alibaba представила Tongyi Qianwen (Qwen) — семейство генеративных моделей, которое со временем вышло далеко за рамки чат-ботов.

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

Под кат!

Как я сделал приложение для обхода Discord и YouTube на macOS (и Windows тоже)

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

Как я сделал приложение для обхода Discord и YouTube на macOS (и Windows тоже)

TL;DR: Написал open-source десктопное приложение UnblockPro на Electron, которое в один клик обходит DPI-блокировки Discord, YouTube и других сервисов. Работает на macOS и Windows. Без VPN, без серверов, без абонентки. Код на GitHub — by-sonic/unblock-pro.

Зачем вообще это было нужно

С осени 2024 года ситуация с доступом к Discord и YouTube в России стала, мягко говоря, непростой. VPN — вариант, но:

Платные сервисы стоят денег и сливают скорость

Бесплатные — сливают данные

Не все работают стабильно

Настраивать VPN для каждого устройства — боль

Соник, что ты сделал?

Невозможные возможные трюки и интересные алгоритмы на C

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

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

Идея написать эту статью зародилась из моего поста, после него я начал серию статей, которая раскрывала много интересных моментов — от математических алгоритмов и оптимизации до ГПСЧ и битовых трюков.

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

В этой статье будет еще порция свежих алгоритмов, фанов, трюков, еще больше магии и скорости! Код Мортона, GNU расширенияи и многое другое.

Добро пожаловать в новую часть. Прошу под кат — там будет жарко, быстро и очень, очень круто.

Читать далее

Как математика помогала выжить в 90-е

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

В 1994 году, когда вся страна шла вразнос, а парламент стоял обгорелый после обстрела танками, я почему-то решил завязать с торговлей и поступить в МГТУ им. Баумана на кафедру «Ядерные реакторы и энергетические установки» факультета «Энергомашиностроение».

То ли потому, что детство провёл рядом со Смоленской АЭС и нахватался радиоактивных выбросов от советского реактора РБМК-1000. То ли потому, что в подростковом возрасте, будучи выгнанным из 8-го класса школы за асоциальное поведение, я поступил в Брянский машиностроительный техникум. А там один из моих преподавателей хвастался тем, что подавал документы в Бауманку - нет, поступить ему не удалось, но саму попытку он считал большим достижением. Видимо, на неокрепшие мозги 15-летнего ботаника это произвело неизгладимое впечатление. И когда я заработал на дикой торговле времён распада СССР немного денег, я решил, что надо учиться в Бауманке и стать инженегром.

В те голодные времена в университете каждый выживал как мог. Университет платил практически ничего от слова совсем. Одни бросали преподавать и шли работать кому повезло, те по специальности или близко, кому не везло, те работали, где придется. Один из наших преподавателей, подрабатывал торговым представителем и предлагал мне, как способному и перспективному студенту атомщику тоже развозить по магазинам печенье и вафли. Но я к тому времени уже был бывший владелец магазинов, и такой фигней заниматься не хотел. Я хотел быть ученым физиком или хотя бы инженером (Спойлер у меня не получилось, и американская коррупция сделала из инженера физика быдлокодера об этом я писал ранее). 

Читать далее

Как сделать программиста счастливее

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

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

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

Читать далее

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

Как обстоят дела с WebAssembly?

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

Когда заходит разговор про WebAssembly, где-нибудь в начале дискуссии обычно появляется комментарий в духе «А что, собственно, произошло?»

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

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

Читать далее

000xpda или как я реверсил электронный дневник и нашел ключи в логах

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

В этом учебном году в нашей школе внедрили новый электронный дневник. Дизайн в стиле «привет из 2010-го», медленная загрузка - типичный набор для регионального госсектора. Глядя на всё это, я подумал: если визуальная часть сделана так лениво, то что же там под капотом?

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

В этой статье я расскажу, как декомпиляция APK, USB-отладка и пара скриптов на Python помогли мне обойти защиту системы, написать собственного Telegram-бота для получения оценок, найти огромную дыру в безопасности и в очередной раз доказать, что концепция «Security through obscurity» не работает, если за дело берется школьник с JADX.

В программе:

Перехватываем X1_SSO через adb logcat.

Реверсим класс Crypt и реализуем его логику на Python.

Ищем загадочный pdakey и находим «магическую» строку 000xpda.

Находим полноценный IDOR и смотрим чужие оценки

Пишем бота, который работает быстрее официального приложения.

Читать далее

Ностальгические игры: Меч и Магия VIII

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

В 2000 году, когда у нас вышла первая лицензированная Might and Magic — восьмая часть, — большинство геймеров смогли впервые познакомиться с легендарной серией ролевых игр старой школы. Звучит странно, но всё было именно так: сначала официально появилась «восьмёрка», и только потом до нас добрались лицензированные Might and Magic 6 и 7. Я, как и многие тогда, начал знакомство с серией именно с VIII — и уже гораздо позже открыл для себя остальные части, постепенно втянулся во вселенную и неплохо разобрался в её лоре. Но в те годы я даже не подозревал, что события моих любимых «Героев 3» (как и вторых) происходят в том же мире и почти в одно время с Might and Magic 6, 7 и 8.

Игра продолжила знаменитую серию Might and Magic и стала прямым сюжетным наследником прошлых частей, но одновременно — их лебединой песней. В ней вновь предлагается окунуться в обширный мир «Меча и Магии» от первого лица, собрать отряд героев, обучив их множеству навыков и заклинаний, добыть эпические предметы и артефакты, чтобы после сразиться с многочисленными монстрами, знакомых многим по «Героям». Однако на фоне предыдущих хитов серии Might and Magic VIII привнесла несколько противоречивых нововведений и получила куда более сдержанный отклик — впервые в истории серии оценки критиков и геймеров стали скорее «средними», чем восторженными. Сегодня я постараюсь рассмотреть историю разработки Might and Magic VIII, пройтись по её геймплейным особенностям и рассказать, как с помощью модов «прокачать» любимый проект, чтобы удобно играть в 2026 году. Ну и, конечно, выложу для вас готовую сборку. Ладно, хватит прелюдий — поднимаем старые сейвы, накидываем свежие моды и ныряем в любимую классику!

Читать далее

Элитный вайбкодинг

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

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

Вы же хотели узнать как обстоят дела в современном ИТ?

Читать далее

Ткачество 2.0: станок — прямо из 3D‑принтера, начинка — на Arduino

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

Моя жена и ее сестры занимаются ткачеством не одно десятилетие. В конце 2024 года я купил 3D-принтер Elegoo Neptune 4 Pro, и начал осваивать проектирование деталей в TinkerCad. Параллельно, чтобы занять свободное время на пенсии, взялся за курс по программированию Arduino от CraftingTable (ранее — Inventr.io).

Идея родилась сама собой: почему бы не создать настольный автоматизированный ткацкий станок? Однако реальность быстро дала понять — задача не из легких. В этом дебютном для меня руководстве подробно описываю создание прототипа. Увидеть получившееся устройство в действии можно на моем YouTube-канале Greg Zwadlo.

Достать паяльник, заправить 3D‑принтер →

Как передать сигнал по кабелю правильно

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

Как передать сигнал по кабелю правильно? Что подразумевается под словом «правильно»? В технике правильно – это передать сигнал в целости и сохранности, наловив по пути по-минимуму помех. Итак, какие у нас есть варианты? Если интересно, жмите "Читать далее"!

Читать далее

Cистема визуально-инерциальной навигации для дрона на C++

Уровень сложностиСложный
Время на прочтение10 мин
Охват и читатели20K

Дроны, которые работают на GPS, глушатся и это большая проблема для летательных аппаратов. Сигнал от спутников GPS проходит около 20 000 км и достигает антенны дрона с минимальной мощностью. Любая наземная глушилка, излучающая шум на частотах L1/L2/L5, для приемника дрона оказывается в тысячи раз громче спутников. Приемник слепнет, дрон теряет координаты, переходит в аварийный режим и сносится ветром.

И поэтому нам нужна MVIO (Monocular Visual Inertial Odometry).

Это технология, которая позволяет дрону понимать свое положение в пространстве, используя только одну камеру и IMU. В этой статье мы разберем реализацию такой системы на C++. Мы увидим, как объединить видеопоток и данные акселерометра в реальном времени, используя фильтр Калмана и библиотеку OpenCV.

Читать далее