Как стать автором
Обновить
40
0

Пользователь

Отправить сообщение

Удивительное устройство USB-флешки Kingston DataTraveler DT6000 и восстановление информации, утраченной в результате сбоя

Время на прочтение4 мин
Количество просмотров137K
Приветствую уважаемых Хабровчан. Я Артем Макаров aka Robin, ведущий инженер компании Хардмастер, уже много лет специализируюсь на восстановлении данных с разнообразных носителей. Сегодня хотел бы поделиться с вами историей восстановления файлов с одной весьма любопытной флешки. Надеюсь получить отзывы на свой хабрадебют в комментариях.

Несмотря на то, что перевидать всяких девайсов довелось огромную кучу, с задачей, подобно описываемой далее, раньше мне сталкиваться не приходилось.
Читать дальше →
Всего голосов 135: ↑133 и ↓2+131
Комментарии77

Ethernet поверх USB на STM32F4

Время на прочтение9 мин
Количество просмотров58K


Недавно возникла идея заставить плату на базе МК STM32F4 работать по сети. Поскольку на борту отсутствовал Ethernet PHY контроллер, то единственным вариантом было использовать USB FullSpeed интерфейс для эмуляции Ethernet устройства. Распространённый стандарт USB-класса, реализующий данную функцию, называется RNDIS.
К своему огорчению, поиск RNDIS драйвера для STM32 не увенчался успехом. Впрочем, это не удивило, т.к. открытые примеры использования USB порта у STM32 ограничиваются только теми, что предоставил нам производитель.
Захотелось исправить сию несправедливость. А заодно и поиметь нужные исходники, благо в будущем они пригодятся.
Сейчас, когда демонстрационная версия библиотеки готова, выкладываю её в свет на правах MIT-лицензии. Поэтому, все кому библиотека интересна — пользуйтесь «на здоровье». Библиотека имеет название LRNDIS, первая буква которого означает использование сетевого стека для встраиваемых систем «LwIP».
Для демонстрации возможностей библиотеки был создан пример на плате stm32f4discovery. Его работа заключается в поддержке основных сервисов (DHCP и DNS сервера) и передаче usb-хосту запрашиваемых WEB-страниц. Таким образом, наш discovery превратился в почти полноценный WEB-сервер, работающий по порту USB!
Пару слов о том, где это применимо.
В быту RNDIS устройства обычно являются USB-модемами для доступа в Интернет. Возможно, такое применение, действительно, окажется полезным, если разработчик выберет STM32 в роли связующей цепочки между ПК и радиочастотным (или другим) трансивером. Или, может быть, захочет расширить собственную сеть на Ethernet-сегмент?
Другое применение, в котором нахожу основную пользу для себя, — это интерфейс управления сложными устройствами. Типовое решение в этой области — создание терминального ПО. При этом приходится заниматься его поддержкой вместе с поддержкой устройства, что бывает неудобным. Собственно, в отказе от такой схемы в пользу управляющего Web-интерфейса и заключается смысл возможного применения библиотеки. Вспомните Web-интерфейсы настройки роутеров. Удобно. Красиво. Без лишнего ПО.

Итак, если Вы заинтересовались, читайте далее…
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии17

Операционная система реального времени QNX: Знакомство

Время на прочтение6 мин
Количество просмотров141K
Так сложилось, что моя деятельность связана с операционной системой реального времени (ОСРВ) QNX. Уже несколько лет занимаюсь разработкой как под эту ОС, так и некоторых частей самой системы. Обратил внимание на то, что поиск на хабре выводит немного результатов по запросу QNX, однако, мне кажется, что эта ОСРВ может быть интересна не только специалистам по встраиваемым и высоконадёжным системам, но и более широкой публике. Не секрет, что планшетный компьютер BlackBerry PlayBook производства компании RIM основан на QNX и имеет популярность и у нас.

Немного о QNX


ОСРВ QNX это не клон или дистрибутив Linux или ответвление какой-то другой UNIX-подобной системы. QNX самостоятельная UNIX-подобная операционная система реального времени, основанная на микроядре и передаче сообщений. Современные версии QNX имеют поддержку стандартов POSIX (и сертифицированны по ним). Первая версия QNX вышла в далёком 1981 году. С тех пор утекло достаточно много времени и поколения QNX сменяли друг друга: QNX2, QNX4 и, наконец, QNX 6 (или QNX Neutrino). Старичок QNX2 и сейчас ещё используется, хотя его расцвет пришёлся на 80-е годы прошлого столетия. Надёжная и более современная ОСРВ QNX4 могла конкурировать на десктопе с Windows в середине 90-х
Да, я хочу узнать больше о QNX.
Всего голосов 123: ↑117 и ↓6+111
Комментарии70

Краткий курс компьютерной графики: пишем упрощённый OpenGL своими руками, статья 3.14 из 6

