Как стать автором
Обновить
33
0
Кристобаль Хунта @V_oron

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

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

Сканер установленных перехватчиков в памяти процесса

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


В статье будет рассмотрен один из методов поиска изменений в памяти процесса, на основе построения полной карты уязвимых к перехвату адресов. Рассмотрена работа со списками загрузчика, ручным разбором таблиц импорта/отложенного импорта/экспорта/TLS загруженных файлов, c обработкой форварда функций и ApiSet редиректов.
Будет показана методика доступа в 64 битное адресное пространство чужого процесса из 32 битного кода через статически сформированный ассемблерный шлюз, так и подход с применением автоматически генерируемого гейта.
Будет дано много комментариев «почему» применяется тот или иной подход, а также описание различных проблемных ситуаций, основанных в том числе как на собственном опыте, так и на разборе кода системного загрузчика, поэтому будет интересна и подготовленным специалистам.
Читать дальше →
Всего голосов 54: ↑54 и ↓0+54
Комментарии24

Аудио через Bluetooth: максимально подробно о профилях, кодеках и устройствах

Время на прочтение26 мин
Количество просмотров614K
Комикс XKCD про 14 конкурирующих стандартов: Надпись: СИТУАЦИЯ: есть 14 конкурирующих стандартов. Гик: 14?! Абсурд! Нам необходимо разработать один универсальный стандарт, на все случаи жизни. Спутница гика: Да! Надпись: Скоро: СИТУАЦИЯ: Есть 15 конкурирующих стандартов.

This article is also available in English

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

TL;DR:
  • SBC — нормальный кодек
  • У наушников есть свой эквалайзер и пост-процессинг на каждый кодек отдельно
  • aptX не настолько хорош, как о нём говорят рекламные анонсы
  • LDAC — маркетинговое фуфло
  • Качество звука в режиме разговора всё ещё низкое
  • В браузер можно встроить аудиоэнкодеры на C, скомпилировав в WebAssembly через emscripten, и они не будут особо тормозить.

Всего голосов 175: ↑171 и ↓4+167
Комментарии180

Lock-free структуры данных. 1 — Начало

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

Я надеюсь, что эта статья станет началом цикла заметок о lock-free структурах данных. Я хочу поделиться с хабрасообществом своим опытом, наблюдениям и размышлениями о том, что такое lock-free структуры данных, как их реализовывать, подходят ли концепции контейнеров стандартной библиотеки STL к lock-free контейнерам, и когда стоит (и стоит ли вообще) применять lock-free структуры данных.

Читать дальше →
Всего голосов 165: ↑161 и ↓4+157
Комментарии39

В IT растет цензура, а мы не замечаем — разрешают только улыбаться и молчать

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

У меня есть две статьи-интервью вот с такими странными абзацами. За обоими кроются неприятные истории для меня и для людей, про которых я писал.

Читать далее
Всего голосов 497: ↑480 и ↓17+463
Комментарии1526

Фильтр Калмана — это легко

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


Много людей, в первый раз сталкивающихся в работе с датчиками, склонны считать, что получаемые показания — это точные значения. Некоторые вспоминают, что в показаниях всегда есть погрешности и ошибки. Чтобы ошибки в измерениях не приводили к ошибкам в функционировании системы в целом, данные датчиков необходимо обрабатывать. На ум сразу приходит словосочетание “фильтр Калмана”. Но слава этого “страшного” алгоритма, малопонятные формулы и разнообразие используемых обозначений отпугивают разработчиков. Постараемся разобраться с ним на практическом примере.
Читать дальше →
Всего голосов 73: ↑71 и ↓2+69
Комментарии34

Как увидеть ℼ? Нужно швырнуть ℼ в стену

Время на прочтение2 мин
Количество просмотров48K
Лучший способ объяснить школьникам и самому себе, что такое фазовое (конфигурационное) пространство.

image


Дано: Два блока массой 1 кг и 100 (10 000, 1 000 000,… 100x) кг. Трение в системе отсутствует, удары абсолютно упругие (потерь энергии нет). Более массивный блок ударяет менее массивный и тот отскакивает от него, а потом от стенки слева. Справа стены нет, тела могут двигаться в бесконечность.

Вопрос: Сколько столкновений совершит маленький блок, пока система не придет в состояние, когда столкновения невозможны (скорость маленького тела меньше скорости большого, двигающегося в бесконечность)?

Ответ невероятен:

image


В очередной раз поражаюсь изящности объяснений от 3Blue1Brown. Предлагаю читабельный конспект с небольшими сокращениями и дополнениями.
Всего голосов 215: ↑206 и ↓9+197
Комментарии111

Sampler. Консольная утилита для визуализации результата любых shell команд

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

В общем случае с помощью shell команды можно получить любую метрику, без написания кода и интеграций. А значит в консоли должен быть простой и удобный инструмент для визуализации.


