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

Embedded programmer

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

Запуск Bare-metal приложения на Cyclone V SoC

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

Введение


Для некоторых людей FPGA SoC является чем-то недоступным пониманию и данная статья должна исправить это недоразумение. Разберем создание программы с нуля, от пустого проекта, до горящего светодиода. Для начала скажу, что проект выполнялся на отладочной плате DE1-SoC, и вы можете с легкостью адаптировать его для других плат с плисами фирмы Аltera, если разберетесь с данным руководством. Начнем!
Читать дальше →
Всего голосов 24: ↑23 и ↓1+22
Комментарии19

Транспондер DST40: принцип работы, история появления и взлома, а также немного практики по брутфорсу

Время на прочтение17 мин
Количество просмотров34K
Давным-давно, ещё в девяностых годах прошлого века, набирающий обороты автомобильный рынок остро нуждался в появлении серьёзных противоугонных систем (далее по тексту — иммобилайзеров). Для автоугонщиков в те времена не было особых препятствий, мешавших завести двигатель механической копией ключа или даже совсем без ключа — простым замыканием проводов. Нужны были иммобилайзеры, способные значительно затруднить процесс старта двигателя и дальнейшего угона автомобиля без родного ключа зажигания.

Вот тогда и появилась на свет идея создания компактного радиомодуля (далее по тексту — транспондера), встраиваемого прямо в ключ зажигания автомобиля. В автомобиль же устанавливался иммобилайзер, общающийся с транспондером по радиоканалу. Иммобилайзер посылал в транспондер запрос, а транспондер отвечал неким кодом, без получения которого иммобилайзер не позволял запустить двигатель. Однако поначалу транспондеры всё равно были довольно примитивными, сравнительно легко клонируемыми устройствами. Достаточно было наличие радиоперехватчика и светлой головы на плечах, чтобы разобраться в алгоритме обмена и сымитировать ответ транспондера. Требовалось кардинальное изменение алгоритма общения иммобилайзера с транспондером.

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

Далее по тексту все картинки будут кликабельными, чтобы при желании их можно было детально рассмотреть.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+46
Комментарии21

Отлаживаем Qt Style Sheet

Время на прочтение3 мин
Количество просмотров22K
Популярный фреймворк Qt имеет очень удобный механизм управления стилями UI — Qt Style Sheet. Благодаря которому стиль виджетов и окон можно задать в CSS-подобной форме. Стиль может храниться как в ресурсах приложения так и во внешенем файле.
В своей практике постоянно сталкивался с задачей отладить файл стиля в реальном проекте. Если для веб-приложений достаточно нажать F5 в браузере, то на десктопе придется перезапускать приложение, иногда авторизовываться, добираться до нужной формы. Это большая потеря времени. Попробуем сделать инструмент для удобной отладки стилей. Сформулирую пользовательский сценарий:

Хотим править файл стиля и сразу смотреть как это выглядит в любой форме приложения.
Читать дальше →
Всего голосов 18: ↑16 и ↓2+14
Комментарии12

Безопасность GSM сетей: шифрование данных

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

Disclaimer Данная статья публикуется исключительно в ознакомительных целях, за использование материалов, опубликованных в данной статье автор ответственности не несет.
Так же хочу сразу предупредить, что если вы рассчитываете найти в этой статье пошаговое руководство к прослушиванию GSM трафика или надеетесь, прочитав данную статью, получить доступ к телефонным разговорам ваших друзей, знакомых, домашних животных, то лучше проигнорируйте ее. Здесь вы не найдете ничего интересного. Нет правда, не ходите под кат, там скука.
Читать дальше →
Всего голосов 60: ↑59 и ↓1+58
Комментарии42

Линейный криптоанализ для чайников

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