Время на прочтение15 мин
Количество просмотров31K

Содержание основного курса




Общение вне хабра

Если у вас есть вопросы, и вы не хотите задавать их в комментариях, или просто не имеете возможности писать в комментарии, присоединяйтесь к jabber-конференции 3d@conference.sudouser.ru

4 Приветствие и вступление

Нумерация в прошлой статье закончилась на 3, в этой будем продолжать нумеровать насквозь.
UPD: ВНИМАНИЕ! Раздел, начиная с номера 3.1, 3.14 и 3.141 и далее, будет о тонкостях реализации основы основ компьютерной графики — линейной алгебры и вычислительной геометрии. О принципах графики пишет haqreu, я же буду писать о том, как это можно внятно запрограммировать!

Эта статья является продолжением серии статей о практической реализации элементов вычислительной геометрии, и, в частности, программного отрисовщика, с использованием C++98. Мы с haqreu сознательно идем на использование прошлой версии стандарта и написание собственной геометрической библиотеки для того, чтобы, во-первых, выпустить код примеров, которые без особых трудностей будут компилироваться большинством имеющихся компиляторов, а во-вторых, чтобы в нашем коде не было ничего, что скрыто в недрах библиотеки. В статье излагаются вопросы реализации шаблона прямоугольной матрицы template<size_t DimRows,size_t DimCols,typename number_t> class mat;

4.1 Благодарности
Я выражаю огромную признательность haqreu, как основоположнику данного курса. Так держать!
Я очень признателен lemelisk за предварительное рецензирование и ревью моих исходников. Спасибо за плодотворные дискуссии!
Также я должен поблагодарить Mingun за ценное замечание об оформлении шаблонов. Надеюсь, они стали доступнее для прочтения.
Познавательного чтения!
Всего голосов 49: ↑43 и ↓6+37
Комментарии64

STM32 и FreeRTOS. 3. Встаем в очередь

Время на прочтение6 мин
Количество просмотров56K
Раньше: про потоки и про семафоры

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

Возьмем наиболее яркий и богатый проблемами пример, на котором «валятся» большинство неопытных программистов. Есть мощный и достаточно быстрый микроконтроллер. К нему подключен с одной стороны адаптер com-порта, через который пользователь подает команды и получает результаты, а с другой — шаговый двигатель, который согласно этим командам поворачивается на какой-то угол. И конечно же, прикольная кнопочка, которая тоже что-то этакое значит для пользователя. Где можно наловить проблем?
Читать дальше →
Всего голосов 34: ↑33 и ↓1+32
Комментарии7

STM32 и FreeRTOS. 1. Развлечение с потоками

Время на прочтение7 мин
Количество просмотров153K
Данный цикл из 5 статей рассчитан на тех, кому стало мало возможностей привычных «тинек» и ардуинок, но все попытки перейти на более мощные контроллеры оканчивались неудачей или не приносили столько удовольствия, сколько могли бы. Все ниженаписанное проговаривалось мной много раз на «ликбезе» программистов нашей студии (которые часто сознавались, что переход с «тинек» на «стмки» открывает столько возможностей, что попадаешь в ступор, не зная за что хвататься), поэтому смею надеяться, что польза будет всем. При прочтении подразумевается, что читающий — человек любопытный и сам смог найти и поставить Keil, STM32Cube и понажимать кнопки «ОК». Для практики я использую оценочную плату STM32F3DISCOVERY, ибо она дешевая, на ней стоит мощный процессор и есть куча светодиодиков.

Каждая статья рассчитана на «повторение» и «осмысление» где-то на один околовечерний час, ибо дом, семья или отдых…



Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии35

Как мы делали робота-футболиста

Время на прочтение8 мин
Количество просмотров15K
25 ноября 2012 года в Таллинне проводилось крупнейшее в Балтии соревнование роботов — «Роботекс». Мы решили построить робота в категории профессиональный футбол. Конечно, это будет не Криштиану Роналдо, но вызов интересный. Я опишу детали создания и программирования робота. Имя его — Палмер.

Сам футбол проходит на площадке зеленого цвета, на котором расположены 11 оранжевых мячиков для гольфа. Имеются ворота, 15 см высотой и примерно 37 см шириной, желтые у одной стороны и синие с другой. Робот должен искать мячи на поле, захватывать их, выбирать нужные ворота и забивать. На поле находятся два робота. Побеждает тот, кто забьет больше мячей. Технические требования к роботу: цилиндр высотой 35 см и диаметром 35 см. Все просто.
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии19

GPS Tracker на ардуино своими руками

