Pull to refresh
64
0

Техножрец

Send message

Реверс USB-SATA-адаптера (история одного стажера)

Reading time16 min
Views29K

Предыстория


Стажировка – это процесс получения знаний и опыта. Наша команда Raccoon Security считает, что повышение уровня информационной безопасности окружающих нас устройств и ПО невозможно без передачи этих знаний и опыта будущим поколениям специалистов. Именно поэтому мы уже много лет организуем индивидуальные стажировки для талантливых студентов и выпускников.


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


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

К вопросу о пинах

Reading time26 min
Views23K

Дню знаний посвящается...


Данный пост посвящен тому, с чем сталкиваются все пользователи Ардуино (далее по тексту А, имейте в виду что под этой буквой будет прятаться как сам кристалл, так и среда разработки программ), а именно с работой с портами ввода/вывода.

Вы спросите, а что, собственно, тут рассматривать? Функции работы с портами прописаны ясно, есть большое количество примеров, поэтому использование портов не представляет никакой сложности. Начальная программа мигания светодиодом использует эти функции и прекрасно работает, о чем речь?

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

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

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

Разбор демки на 128 байт из архива 1997 года

Reading time15 min
Views46K
Очень приятно осуществлять свои желания, особенно из далёкого прошлого, такого далёкого что уже и забыл что этого когда-то хотел. Я мало знаю о демосцене и уж точно никогда не следил ни за авторами ни за их работами, мне просто нравилось смотреть то что получалось. Иногда мне хотелось в этом разобраться, но тогда мне не хватало знаний и опыта, позже усидчивости, а потом и вовсе у меня пропал к этому интерес. Но недавно мой друг, с кем мы учились в то время и который поставлял нам все новинки, включая демки, с BBS и Fidonet, потому что у него чуть ли ни у единственного был и телефон и модем и компьютер одновременно, посетил CAFePARTY со своими работами, что заставило меня открыть архив моего первого компьютера, выбрать демку и разобраться.

pentagra.com

Объективно оценивая свои силы я взял 128 байтовое интро которое мне понравилось визуально. Файл pentagra.com за подписью Mcm, 128 байт, последнее изменение 24.09.1996 18:10:14, шестнадцатеричный дамп:

000000: b0 13 cd 10 68 00 a0 07 06 1f ac ba c8 03 ee 42
000010: b1 40 ee 40 6e 6e e2 fa b8 3f 3f bb 40 01 bf 40
000020: 05 57 b1 78 ab 03 fb e2 fb 5f b1 60 88 01 aa 03
000030: fb 03 fb e2 f7 b1 61 88 01 aa 2b fb 2b fb e2 f7
000040: bf d1 99 57 b1 78 ab 2b fb e2 fb 5f b1 8f f3 ab
000050: 81 fe 00 fa 73 12 ac 0a c0 74 0d 48 88 44 fe 88
000060: 04 88 40 ff 88 84 bf fe 03 f2 42 75 e3 e4 60 3c
000070: 01 75 a5 b8 03 00 cd 10 c3 00 00 00 00 4d 63 6d
Читать дальше →

Я фотограф и я сделаю сам себе рабочий инструмент

Reading time5 min
Views14K
«Китайцы» делают очень крутые штуки, в том числе в сфере девайсов для фотографов. За последние 10 лет очень подтянули качество, стали разрабатывать свои уникальные продукты, которые бывает выше на голову чем от «именитых производителей». Но, почему то практически в каждом продукте находится хотя бы один, но огромный жирный минус. Такое ощущение, что разработчикам электроники прямо таки ставят в тз пунктик: «ложка дегтя — минимум 200 грамм».

Не так давно я решил побаловать себя постоянным светом и купил себе несколько «световых палок» yongnuo yn-360. Палки оказались просто волшебными, но без жирного минуса конечно же не обошлось — android приложение для дистанционного управления, оказалось практически не рабочим. Кроме мелких минусов приложения — главный, это невозможность управления несколькими устройствами сразу. Этот минус сделал бесполезным функцию управления, так как все равно приходилось бегать от палки до палки и регулировать свет вручную.

У меня был опыт в программировании, поэтому за несколько вечеров ситуация была исправлена.

image

Война за выключение света

Reading time2 min
Views28K


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

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

Пусть засияет свет

Reading time11 min
Views11K


Работа Джима Санборна (Jim Sanborn) Kryptos до сих не поддалась дешифровке. Наверное, это одна из самых известных и интересных нерешенных криптографических задач современности. А может быть это искусственно раздутый интерес.

Криптос появлялся на хабре не раз, а раз, два, три.

Но речь пойдёт не про него, а про более раннюю работу Санборна — Кириллический проектор, он же Cyrillic Projector.

