Search
Write a publication
Pull to refresh
46
0
Send message

Реверс-инжиниринг радиоуправляемого танка с помощью GNU Radio и HackRF

Reading time10 min
Views33K

Год назад наша CTF-команда на крупном международном соревновании RuCTF в Екатеринбурге в качестве одного из призов получила радиоуправляемый танк.


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


В статье я расскажу, как при помощи GNU Radio и HackRF One можно c нуля разобраться в беспроводном протоколе управления танком, как декодировать его пакеты и генерировать их программно, чтобы управлять танком с компьютера.


image

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

DMA для новичков или то, что вам нужно знать

Reading time5 min
Views150K
Всем привет, сегодня мы с вами поговорим о DMA: именно о той технологии, которая помогает вашему компьютеру воспроизводить для вас музыку, выводить изображение на экран, записывать информацию на жесткий диск, и при этом оказывать на центральный процессор просто мизерную нагрузку.
Если вам интересно, добро пожаловать под кат...

ПЛИС — мои первые шаги

Reading time11 min
Views155K
Недавно я все-таки сделал свой первый шаг к ПЛИС и призвал вас за собой. Мое фанатическое увлечение ПЛИС и идея о том, что ПЛИС является лучшей платформой для создания любых устройств приобрела религиозный характер. Моя секта ПЛИСоводов проповедует полный отказ от микроконтроллеров, а особо экстремистская ветвь проповедует отказ не только от софт процессоров, но и вообще от последовательных вычислений!

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

Эта статья для новичков. В ней я опишу типичные проблемы, вопросы, заблуждения, ошибки, которые могут появиться в самом начале обучения (потому что они появились у меня). Однако, контекст статьи ограничен тем, что разработка ведется на ПЛИС от Altera в среде Quartus на языке Verilog.

Подробности

Спросите Итана №78: почему E = mc2?

Reading time5 min
Views38K

Самое знаменитое уравнение Эйнштейна вычисляется более красиво, чем это можно было бы ожидать.



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


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

Эйнштейн вывел уравнение E = mc2. Но единицы энергии, массы, времени, длины уже были известны до Эйнштейна. Так как же оно так красиво получается? Почему там нет какой-нибудь константы для длины или времени? Почему это не E = amc2, где a – какая-нибудь константа?

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



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

Спросите Итана №66: Мы что, нашли тёмную материю?

Reading time5 min
Views13K

Ни в коем случае. Найденное нами, пусть и загадка, но уж точно не потерянная масса нашей Вселенной


Время вбирает всё в себя, время уносит прошлое всё дальше, и наконец остается только темнота. Тьма.
— Стивен Кинг

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

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

Давайте же дадим Джо то, что ему нужно!



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


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

Спросите Итана №48: Откуда взялось космическое вращение?

Reading time3 min
Views19K
Читатель спрашивает:
Мне 44 года, и с самого детства меня интересовал следующий вопрос. От микромира до макромира, везде вокруг нас мы наблюдаем вращение – электроны вокруг ядра, луны вокруг планет, планеты вокруг звёзд, звёзды вокруг галактических центров (как я думаю). Вращаются ли вокруг чего-либо галактики? Если да, то вокруг чего? А прочтя "Спросите Итана №45", я подумал — не вращаются ли вселенные вокруг чего-либо? Можно ли это как-то узнать?


Тут сразу много вопросов, поэтому начнём с самого начала.

image

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

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

Спросите Итана №45: как далеко простирается Мультивселенная?

Reading time6 min
Views20K
Читатель спрашивает:
Не могли бы вы объяснить подробнее теорию мультивселенной? Будут ли в разных вселенных разные законы? Или у них всех будут некие фундаментальные законы? Или это всё будет одновременно? Исходят ли они из центра нашей Вселенной, или каждая из них имеет свою точку большого взрыва?

Тут задано сразу много вопросов, поэтому начнём с основ – со Вселенной, которую мы знаем и любим.



Каждая точка в этом видео – это галактика, содержащая от миллионов до триллионов звёзд. Крупнейшие имеют массу, в тысячи раз превосходящую массу Млечного пути. И при всём при том этот «полёт» показывает нам лишь 0,0002% всех галактик, из тех, что видны нам.
Читать дальше →