Время на прочтение5 мин
Количество просмотров217K
После нескольких экспериментов с ардуиной решил сделать простенький и не очень дорогой GPS-tracker с отправкой координат по GPRS на сервер.
Используется Arduino Mega 2560 (Arduino Uno), SIM900 — GSM/GPRS модуль (для отправки информации на сервер), GPS приёмник SKM53 GPS.
Читать дальше →
Всего голосов 49: ↑43 и ↓6+37
Комментарии58

Доработка USB-стека в микроконтроллерах STM32 и TivaC

Время на прочтение5 мин
Количество просмотров31K
Наличие USB порта в современных микроконтроллерах открывает широкие возможности для самостоятельного изготовления разнообразных управляемых с компьютера устройств. На практике, однако, выясняется, что поставляемые производителем библиотеки для работы с USB нуждаются в доработке. Если вам интересен опыт подобной доработки для двух популярных семейств МК — добро пожаловать под кат.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии26

Рисуем анимированную сцену с помощью css

Время на прочтение7 мин
Количество просмотров50K
Передохнём от верстки всяких пользовательских интерфейсов и просто порисуем на CSS. Рисовать будем такую вот сцену:



Смотреть на jsfiddle.

В статье я попробую описать пошаговое создание этой сцены.
Поехали
Всего голосов 51: ↑44 и ↓7+37
Комментарии23

Простой «железный» терминал

Время на прочтение5 мин
Количество просмотров70K
Данная статья является продолжением описания микроконтроллера на процессоре 6502 «Аюша». В ней мы рассмотрим, как превратить контроллер в полноценный компьютерный комплект, причём в качестве основы не обязательно делать «Аюшу», сойдёт любой иной девайс. Ну или применим собранный терминал для чего-нибудь ещё. И опять же, для сборки будет применён «подножный корм»…

image
Читать дальше →
Всего голосов 71: ↑71 и ↓0+71
Комментарии20

Основы CG-рисунка на примерах: рисуем осциллограф, применяем 3D

Время на прочтение3 мин
Количество просмотров153K


Всем привет! Меня зовут Иван Смирнов, я работаю концепт-художником в Allods Team, игровой студии Mail.Ru Group, на проекте Skyforge. Помимо этого я преподаю на факультете концепт-арта в Scream School и веду онлайн-курсы. Не так давно я проводил лекцию по основам CG-рисунка: в частности, речь шла о том, как нарисовать простой предмет, например, осциллограф. Материалами этой лекции я спешу поделиться с вами. Осторожно, траффик!
Читать дальше →
Всего голосов 124: ↑117 и ↓7+110
Комментарии46

Padding Oracle Attack или почему криптография пугает

Время на прочтение7 мин
Количество просмотров67K
Все мы знаем, что не следует самостоятельно реализовывать криптографические примитивы. Мы также в курсе, что даже если мы хитрым образом развернем порядок букв во всех словах сообщения, сдвинем каждую букву по алфавиту на 5 позиций и разбавим текст случайными фразами, чтобы сбить атакующих с пути, наш замечательный шифр скорее всего вскроет любой мало-мальски знакомый с криптографией человек (а в данном случае с задачей справится и в меру умный 12-летний подросток).

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

Мой посыл не в том, что убедить вас отказаться от самостоятельного использования криптографических средств или пойти и нанять консультанта с зарплатой от $1000 в час всякий раз когда вы задумываетесь о шифровании.
Частично я веду к тому, что вам никогда не следует расслабляться, всегда нужно быть начеку, изыскивая пути, которые злоумышленник может использовать для получения дополнительной информации о вашей системе, а частично к тому, что Padding Oracle Attack является крутой демонстрацией всего этого. Итак, начнем.
Читать дальше →
Всего голосов 73: ↑70 и ↓3+67
Комментарии61

Как сделать Online-логгирование с нуля

Время на прочтение3 мин
Количество просмотров16K
Описанное ниже — это конструкция выходного дня. От идеи до реализации была затрачена пара вечеров. В описании представлен необходимый минимум для реализации системы сбора информации, с доступом к последней в режиме Online.
image
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии36

Краткая инструкция: GitHub через Tor

Время на прочтение2 мин
Количество просмотров91K
Предлагаю использовать Tor для доступа к сайтам, к которым отсутствует прямой доступ.

image

Узнать, как использовать git через tor
Всего голосов 100: ↑92 и ↓8+84
Комментарии110

Цифровой страж Key_P1: история создания и первые результаты

Время на прочтение12 мин
Количество просмотров18K
В последнее время регулярно появляются сообщения об утечках информации.
В данной статье хотелось поделиться опытом создания устройства в сфере информационной безопасности.

1. История создания