И вот его удалось прочесть. И там есть рука KGB.
Читать дальше →

Интеллектуальный Ethernet-коммутатор для планеты Земля

Reading time9 min
Views39K

«Создать решение (решить проблему) можно несколькими способами, но, не всегда самый дорогой или/и популярный способ — самый эффективный!»

Преамбула


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

-> Введение. Теоретическая часть. Интеллектуальный Ethernet-коммутатор для планеты Земля
-> Практическое руководство по строительству виртуальных сетей. Часть 1
-> Практическое руководство по строительству виртуальных сетей. Часть 2
Читать дальше →

Введение в ELF-файлы в Linux: понимание и анализ

Reading time11 min
Views111K
Есть в мире вещи, которые мы принимаем как нечто само собой разумеющееся, хотя они являются истинными шедеврами. Одними из таких вещей являются утилиты Linux, такие, как ls и ps. Хотя они обычно воспринимаются как простые, это оказывается далеко не так, если мы заглянем внутрь. И таким же оказывается ELF, Executable and Linkable Format. Формат файлов, который используется повсеместно, но мало кто его понимает. Это краткое руководство поможет вам достичь понимания.



Прочтя это руководство, вы изучите:

  • Зачем нужен формат ELF и для каких типов файлов он используется
  • Структуру файла ELF и детали его формата
  • Как читать и анализировать бинарное содержимое файла ELF
  • Какие инструменты используются для анализа бинарных файлов
Читать дальше →

10 признаков того, что хороший программист из вас не получится

Reading time11 min
Views333K
Привет, Хабр! Представляю вашему вниманию перевод статьи «10 Signs You Will Suck at Programming» автора Jonathan Bluks.



Очень часто на Reddit или Quora я вижу вопросы вида «Как понять, смогу ли я стать успешным программистом?» (На самом деле, эта статья является расширенным продолжением моего недавнего ответа на Quora.) Когда кто-то задумывается о смене карьеры или интересуется разработкой и хочет знать, что для этого требуется, неизбежно возникает этот самый вопрос.

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

Будучи преподавателем на курсе «Full-stack Web-development», я работал со многими программистами-новичками. Хорошая новость в том, что мне редко встречались студенты, которые вообще не могли научиться программировать. Я считаю, что умение программировать — такой же базовый навык, как умение читать, писать и считать. Это под силу любому, так как это одна из способностей человека, но этому действительно надо учиться.

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

Этот список поможет вам понять, сможете ли вы стать хорошим программистом, а также что делать, если вы решите это изменить.
Читать дальше →

Домашний сервер на платформе Intel Atom и ОС Centos 7

Reading time20 min
Views63K
В своей статье я хочу представить уважаемому хаброобществу практическое руководство по сборке, настройке и вводу в эксплуатацию недорогого и экономичного сервера на платформе Intel Atom и ОС Centos 7. Сей труд не претендует на полноценный и исчерпывающий учебник и рассчитан, скорее, на начинающих, чем на профессионалов. Если человек, до этого в глаза линукс не видевший, сможет при помощи этой статьи сконфигурировать свой первый сервер, я буду считать свою задачу выполненной.

Первая часть статьи (небольшая по объёму) посвящена аппаратной составляющей, а вторая, основная часть — подробному описанию процесса настройки на этой аппаратуре системы Centos 7. Кому интересно, прошу под кат.
Читать дальше →

Как я купил заблокированный ноутбук на eBay и попробовал сделать свой AntiTheft на базе IntelAMT

Reading time10 min
Views69K


TL;DR


Absolute Computrace — технология, которая позволяет заблокировать машину(и не только), даже если на ней переустановили операционную систему или даже заменили жесткий диск, за $15 в год. Я купил ноутбук на eBay, который был залочен этой штукой. В статье описывается мой опыт, как я с ней боролся и пытался сделать то же самое на базе Intel AMT, но бесплатно.
Читать дальше →

STM32F4Discovery – подключаем камеру по интерфейсу DCMI

Reading time7 min
Views122K

STM32F4Discovery – подключаем камеру по интерфейсу DCMI



Когда-то, подключая камеру от мобильного телефона к микроконтроллеру STM32F407VGT6 (который имеет место быть на плате STM32F4Discovery), я даже не думал о том, что данный контроллер имеет специальный аппаратный интерфейс для данного дела. Может быть, невнимательно читал даташит, но я всегда считал, что интерфейс DCMI имеется только у чипов в корпусах UFBGA176 и LQFP от 144 ног. Однако, не так давно, открыл для себя озвученную деталь: 100-ногий STM32F407 также имеет DCMI на борту.
Являясь большим любителем изучения и совместного запуска различного мобильного железа (в частности, LCD и камер) с МК, мимо такого открытия я просто так пройти не смог, и решил восполнить данный пробел в изучении периферии STM32. Собственно, данный материал и посвящен описанию осуществления возникшей затеи.
Читать дальше →