Кровавый урожай

Reading time6 min
Views76K
by Alexis C. Madrigal, The Atlantic

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

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

Кросскомпиляция под ARM

Reading time8 min
Views89K
Достаточно давно хотел освоить сабж, но всё были другие более приоритетные дела. И вот настала очередь кросскомпиляции.

В данном посте будут описаны:

  1. Инструменты
  2. Элементарная технология кросскомпиляции
  3. И, собственно, HOW2

Кому это интересно, прошу под кат.
Читать дальше →

Бутлоадер с AES-128 и EAX на AVR Assembler в 1024 байта

Reading time23 min
Views80K

Или как я перестал бояться и полюбил ассемблер

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

Хорошая мера защиты — обновления программного обеспечения. Китайские клоны автоматически отмирают после каждой новой прошивки, а лояльные пользователи получают нашу любовь, заботу и новые возможности. Робин Гуды при таком раскладе, естественно, достанут свои логические анализаторы, HEX-редакторы и начнут ковырять процесс прошивки с целью ублажения русско-китайского сообщества.

Хоть у нас и не было проектов, которые требуют подобных мер защиты, было понятно: заняться этим надо, когда-то это пригодится. Погуглено — не найдено, придумано — сделано. В этой статье, я расскажу, как уместить полноценное шифрование в 1 килобайт и почему ассемблер — это прекрасно. Много текста, кода и небольшой сюрприз для любителей старого железа.
Читать дальше →

О метастабильности в электронике

Reading time8 min
Views15K
Многие начинающие разработчики часто недооценивают влияние асинхронности на работу цифровых схем. В проектах с одним тактовым генератором сложностей не возникает: схема полностью синхронна, и от разработчика требуется только соблюдать требования Setup и Hold. Но как только в системе появляется второй тактовый генератор, возникает проблема CDC – Clock Domains Crossing, связанная с асинхронностью работы участков схемы, работающих от независимых (асинхронных) генераторов. На практике эта проблема выливается в усложнение маршрута проектирования, связанное с особенностями статического временного анализа в САПР, а в железе проявляется в виде такого эффекта как метастабильность, и аномальное поведение триггеров. Собственно, о метастабильности здесь уже писали, но я предлагаю чуть глубже разобраться в проблеме.
Читать дальше →

Как я Дота-лигу открывал. Часть 1

Reading time12 min
Views36K

Шел 2006й год. Это были хорошие студенческие годы, время расцвета и становления игры DotA Allstars. В те времена все играли в доту через официальный сервер от Blizzard — Battle.net. Индустрия была очень скудная — не было нормальных трансляций, интернет у многих был еще на adsl, а из событий — мало освещаемые турниры с призами до $5000. Тогда инициативные игроки собирались в группы и организовывались в кланы. Именно тогда мне позвонил мой товарищ и предложил организовать первую Дота-лигу в СНГ. Это был настоящий вызов для меня, и он был принят…
Читать дальше →

htop и многое другое на пальцах

Reading time26 min
Views328K


На протяжении долгого времени я не до конца понимал htop. Я думал, что средняя загрузка [load average] в 1.0 означает, что процессор загружен на 50%, но это не совсем так. Да и потом, почему именно 1.0?

Затем я решил во всём разобраться и написать об этом. Говорят, что лучший способ научиться новому — попытаться это объяснить.
Читать дальше →

Квантовые точки и зачем их ставят

Reading time4 min
Views63K
Доброе время суток, Хабражители! Я думаю многие заметили, что все чаще и чаще стала появляться реклама о дисплеях основанных на технологии квантовых точек, так называемые QD – LED (QLED) дисплеи и несмотря на то, что на данный момент это всего лишь маркетинг. Аналогично LED TV и Retina это технология создания дисплеев LCD, использующая в качестве подсветки светодиоды на основе квантовых точек.

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


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

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

Reading time19 min
Views153K
В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

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

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

После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
Читать дальше →