В конце 2013 года в компании Мультиклет появились идеи о движении вперёд и производстве не только отечественных процессоров, но и серийных устройств. Рассматривались идеи создания платы ускорителя с огромной производительностью для обычных ПК и устройства для защиты информации. Поскольку компания частная и большого финансирования для ускорителя в тот момент привлечь не удалось было решено начать с производства устройства для защиты информации.
Идея о создании устройства для защиты информации зародилась после теста алгоритма ГОСТ89 на процессоре Multiclet P1. Оказалось, что алгоритм шифрования достаточно хорошо распараллеливается и подходит для мультиклеточной архитектуры, пользователь хабра rnouse выявил ускорение шифрования на мультиклеточной архитектуре по сравнения с процессорами в рутокенах в 4 -5 раз.


Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии59

Безопасность 4G: захватываем USB-модем и SIM-карту с помощью SMS

Время на прочтение4 мин
Количество просмотров152K
image

Телеком-операторы активно рекламируют быструю и дешевую 4G-связь. Но насколько она защищена, знают немногие. Экспертам Positive Technologies в процессе исследования безопасности 4G-коммуникаций удалось найти уязвимости в USB-модемах, позволяющие взять под контроль компьютер, к которому подключён модем, а также аккаунт абонента на портале мобильного оператора. Кроме того, атаки на SIM-карту с помощью бинарных SMS позволяют перехватить и расшифровать трафик абонента, либо просто заблокировать заданную «симку».
Читать дальше →
Всего голосов 88: ↑84 и ↓4+80
Комментарии67

Гикпорн 5 или для чего вскрывают микросхемы

Время на прочтение5 мин
Количество просмотров125K
Угадал автора по названию? А вот и нет, в отличии от BarsMonster мы будем вскрывать микросхему не из спортивного интереса и даже не для того, чтобы посмотреть, как она работает. Мы будем искать почему она не работает. Иногда такое случается, особенно если технология изготовления кристаллов находится в стадии разработки и запускаемые проекты могут быть только экспериментальными. И подобная неприятность случилась у нас. В нашем случае полученные образцы оказались неработоспособными (выход годных близок к нулю). Исследование функционирования и электрических параметров указывали на технологические проблемы изготовления кристаллов, которые нам и предстоит обнаружить.
Как мы это делали
Всего голосов 126: ↑121 и ↓5+116
Комментарии47

FTDI наносит ответный удар

Время на прочтение3 мин
Количество просмотров306K
Иногда борьба корпораций с конечными пользователями приобретает гротескную форму, что и побудило меня написать этот пост. Коротко: я перестал беспокоиться любить FTDI.

Если вы используете устройство с подключением через конвертер USB2COM на чипе FTDI под Windows — берегитесь. В рамках борьбы с пользователями за интеллектуальную собственность FTDI ломает контрафактные чипы программными средствами.
Как FTDI отомстила конечным пользователям?
Всего голосов 135: ↑121 и ↓14+107
Комментарии98

Разбираем и собираем обратно стек USB

Время на прочтение14 мин
Количество просмотров105K
Иллюстрированная проекция модели сетевого взаимодействия OSI на универсальную последовательную шину.

Три «замечательных» уровня стека USB


Меня не устроил вид стека USB, который можно встретить чаще всего на просторах сети:

Не сильно полезный стек USB

Уровень шины, логический, функциональный… Это, конечно, замечательные абстракции, но они скорее для тех, кто собирается делать драйвер или прикладной софт для хоста. На стороне же микроконтроллера я ожидаю шаблонный конечный автомат, в узлы которого мы обычно встраиваем свой полезный код, и он сперва будет по всем законам жанра глючить. Или же глючить будет софт на хосте. Или драйвер. В любом случае кто-то будет глючить. В библиотеках МК тоже с наскока не разобраться. И вот я смотрю на трафик по шине USB анализатором, где происходящие события на незнакомом языке с тремя замечательными уровнями вообще не вяжутся. Интересно, это у меня от гриппозной лихорадки в голове такой диссонанс?

Если у читателя бывали сходные ощущения, предлагаю альтернативное, явившееся мне неожиданно ясно в перегретом мозгу видение стека USB, по мотивам любимой 7-уровневой модели OSI. Я ограничился пятью уровнями:



Я не хочу сказать, что весь софт и библиотеки уже сделаны или должны проектироваться, исходя из этой модели. Из инженерных соображений код c уровнями будет сильно перемешан. Но я хочу помочь тем, кто начинает своё знакомство с шиной USB, кто хочет понять протоколы обмена устройств и терминологию предметной области, подобраться поближе к готовым примерам, библиотекам и лучше ориентироваться в них. Эта модель не для загрузки в МК, но в ваши блестящие умы, дорогие друзья. А ваши золотые руки потом всё сами сделают, я не сомневаюсь:)
Разобрать стек USB
Всего голосов 72: ↑70 и ↓2+68
Комментарии23

Информация

В рейтинге
Не участвует
Откуда
Екатеринбург, Свердловская обл., Россия
Зарегистрирован
Активность