Сварка оптических волокон. Часть 1: кабели и их разделка, оптический инструмент, муфты и кроссы, коннекторы и адаптеры

Reading time25 min
Views605K

Волокна заряжены в сварочный аппарат

Здравствуйте, читатели Хабра! Все слышали про оптические волокна и кабели. Нет нужды рассказывать, где и для чего используется оптика. Многие из вас сталкиваются с ней по работе, кто-то разрабатывает магистральные сети, кто-то работает с оптическими мультиплексорами. Однако я не встретил рассказа про оптические кабели, муфты, кроссы, про саму технологию сращивания оптических волокон и кабелей. Я — спайщик оптических волокон, и в этом (первом своём) посте хотел бы рассказать и показать вам, как всё это происходит, а также часто буду в своём рассказе отвлекаться на прочие смежные с этим вещи. Опираться буду в основном на свой опыт, так что я вполне допускаю, что кто-то скажет «это не совсем правильно», «вот тут неканонично».
Материала получилось много, поэтому возникла необходимость разбить топик на части.
В этой первой части вы прочтёте про устройство и разделку кабеля, про оптический инструмент, про подготовку волокон к сварке. В других частях, если тема окажется вам интересной, я расскажу про методы и покажу на видео сам процесс сращивания самих оптических волокон, про основы и некоторые нюансы измерений на оптике, коснусь темы сварочных аппаратов и рефлектометров и других измерительных приборов, покажу рабочие места спайщика (крыши, подвалы, чердаки, люки и прочие поля с офисами), расскажу немного про крепёж кабелей, про схемы распайки, про размещение оборудования в телекоммуникационных стойках и ящиках. Это наверняка пригодится тем, кто собирается стать спайщиком. Всё это я сдобрил большим количеством картинок (заранее извиняюсь за paint-качество) и фотографий.
Осторожно, много картинок и текста.

Часть 2 здесь.
Читать дальше →

Включаем поддержку NVMe на старых материнках на примере Asus P9X79 WS

Reading time2 min
Views74K
Привет Хабр! В голову мне закралась мысль, и я ее думаю. И придумал. Все дело в жуткой несправедливости производителя, которому абсолютно ничего не стоило добавить модули в UEFI Bios для поддержки загрузки с NVMe через переходники на материнках без слота m.2 (что, к стати, без вопросов реализовано китайцами на материнках HuananZhi). Неужели не возможно — подумал я и стал копать. Нарыл кучу нерабочих советов, пару раз окирпичил материнку, но я добился своего. В этой статье я почерпнул львиную долю полезной информации. Но и тут достаточно много подводных камней. Например совершенно не ясно в какой индекс записывать модули. Итак, начнем модифицировать наш биос. Внимание! Данный материал применим ТОЛЬКО к AMI Aptio Bios и ни к одному другому, так что если у вас не оно — смело проходите мимо.
Читать дальше →

CAN sniffer

Reading time9 min
Views94K
Непосредственно сама CAN шина используется уже много где, мне интересно её использование в автомобиле, хотя этой сферой можно и не ограничиваться. Тем более пару лет назад подвернулась такая возможность. Я посмотрел на общие спецификации — вроде бы ничего особо сложного нет. Посмотрел на программы, которые встречаются в интернете — и ни одна мне не приглянулась, у каждой не хватало чего-то такого, что казалось мне нужным на тот момент. Буду изобретать свой велосипед. Делаю свой CAN sniffer далее под катом.
Читать дальше →

Разработка электроники. Аудит проекта в примерах. Спасаем тёплые полы всем хабром

Reading time19 min
Views12K

Лирическое отступление
По моему мнению, в сегодняшней России наибольшие шансы на успех в области технологических стартапов имеют два типа проектов:

  • узконишевые в области промышленной автоматизации, основанные командой профессионалов в данной области и подкреплённые стартовым финансированием по крайней мере в 20 — 50 000 USD
  • создание прототипов устройств, ориентированных на глобальные рынки

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

Не представляете, какая досада берёт глядя на то, как фаундеры спускают в топку стартапов деньги и время. Особенно, когда идея хороша, но её убивают повторяющимися раз за разом ошибками. Многие люди предпочитают учиться на ошибках, но лучше это делать всё таки на чужих.