Sampler


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


Код доступен на гитхабе. Инструкции по установке — для Linux, macOS и (экспериментально) Windows.

Читать дальше →
Всего голосов 298: ↑297 и ↓1+296
Комментарии54

10 советов схемотехнику

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


Читать дальше →
Всего голосов 212: ↑210 и ↓2+208
Комментарии244

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

Время на прочтение12 мин
Количество просмотров6K
Всем привет. Меня зовут Александр и я химик тестировщик аналитик данных. Как и многие люди моего поколения, я работаю не по специальности. После химфака МГУ и пяти лет работы младшим научным сотрудником в области химической технологии я переметнулся в IT и стал тестировщиком ПО. Помню, как мама говорила мне, чтобы я попробовал найти работу, где будут сочетаться химия и информационные технологии, но в тот момент я считал, что такого не бывает.

Ну и как это часто бывает, жизнь подбросила новые возможности и вот я в здесь – в компании Datana, где неожиданно для самого себя успешно сочетаю несочетаемое: анализ данных и знание химии.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии16

Задержать COVID-19. Все про фильтрацию воздуха на случай пандемии

Время на прочтение44 мин
Количество просмотров372K
По материалам из телеграм-канала LAB66 и присоединенного к нему чата.

Это время для фактов, а не для страха. Это время для науки, а не слухов. Это время солидарности, а не охоты на ведьм…
директор ВОЗ Tedros Adhanom Ghebreyesus про эпидемию COVID-19
Прошло немного времени с момента публикации моей статьи про респираторную защиту во время эпидемии. За это время, отчасти благодаря активному обсуждению в «приканальном» чате выработалась некоторая система, которой бы я хотел поделится и с читателями хабра. Вынудило меня написать эту статью то, что из-за коронавируса поднялся нездоровый хайп, на волне которого на поверхность начала всплывать совсем не та информация, которая всплывать должна была бы (равно как и внезапно подскочили до х40 раз цены на респираторы, притом все без разбора). Так что нужно расставить точки над i. Под катом читаем про подбор правильного респиратора, про сборку кастомных фильтров и стерилизацию зараженных средств защиты. Ответы на вопросы.

Грантовая поддержка исследования
Фактически, в роли «научного грантодателя» для этой статьи выступают мои «меценаты» с Patreon. Благодаря им все и пишется. Поэтому и ответ они могут получить раньше всех других, и черновики увидеть, и даже предложить свою тему статьи. Так что, если интересно то, о чем я пишу и/или есть что сказать — поспешите стать моим «патроном» (картинка кликабельна):



Статью же настоятельно рекомендую «в закладки». Буду рад любому посильному распространению статьи. Краткий итоговый FAQ — в конце статьи.


Собираем полумаску под себя!
Всего голосов 81: ↑77 и ↓4+73
Комментарии290

Процессоры Intel выплёвывают приватный ключ, если поиграть с напряжением

Время на прочтение3 мин
Количество просмотров51K
Исследователи из трёх европейских университетов раскрыли детали первой известной атаки на SGX.

Набор инструкций SGX (Software Guard eXtensions) позволяет приложению создавать анклавы — области в виртуальном адресном пространстве, защищённые от чтения и записи извне этой области другими процессами, включая ядро операционной системы. Анклавы изолированы на аппаратном и программном уровне: эта память физически отделена от остальной памяти процессора и зашифрована.

Атака Plundervolt (CVE-2019-11157) использует интерфейс ОС для управления напряжением и частотой процессора Intel — тот же интерфейс, который используется для разгона CPU при оверклокинге. Изменяя напряжение CPU, она за несколько минут извлекает данные из анклава, в том числе ключи шифрования.

Код демонстрационного эксплоита опубликован на GitHub. Уязвимые процессоры:

  • Intel Core 6, 7, 8, 9 и 10 поколений
  • Intel Xeon E3 v5 и v6
  • Intel Xeon E-2100 и E-2200
Читать дальше →
Всего голосов 72: ↑72 и ↓0+72
Комментарии60

Вопросы будущему работодателю

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


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

Под катом список тем, которые покажут проблемные места там, где о них не любят упоминать.
Читать дальше →
Всего голосов 114: ↑108 и ↓6+102
Комментарии87

Сетевой код Age of Empires: 1500 лучников на модем 28,8 кбит/с

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

Примечание переводчика: этой статье уже 17 лет, и интересна она только с исторической точки зрения. Любопытно узнать, как удавалось разработчикам добиться плавной сетевой игры в эпоху 28,8k-модемов и первых «Пентиумов».

В этой статье рассказывается об архитектуре и реализации, а также о некоторых уроках, полученных при создании многопользовательского (сетевого) кода игр Age of Empires 1 и 2. Также в ней излагаются современные и будущие подходы с созданию сетевой архитектуры, используемые Ensemble Studios в своих игровых движках.