Привет, %username%!
Многим известно, что стандартом по умолчанию в области симметричного шифрования долгое время считался алгоритм DES. Первая успешная атака на этот неубиваемый алгоритм была опубликована в 1993 году, спустя 16 лет после принятия его в качестве стандарта. Метод, который автор назвал линейным криптоанализом, при наличии 247 пар открытых/зашифрованных текстов, позволяет вскрыть секретный ключ шифра DES за 243 операций.
Под катом я попытаюсь кратко изложить основные моменты этой атаки.
Читать дальше →
Всего голосов 71: ↑67 и ↓4+63
Комментарии9

Дифференциальный криптоанализ для чайников

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

Шифр FEAL обладает таким же уровнем стойкости что и DES. Более того, увеличенная длина ключа (64 бита по сравнению с 56 битами в DES) затрудняет возможность перебора. Шифр FEAL обладает хорошим распределением шифротекстов, близким к случайному. И это тоже говорит в пользу FEAL по сравнению с DES.
Это краткое содержание спецификации алгоритма шифрования FEAL, опубликованного в 1987 году.

Ничто не вечно под луной. В данном топике я расскажу как при наличии всего 40 пар открытых-закрытых текстов получить полный ключ FEAL4 за несколько минут.
Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии14

Классический криптоанализ

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

На протяжении многих веков люди придумывали хитроумные способы сокрытия информации — шифры, в то время как другие люди придумывали еще более хитроумные способы вскрытия информации — методы взлома.

В этом топике я хочу кратко пройтись по наиболее известным классическим методам шифрования и описать технику взлома каждого из них.
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии5

Что нужно знать про арифметику с плавающей запятой

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


В далекие времена, для IT-индустрии это 70-е годы прошлого века, ученые-математики (так раньше назывались программисты) сражались как Дон-Кихоты в неравном бою с компьютерами, которые тогда были размером с маленькие ветряные мельницы. Задачи ставились серьезные: поиск вражеских подлодок в океане по снимкам с орбиты, расчет баллистики ракет дальнего действия, и прочее. Для их решения компьютер должен оперировать действительными числами, которых, как известно, континуум, тогда как память конечна. Поэтому приходится отображать этот континуум на конечное множество нулей и единиц. В поисках компромисса между скоростью, размером и точностью представления ученые предложили числа с плавающей запятой (или плавающей точкой, если по-буржуйски).

Арифметика с плавающей запятой почему-то считается экзотической областью компьютерных наук, учитывая, что соответствующие типы данных присутствуют в каждом языке программирования. Я сам, если честно, никогда не придавал особого значения компьютерной арифметике, пока решая одну и ту же задачу на CPU и GPU получил разный результат. Оказалось, что в потайных углах этой области скрываются очень любопытные и странные явления: некоммутативность и неассоциативность арифметических операций, ноль со знаком, разность неравных чисел дает ноль, и прочее. Корни этого айсберга уходят глубоко в математику, а я под катом постараюсь обрисовать лишь то, что лежит на поверхности.
Читать дальше →
Всего голосов 245: ↑242 и ↓3+239
Комментарии75

Два в одном: USB хост и составное USB устройство

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

image



Не так давно, была опубликована статья «Пастильда — открытый аппаратный менеджер паролей». Так как данный проект является открытым, то мы решили, что будет интересно, если мы будем писать небольшие заметки о процессе проектирования, о задачах, которые перед нами стоят и о трудностях, с которыми мы сталкиваемся.

Основная суть Пастильды заключается в том, что она является своеобразным переходником между клавиатурой и ПК. Таким образом, она должна уметь:
  • быть USB хостом для клавиатуры, которая к ней подключается,
  • быть клавиатурой для ПК, чтобы либо перенаправлять сообщения от реальной клавиатуры, либо самой быть клавиатурой,
  • быть дисковым накопителем, чтобы можно было редактировать базу данных паролей в удобном для человека виде.

Данный функционал является скелетом нашего проекта, поэтому первая заметка будет посвящена именно ему.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии63

Пишем красивый идиоматический Python

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