Давно хотел провести детальный анализ какого-либо проекта по разработке электроники, показать явные ошибки и правильные подходы, которые помогут их исключить. Возможно, ещё долго бы собирался, но подвернулся случай — пост в блогосфере Habra “Становление термостата. Как это получилось”. Статья вызвала бурю в комментариях в том числе и с моей стороны, значит тема актуальна. Какой смысл рассказывать о провалившихся и канувших в Лету проектах, где уже ничего нельзя исправить, не лучше ли попытаться сделать доброе дело?

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

Защита устройств от неправильной подачи полярности питания

Reading time3 min
Views223K
image
При проектировании промышленных приборов, к которым предъявляются повышенные требования по надёжности, я не раз сталкивался с проблемой защиты устройства от неправильной полярности подключения питания. Даже опытные монтажники порой умудряются перепутать плюс с минусом. Наверно ещё более остро подобные проблемы стоят в ходе экспериментов начинающих электронщиков. В данной статье рассмотрим простейшие решения проблемы — как традиционные так и редко применяемые на практике методы защиты.
Читать дальше →

Быстрый старт ST Nucleo-F401 + краткое руководство

Reading time8 min
Views89K
В предыдущем своем посте я попытался коротко ознакомить вас с платформой Nucleo от ST.
В этом посте я хочу рассказать вам на живом примере некоторые сильные стороны этой платформы, которая имеет все шансы потеснить приевшиеся всем Arduino, и показать что все примеры кода и шилды от Arduino, прекрасно подходят для платформы Nucleo.

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

Быстрый старт с ARM Mbed: разработка на современных микроконтроллерах для начинающих

Reading time17 min
Views76K
Привет, Хабр.

Традиционным уникальным преимуществом платформы Arduino называлось (да и сейчас иногда называется, хотя это уже неверно — и мы поговорим, почему) опускание порога входа в микроконтроллерную разработку до уровня базовых знаний C/C++ и электроники в маштабе «подключить светодиод в нужной полярности».

Спросите примерно у любого активного сторонника Arduino — и вам быстро объяснят, что можно, конечно, писать под STM32 или nRF52, но выгоды в том реальной никакой, зато вас ждут бессонные ночи над сотнями страниц даташитов и бесконечные простыни функций с длинными непонятными названиями.

Заслуги Arduino в снижении порога вхождения действительно трудно переоценить — эта платформа появилась на свет в середине нулевых годов, а после 2010 завоевала серьёзную популярность среди любителей. Особых альтернатив на тот момент ей не было — процессоры на ядрах Cortex-M только появились, по сравнению с AVR они были довольно сложны даже для профессиональных разработчиков, а отладочные платы у большинства вендоров стоили от сотни долларов и выше (и в общем в индустрии ценник за отладку на 5-долларовом контроллере в $500 никого сильно не удивлял).

Однако большая проблема Arduino в том, что её развитие за минувшие 10+ лет более всего напоминает некоторые модели АвтоВАЗа:


Так как дальше я планирую длинное вступление, то сейчас, чтобы вы представляли, в чём будет заключаться практическая часть, я приведу полный текст программы, включающий инициализацию процессора STM32 и мигание светодиодом. Программа написана для ОС ARM Mbed:

#include "mbed.h"
DigitalOut myled(LED1);

int main() {
    while(1) {
        myled = 1; // LED is ON
        wait(0.2); // 200 ms
        myled = 0; // LED is OFF
        wait(1.0); // 1 sec
    }
}

Похоже ли это на высокий входной порог? На функции с непонятными названиями? Бессонные ночи над даташитами? Нет? Ладно, давайте не будем забегать вперёд.
Читать дальше →

Лабораторный программируемый линейный блок питания UnionTest/KORAD UT3005EP и его калибровка/управление

Reading time4 min
Views91K
Купил недавно лабораторный блок питания UnionTest UT3005EP (31В 5.1А), это другое название известного блока питания KORAD — чистокровного китайца. Снова оригинальная китайская разработка, а не недоделанная копия. Первые ревизии блоков этой серии (~2012 год) имели недостатки (в частности, на максимальном токе — силовые транзисторы могли перегреться, это обнаружили в видеоблоге eevblog), однако позже они были исправлены. Лично я питаю слабость к 4-х разрядным светодиодным индикаторам — потому мой выбор и пал на блоки питания UnionTest/KORAD с учетом того, что на тестах исправленной ревизии он показывал себя хорошо.

Сначала я по привычке заказал блок напрямую из Китая, но он ко мне не дошел (деньги вернули) — и тут я увидел, что в наличии в московских магазинах по примерно той же цене (5210 рублей за эту модель) продают UnionTest — на первый взгляд KORAD с другим именем. Однако остается вопрос, не распродают ли там случайно старую ревизию железа? Блок я купил, и на внутренности мы сейчас посмотрим. Забегая вперед — ревизия новая.

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

Information

Rating
7,907-th
Registered
Activity