Мультиплеер Age of Empires: требования к структуре


В начале работы над многопользовательским кодом Age of Empires в 1996 году мы поставили перед собой очень конкретные цели, необходимые для реализации требуемого игрового процесса.
Читать дальше →
Всего голосов 94: ↑94 и ↓0+94
Комментарии11

События .NET в деталях

Время на прочтение9 мин
Количество просмотров149K
Если вы .NET программист, то вы наверняка объявляли и использовали события в своем коде. Несмотря на это, не все знают, как события работают внутри и какие особенности связаны с их применением. В этой статье я попытался описать работу событий как можно более подробно, включая некоторые частные случаи, с которыми редко приходится иметь дело, но про которые важно и\или интересно знать.
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии16

Слабые события в C#

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

От переводчика


Недавно в проекте, где я работаю, мы столкнулись с проблемой утечки памяти. Прочитав множество статей — от рассказов по управлению памятью в .NET до практических рекомендаций по правильному освобождению ресурсов, я в том числе наткнулся на статью, в которой рассказывается, как корректно использовать события. Ее перевод я и хочу вам представить.
Это топик из песочницы, с которым я попал сюда на Хабр.

Читать дальше →
Всего голосов 92: ↑75 и ↓17+58
Комментарии18

LED подсветка монитора своими руками

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

Время незаметно идет и казалось бы недавно купленная техника уже выходит из строя. Так, отработав свои 10000 часов, приказали долго жить лампы моего монитора (AOC 2216Sa). Вначале подсветка стала включаться не с первого раза (после включения монитора подсветка выключалась через несколько секунд), что решалось повторным включением/выключением монитора, со временем монитор приходилось выключать/выключать уже 3 раза, потом 5, потом 10 и в какой-то момент он не мог включить подсветку уже вне зависимости от числа попыток включения. Извлеченные на свет божий лампы оказались с почерневшими краями и законно отправились в утиль. Попытка поставить лампы на замену (были куплены новые лампы подходящего размера) успехом не увенчалась (несколько раз монитор смог включить подсветку, но быстро опять ушел в режим включился-выключился) и выяснение причин в чем может быть проблема уже в электронике монитора привели меня к мысли о том что проще будет собрать собственную подсветку монитора на светодиодах чем ремонтировать имеющуюся схему инвертора для CCFL ламп, тем более в сети уже попадались статьи показывающие принципиальную возможность такой замены.
Читать дальше →
Всего голосов 97: ↑91 и ↓6+85
Комментарии45

Делаем твёрдый переплёт для любимых книжек

Время на прочтение6 мин
Количество просмотров522K
Небольшое вступление

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

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

Большое вступление

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

Первые две книги выглядели так:
image

Я их прочитал с огромным удовольствием, но выглядели они не очень хорошо. И я решил, что «Life, the Universe, and Everything» нужно делать книжкой.

Процесс с картинками и комментариями под катом. Осторожно, действительно много картинок.
Читать дальше →
Всего голосов 348: ↑337 и ↓11+326
Комментарии142

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

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


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

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

Почему вы никогда не должны использовать MongoDB

Время на прочтение16 мин
Количество просмотров286K
Дисклеймер от автора (автор — девушка): Я не разрабатываю движки баз данных. Я создаю веб-приложения. Я участвую в 4-6 разных проектах каждый год, то есть создаю много веб-приложений. Я вижу много приложений с различными требованиями и различными потребностями хранения данных. Я разворачивала большинство хранилищ, о которых вы слышали, и несколько, о которых даже не подозреваете.

Несколько раз я делала неправильный выбор СУБД. Эта история об одном таком выборе — почему мы сделали такой выбор, как бы узнали что выбор был неверен и как мы с этим боролись.Это все произошло на проекте с открытым исходным кодом, называемым Diaspora.
Читать дальше →
Всего голосов 219: ↑181 и ↓38+143
Комментарии245

Кому и зачем все-таки нужен Go?

Время на прочтение4 мин
Количество просмотров177K
image
Здарова! Короче, последнее время на хабре было много срачей вокруг Go: хороший-плохой, нужен-ненужен, много сравнивали с питоном, много сравнивали с растом, divan0 даже додумался перевести высер «Go vs Haskell» ну и в таком ключе. У меня сложилось ощущение, что из-за хайпа и агрессивного маркетинга языка некоторыми Иванами Данилюками очень мало кто понял, кому и зачем вообще Go может пригодиться, зачем его делали и стоит ли вообще его учить. Я тоже долгое время участвовал в этих срачах, принимая посменно сторону «фанов» языка и сторону оппозиции, но в конце-концов допер, в чем фокус. Сегодня немного потупил у дивана в посте и решил написать вот эту заметочку.

Давайте, пацаны, проходим в пост.
Читать дальше →
Всего голосов 208: ↑133 и ↓75+58
Комментарии252
1
23 ...

Информация

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