Как объяснить бабушке, что такое Agile за 15 минут с картинками

Reading time7 min
Views1.2M
«Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера.»
— закон Хофштадтера

image

Самый просматриваемый ролик на YouTube по теме agile. 744 625 просмотров на момент публикации данной статьи. Легкий стиль изложения, картинки и всего 15 минут — лучшее что я видел. TED отдыхает.

Где предел минимального Hello World на AVR?

Reading time5 min
Views58K


Предупреждение: В данной статье повсеместно используются грязные хаки. Её можно воспринимать только как пособие «как не надо делать»!

Как только я увидел статью «Маленький Hello World для маленького микроконтроллера — в 24 байта», то мой внутренний ассемблерщик наполнился негодованием: «Разве можно так разбрасываться драгоценными байтами?!». И хотя я давно перешёл на C, это не мешает в критических местах проверять быдлокод компилятора и, если всё плохо, то иногда можно слегка изменить C-код и получить заметный выигрыш в скорости и/или занимаемом месте. Либо просто переписать этот кусок на ассемблере.

Итак, условия нашей задачи:

  1. AVR микроконтроллер, у меня больше всего в закромах оказалось ATMega48, пусть будет он;
  2. Тактирование от внутреннего источника. Дело в том, что внешне можно тактировать AVR со сколь угодно малой частотой, и это сразу переводит нашу задачу в разряд неспортивных;
  3. Мигаем светодиодом с различимой глазом частотой;
  4. Размер программы должен быть минимальным;
  5. Вся недюженная мощь микроконтроллера бросается на выполнение задачи.

Погрузиться на Low level

Тестируем VoCore в хакспейсе — микро-компьютер с WiFi на Linux/OpenWrt

Reading time4 min
Views146K


VoCore — это такой микрокомпьютер с Linux/OpenWrt на борту, который совсем недавно с помощью краудфандинга собрал более $100к (из заявленных $6k). Внутри этой штучки: MIPS процессор 360МГц, WiFi 802.11n, Ethernet 10/100Мбит/с, и куча GPIO. Все уместилось на платке размерами 25х25мм!

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

А самое главное, мы объявляем конкурс на раздачу трех VoCore тем, кто предложит самые лучшие идеи его применения. Подробности, опять же, под катом!

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

Современная операционная система: что надо знать разработчику

Reading time22 min
Views68K

Александр Крижановский (NatSys Lab.)


Александр Крижановский

Нас сегодня будет интересовать операционная система – ее внутренности, что там происходит… Хочется поделиться идеями, над которыми мы сейчас работаем, и отсюда небольшое вступление – я расскажу о том, из чего состоит современный Linux, как его можно потюнить?

По моему мнению, современная ОС – это плохая штука.




Дело в том, что на картинке изображены графики сайта Netmap (это штуковина, которая позволяет вам очень быстро захватывать и отправлять пакеты сетевого адаптера), т.е. эта картинка показывает, что на одном ядре с разной тактовой частотой до 3 ГГц Netmap позволяет 10 Гбит – 14 млн. пакетов в сек. отрабатывать уже на 500 МГц. Синенькая линия – это pktgen – самое быстрое, что, вообще, есть в ядре Linux’а. Это такая штуковина – генератор трафика, который берет один пакет и отправляет его в адаптер много раз, т.е. никаких копирований, никакого создания новых пакетов, т.е., вообще, ничего – только отправка одного и того же пакета в адаптер. И вот оно настолько сильно проседает по сравнению с Netmap (то, что делается в user-space показано розовой линией), и оно вообще где-то там внизу находится. Соответственно, люди, которые работают с очень быстрыми сетевыми приложениями, переезжают на Netmap, Pdpdk, PF_RING – таких технологий море сейчас.
Читать дальше →

Из физиков в Data Science (Из двигателей науки в офисный планктон). Вторая часть

Reading time22 min
Views47K


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


(Заранее извиняюсь за обилие английских слов, какие-то из них я не знаю как перевести, а какие-то мне переводить не хочется.)


Information

Rating
Does not participate
Location
Ростов-на-Дону, Ростовская обл., Россия
Registered
Activity