Иногда сложно найти в Сети правильные, а главное актуальные «best practices» для языка. Документация, конечно же, содержит всю необходимую информацию, но отсеять нужную вещь в абзацах подробного (на то она и документация) описания довольно сложно. Но недавно мне улыбнулся поиск Google, и я наткнулся на очень полезные «паттерны» языка Python от одного из core разработчиков — Raymond Hettinger.

Примечание: Все рекомендации даны в нескольких вариантах: сначала идут самые «плохие» варианты, а дальше предлагается лучшая альтернатива. Актуально для версии языка 2.7, отличия для версии 3.3 читайте в примечаниях к конкретному «паттерну».
Читать дальше →
Всего голосов 125: ↑99 и ↓26+73
Комментарии71

Дебаггинг в реальном времени через JTAG/SWJ-DP для микроконтроллеров на ядре ARM Cortex-M

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

С некоторых пор фирма Segger предлагает технологию Real Time Terminal (RTT) для своих JTAG адаптеров J-Link. Суть ее в том, что программа на микроконтроллере может выводить и принимать отладочную информацию из JTAG/SWJ-DP порта, как это обычно делается через UART. И тогда нам больше не нужен реальный отладочный UART. Далее чуть подробнее о возможностях этой технологии.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии1

Десять книг о космонавтике

Время на прочтение14 мин
Количество просмотров38K
Этот список возник «благодаря» нескольким обзорным топикам в блоге «Космонавтика». Любовь Хабра к всему космическому привела к тому, что даже откровенно бредовый поток мыслей, написанный Шляхтичем многие приняли за чистую монету — и это далеко не единственный (хотя и наиболее вопиющий) пример того, о чём я пытаюсь сказать.

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

Оба этих затруднения я постарался решить тем, что привлёк к дополнению и обсуждению списка ЖЖ-пользователя ___lin___ (ссылка ведёт на его жж-профиль, где можно прочесть о том, кто он такой, и чем знаменит). ___lin___ в помощи не отказал, за что ему космическое спасибо. Очень рекомендую ознакомиться с его проектом «Великое Кодирование», посвящённому переводу в цифровую форму редких книг околокосмической тематики.

Теперь собственно список.
Всего голосов 37: ↑36 и ↓1+35
Комментарии21

Шифрование SQLite базы данных в Qt

Время на прочтение2 мин
Количество просмотров24K
Для шифрования в SQLite были найдены следующие возможные решения:

  • SEE — официальная реализация.
  • wxSQLite — c++ wxWidgets обертка для шифрования SQLite.
  • SQLCipher — использует в реализации openSSL.
  • SQLiteCrypt — модифицированная реализация API.
  • botansqlite3 — шифрующий кодек для SQLite3 использующий библиотеку botan.
  • SQLiteCrypto — java API для Android, использует AES-256 и SHA-256.
  • QtCipherSqlitePlugin — SQL плагин для Qt с поддержкой шифрования.

Из рассмотренных решений SEE, SQLiteCrypt and SQLiteCrypto требуют приобретения лицензии. SQLCipher доступен в версии Community Edition, но требует libcrypto.

Наиболее интересным решением из представленного списка, на мой взгляд, является QtCipherSqlitePlugin.
Плагин шифрует «на лету» и полностью интегрирован в API Qt.
хочу шифровать SQLite
Всего голосов 18: ↑17 и ↓1+16
Комментарии11

Один из методов работы с конфигурационными файлами в С++ (Qt)

Время на прочтение6 мин
Количество просмотров33K
Практически в каждом проекте, встает задача персистентного чтения/записи конфигурации. Не секрет что существует большое количество уже готовых библиотек для решения этой задачи. Некоторые из-них просты, некоторые чуть сложнее в использовании.
Если же проект разрабатывается с использованием Qt, думаю нет смысла линковать дополнительную библиотеку, так как в Qt есть все средства для создания очень простого, гибкого и кроссплатформенного решения.
Как раз о таком решении хочу расказать вам в этом посте.
Читать дальше →
Всего голосов 22: ↑16 и ↓6+10
Комментарии10
12 ...
7

Информация

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