Pull to refresh
32
0
Maxim Filippov @mefikru

User

Send message

Intel ME Manufacturing Mode — скрытая угроза, или что стоит за уязвимостью CVE-2018-4251 в MacBook

Reading time9 min
Views24K


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

Примером может служить технология Intel Management Engine (Intel ME), а также ее версии для серверных (Intel SPS) и мобильных (Intel TXE) платформ (подробнее об этой технологии см. [5], [6]. В этой статье мы расскажем, как используя недокументированные команды (если термин «документированный» вообще применим к Intel ME), можно перезаписать память SPI flash и реализовать самый страшный сценарий — локальную эксплуатацию уязвимости в ME (INTEL-SA-00086). Корнем данной проблемы оказался недокументированный режим работы Intel ME — Manufacturing Mode.
Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments46

Регулятор оборотов минидрели

Reading time3 min
Views38K
Сверление печатных плат — настоящая головная боль для электронщика, но наше новое устройство поможет ее немного смягчить. Это простое и компактное дополнение к минидрели позволит продлить жизнь двигателю и сверлам. Схема, плата, инструкции по настройке, видео — все в статье!


Total votes 45: ↑44 and ↓1+43
Comments78

Определяем спелость арбуза с помощью Keras: полный цикл, от идеи до программы на Google Play

Reading time8 min
Views38K

С чего все началось


Все началось с Эппл Маркета — я обнаружил, что у них есть программа, позволяющая определить спелость арбуза. Программа… странная. Чего стоит, хотя бы, предложение постучать по арбузу не костяшками пальцев, а… телефоном! Тем не менее, мне захотелось повторить это достижение на более привычной платформе Андроид.
Читать дальше →
Total votes 66: ↑64 and ↓2+62
Comments122

Создаём простую нейросеть

Reading time9 min
Views168K


Перевод Making a Simple Neural Network

Что мы будем делать? Мы попробуем создать простую и совсем маленькую нейронную сеть, которую мы объясним и научим что-нибудь различать. При этом не будем вдаваться в историю и математические дебри (такую информацию найти очень легко) — вместо этого постараемся объяснить задачу (не факт, что удастся) вам и самим себе рисунками и кодом.
Начнем.
Total votes 41: ↑37 and ↓4+33
Comments17

Оптимизация графики для веба: самое важное

Reading time54 min
Views94K
Автор электронной книги — Эдди Османи, один из руководителей разработки Google Chrome

tl;dr


Cжатие изображений всегда должно быть автоматизировано


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

Большинство CDN (например, Akamai) и сторонних решений вроде Cloudinary, imgix, Fastly Image Optimizer, Instart Logic SmartVision и ImageOptim API предлагают комплексные автоматизированные решения для оптимизации изображений.

На чтение статей и настройку конфигурации вы потратите время, которое дороже оплаты их услуг (у Cloudinary есть бесплатный тариф). Но если всё-таки не хотите отдавать работу на аутсорсинг по соображениям стоимости или из-за дополнительной latency, то выбирайте приведённые выше варианты с открытым исходным кодом. Проекты Imageflow или Thumbor предлагают альтернативу на собственном хостинге.
Читать дальше →
Total votes 61: ↑61 and ↓0+61
Comments31

Прибор для измерения СО2

Reading time3 min
Views19K
Однажды, сидя на работе и чувствуя некомфортность в дыхании, решил собрать измеритель СО2.
Изучив несколько статей на эту тему сформулировал требования к прибору.

  1. Прибор должен быть с экраном, так как это должен быть переносной девайс.
  2. Прибор не должен зависеть от интернета по той же причине.
  3. Прибор должен уметь логировать значения во времени, которые удобно в любой момент просматривать. А это означает, что он должен иметь собственный веб сервер и свою вайфай точку.

Последний пункт неоднозначно привел к вводу, что прибор будет на ESP. Так как большой производительности мне не нужно, то выбираю дешевый вариант — ESP8266, 07 которая. Дома как раз завалялся экземпляр с 1 мб памятью.

Заказал недостающие запчасти на алиэкспресс, а ими были:

  1. Oled display 96x64 SSD1331.
  2. MH-Z19B CO2 sensor.
  3. DS1307 RTC module.
Читать дальше →
Total votes 49: ↑42 and ↓7+35
Comments89

Dead Cells: использование 3D-конвейера для 2D-анимации

Reading time6 min
Views27K
image

Можно сказать, что девиз почти всех инди-разработчиков — это «Большие мечты при ограниченных ресурсах». Когда я начал работать над первой игрой Motion Twin для Steam Dead Cells, эта фраза стала и моим девизом.

Меня зовут Тома Вассёр, в течение целого года я был единственным художником Dead Cells. Я занимался дизайном и анимациями каждого аспекта игры. В одиночку мне пришлось создавать графический стиль, персонажей, монстров, анимации, спецэффекты (FX) и большинство фонов Dead Cells… Пока, к счастью, мне на помощь не пришёл мой злой брат-близнец Генель Массе. Количество художников Dead Cells удвоилось.

Однако нехватка рабочих рук в нашем секторе является частой ситуацией, поэтому я расскажу, как мне удалось не сойти с ума, работая в одиночку всё это время (конечно же, если я ещё не умер и это всё не иллюзия).
Total votes 27: ↑26 and ↓1+25
Comments31

Синхронизация ШИМ на STM32

Reading time4 min
Views35K
Не буду особо вдаваться в теорию, в сети много ресурсов где все очень подробно описано. Но когда дело доходит до практики понимаешь, что все намного сложнее. Используется микроконтроллер stm32l152c-discovery. В статье будет описан процесс запуска ШИМ двух таймеров в одно и то же время (полная синхронизация):

image

А так же запуск с отставанием (на фото отставание в пол периода):

image
Читать дальше →
Total votes 26: ↑22 and ↓4+18
Comments44

Декодирование сигналов мультиплексированного ЖКИ

Reading time7 min
Views34K


В этой статье я расскажу о том, как работает жидкокристаллический индикатор (ЖКИ) с точки зрения сигналов, как эти сигналы декодировать и использовать для своих целей.
Total votes 82: ↑82 and ↓0+82
Comments28

Как кастомизировать блок ссылок в группе в VKontakte

Reading time3 min
Views40K
image

Контент хоть и король, но, чтобы привлекать аудиторию в ваши паблики, одного его мало. Хорошее оформление групп, подходящие качественные изображения, подобранные с учетом специфики соцсети — играют не менее важную роль в продвижении ваших аккаунтов.
На примере нашей группы в Vkontakte, я хочу показать, как можно красиво оформить блок ссылок.
Читать дальше →
Total votes 15: ↑13 and ↓2+11
Comments9

Имитация естественного движения: Steering Behaviors

Reading time23 min
Views19K
image

Steering behaviors помогают автономным персонажам реалистично двигаться благодаря применению простых сил, сочетание которых создаёт естественно выглядящее и импровизированное движение по окружению. В этом туториале я расскажу об основах теории steering behaviors, а также об их реализации.

Идеи, на которых построены такие поведения, предложены Крейгом Рейндольдсом; они не основаны на сложных стратегиях с использованием планирования пути или глобальных вычислений, а применяют локальную информацию, например, силы соседних объектов. Благодаря этому они просты в понимании и реализации, но в то же время способны создавать очень сложные паттерны движения.
Total votes 41: ↑40 and ↓1+39
Comments7

Реализация быстрых 2D-теней в Unity с помощью 1D shadow mapping

Reading time7 min
Views12K

Введение


Недавно я приступил к реализации системы 2D-теней в Unity, которую можно было бы использовать в настоящей игре. Как известно профессиональным разработчикам, есть большая разница между тем, чего можно достичь в техническом демо и тем, что применимо для интеграции в полную игру, где реализованная возможность является лишь одной из множества. Влияние на ЦП, видеопроцессор и память должны находиться в балансе со всем остальным в игре. На практике у разных проектов возникают различные ограничения, но я решил создать систему, занимающую не больше пары миллисекунд времени обработки и не больше нескольких мегабайт в памяти.

Таким ограничением я отбрасывал множество уже существовавших способов расчёта теней, которые мне удалось найти. Популярной была пара техник. В одной применялась реализуемая на ЦП трассировка лучей, определяющая границы силуэтов блокирующей свет геометрии. В другой все препятствия для света рендерились в текстуру, а затем для неё выполнялся алгоритм типа ray-stepping с несколькими проходами для создания карты теней. Эти техники обычно используются не более чем с парой источников света и точно не позволили бы мне работать с десятками источников света в соответствии с выбранными мной ограничениями.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments6

Системный крафтинг в «Проклятых землях»

Reading time6 min
Views19K


Статья является текстовой расшифровкой видео, поддержанного через Patreon автора: www.patreon.com/farlands

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

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

Но на самом деле ЕСТЬ игра, в которой 18 лет назад реализован системный крафтинг. «Про́клятые земли» (Evil Islands) — это российская тактическая RPG, выпущенная в 2000 году. Я играл в неё, когда мне было девять лет, и именно благодаря «Проклятым землям» я захотел стать гейм-дизайнером. Я могу рассказывать об этой игре весь день. В ней можно найти интересное смешение механик, захватывающий сюжет, отличных персонажей, удивительную музыку и одну из лучших озвучек, которые я встречал за всю свою жизнь.
Total votes 44: ↑43 and ↓1+42
Comments39

Разработка внешнего аккумулятора на четырех батареях LiFePO4

Reading time6 min
Views23K

Упрощенная схема BQ40Z50-R1

Внешние аккумуляторы (power banks) активно используются для зарядки смартфонов и других мобильных гаджетов. Это простое по структуре устройство: литий-ионные или литий-полимерные батареи, управляющая печатная плата, корпус. Но сама по себе разработка зарядных схем для внешних аккумуляторов и электромобилей не так проста, тут можно экспериментировать и предлагать новые решения.

В рамках одного проекта мы разрабатывали внешний аккумулятор с поддержкой обычной и быстрой зарядки, в том числе от солнечных батарей. Еще одно требование — минимизация габаритов устройства. На первом этапе мы реализовали обычную зарядку четырех одинаковых АКБ LiFePO4 за счет микроконтроллера и менеджера заряда BQ40Z50-R1, без применения специализированной микросхемы заряда и ШИМ. Помимо заряда микроконтроллер красиво управляет индикаторными светодиодами и взаимодействует с пользователем по BLE. Делимся подробностями этого этапа разработки.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments10

Регулярные выражения в Python от простого к сложному. Подробности, примеры, картинки, упражнения

Reading time25 min
Views1.4M

Регулярные выражения в Python от простого к сложному




Решил я давеча моим школьникам дать задачек на регулярные выражения для изучения. А к задачкам нужна какая-нибудь теория. И стал я искать хорошие тексты на русском. Пяток сносных нашёл, но всё не то. Что-то смято, что-то упущено. У этих текстов был не только фатальный недостаток. Мало картинок, мало примеров. И почти нет разумных задач. Ну неужели поиск IP-адреса — это самая частая задача для регулярных выражений? Вот и я думаю, что нет.
Про разницу (?:...) / (...) фиг найдёшь, а без этого знания в некоторых случаях можно только страдать.

Плюс в питоне есть немало регулярных плюшек. Например, re.split может добавлять тот кусок текста, по которому был разрез, в список частей. А в re.sub можно вместо шаблона для замены передать функцию. Это — реальные вещи, которые прямо очень нужны, но никто про это не пишет.
Так и родился этот достаточно многобуквенный материал с подробностями, тонкостями, картинками и задачами.

Надеюсь, вам удастся из него извлечь что-нибудь новое и полезное, даже если вы уже в ладах с регулярками.
Читать дальше →
Total votes 99: ↑98 and ↓1+97
Comments66

Диалоговый телеграм бот на PHP

Reading time5 min
Views156K
На данную тему написано много статей на Хабре и просто в интернете. И я расскажу о своем опыте работы с телеграм ботом и моментами, которые «в лоб» не удалось решить.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments13

Добываем Wi-Fi соседа стандартными средствами MacOS

Reading time5 min
Views360K
Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплойты для самых защищённых ОС, а сам умел только скрипткиддить (термин из нулевых). Однако мой пост про уязвимости в системах контроля версий набрал более 1000 лайков на Хабре и остаётся топ1 постом за всю историю Хабра, несмотря на то, что был написан 9(!) лет назад.

И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как вардрайвинг. А точнее, как стандартными средствами MacOS можно добыть пароли от Wi-Fi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод Beeline (бывшая Corbina) помогли мне найти багу у Билайна и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей.


Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя…
Читать дальше →
Total votes 163: ↑151 and ↓12+139
Comments249

Делаем адаптивный HTML, добавляя одну строку в CSS

Reading time4 min
Views192K
image

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

И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

Рассмотрим все подробнее.
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments103

Восстановление таблиц Хаффмана в Intel ME 11.x

Reading time9 min
Views9.8K
Сегодня эксперт Positive Technologies Дмитрий Скляров на конференции Black Hat в Лондоне расскажет о том, как устроена файловая система на которой располагается часть Intel CSME / ME версий 11.x и некоторые файлы для этой системы. Мы представляем вашему вниманию его статью о восстановлении таблиц Хаффмана в Intel ME 11.x.



Как известно, многие модули Intel ME 11.x хранятся во Flash-памяти в упакованном виде, и для сжатия применяются два алгоритма — LZMA и Huffman Encoding. Для LZMА существует публичная реализация, которую можно использовать для распаковки, но для Huffman все сложнее. Распаковщик Huffman Encoding в ME реализован на аппаратном уровне, и построение эквивалентного программного кода представляет собой сложную и нестандартную задачу.
Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments11

JTAG в каждый дом: полный доступ через USB

Reading time9 min
Views34K
Исследователи Positive Technologies активировали аппаратную отладку (JTAG) для Intel Management Engine, которая позволяет получить полный доступ ко всем устройствам PCH (Platform Controller Hub), используя технологию Intel DCI (через интерфейс USB). Мы планируем поделиться подробностями на одной из ближайших конференций. А о том, как активировать этот интерфейс, но для основного процессора, расскажем ниже.

Читать дальше →
Total votes 57: ↑57 and ↓0+57
Comments9

Information

Rating
Does not participate
Location
Тайбэй, Тайвань, Тайвань
Date of birth
Registered
Activity