Pull to refresh
53
0.1

User

Send message

А вы знаете, что используя закон сохранения энергии можно гораздо легче доставлять грузы на Луну, обменом масс?

Reading time7 min
Views24K
image

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

Реверс хрома и установка расширений

Reading time6 min
Views11K


Доброго времени суток, дорогой читатель! Хром обновляется, но новых статей про то, как программно установить расширение в хром нет, помимо --load-extension — но это не наш вариант, ведь мы не ищем легких путей. Сегодня расскажу как действительно можно одним exe-шником получить всё: пароли, подменять контент, как можно совершить кражи и т.п. — но это не призыв к действию, а лишь статья для ознакомления. Весь сок под катом.
Читать дальше →

Зоопарк AFL фазеров

Reading time12 min
Views19K
image

На Хабре уже пару раз появлялись статьи, поднимающие тему American Fuzzy Lop (AFL) (1,2). Но в данной статье речь пойдет не о классическом AFL, а о вспомогательных утилитах для него и его модификациях, которые, на наш взгляд, могут значительно улучшить качество фаззинга. Если вам интересно узнать, как можно прокачать AFL и искать быстрее и больше уязвимостей, то добро пожаловать под кат!
Читать дальше →

Типичные ошибки при написании юнит-тестов. Лекция Яндекса

Reading time10 min
Views24K
Если освоить небольшой список типичных ошибок, возникающих при написании юнит-тестов, то можно даже полюбить писать их. Сегодня руководитель группы разработки Яндекс.Браузера для Android Константин kzaikin Заикин поделится с читателями Хабра своим опытом.


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

256 строчек голого C++: пишем трассировщик лучей с нуля за несколько часов

Reading time8 min
Views150K
Публикую очередную главу из моего курса лекций по компьютерной графике (вот тут можно читать оригинал на русском, хотя английская версия новее). На сей раз тема разговора — отрисовка сцен при помощи трассировки лучей. Как обычно, я стараюсь избегать сторонних библиотек, так как это заставляет студентов заглянуть под капот.

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

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

Итак, сегодня я покажу, как отрисовывать подобные картинки:


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

Написание системы попарно взаимодействующих частиц на C++ с использованием DirectX 11

Reading time12 min
Views12K


На Хабре уже есть много статей про использование вычислительных шейдеров с Unity, однако статью о использовании вычислительного шейдера на "чистом" Win32 API + DirectX 11 найти затруднительно. Однако эта задача ненамного сложнее, подробнее — под катом.


Для этого будем использовать:


  • Windows 10
  • Visual Studio 2017 Community Edition с модулем "Разработка классических приложений на C++"
Читать дальше →

Как подружить питон с Невидимым Интернетом? Основы разработки I2P приложений на Python и asyncio

Reading time4 min
Views11K


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


В этой статье описаны базовые вещи, которые нужно знать для написания I2P приложений. Примеры кода приведены на Python с использованием встроенного асинхронного фреймворка asyncio.

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

Основы работы с фьютексами

Reading time10 min
Views39K
Фьютекс (futex — сокращение от «Fast userspace mutex») — это механизм, предложенный разработчиками Linux из IBM в 2002 году и вошедший в ядро в конце 2003 года. Основной идеей было предоставить более эффективный способ синхронизации пользовательских потоков с минимальным количеством обращений к ядру ОС.

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

Важный момент: фьютексы — это достаточно низкоуровневый инструмент, напрямую его использовать стоит лишь при разработке фундаментальных библиотек, вроде стандартной библиотеки C/C++. Очень маловероятно, что вам понадобится использовать фьютексы в обычном прикладном приложении.
Читать дальше →

Пример программирования FPGA-ускорителя

Reading time14 min
Views15K


Не так давно мы рассказали о новой услуге Selectel — облачных высокопроизводительных вычислениях на FPGA-ускорителях. В новой статье на эту тему рассмотрим пример программирования FPGA для построения множества Мандельброта, — известного математического алгоритма для визуализации фрактальных изображений. В статье использован материал с сайта Эйлер Проджект.


Где вставить кавычку в IPv6

Reading time5 min
Views13K
IPv6 — новая версия интернет протокола. Члены IETF приняли её всего 22 года назад, в 1996 году. За это время успели появиться специфичные для IPv6 атаки. Цель данной статьи, написанной по мотивам нашего выступления на PHDays 8 — показать возможности атаки в корпоративных сетях внутренним нарушителем, используя IPv4 и IPv6.


ПО для машинного обучения на Python

Reading time7 min
Views38K


Сегодня существует большое количество программных инструментов для создания моделей Machine Learning. Первые такие инструменты формировались в среде ученых и статистиков, где популярны языки R и Python, исторически сложились экосистемы для обработки, анализа и визуализации данных именно на этих языках, хотя определенные библиотеки машинного обучения есть и для Java, Lua, С++. При этом интерпретируемые языки программирования существенно медленнее компилируемых, поэтому на интерпретируемом языке описывают подготовку данных и структуру моделей, а основные вычисления проводят на компилируемом языке.

В данном посте мы расскажем преимущественно о библиотеках, имеющих реализацию на Python, поскольку этот язык обладает большим количеством пакетов для интеграции в разного рода сервисы и системы, а также для написания различных информационных систем. Материал содержит общее описание известных библиотек и будет полезен прежде всего тем, кто начинает изучать область ML и хочет примерно понимать, где искать реализации тех или иных методов.
Читать дальше →

На переднем крае науки: анализ статей arxiv.org

Reading time11 min
Views26K
image

Моя специальность — физика конденсированного состояния. Разумеется, в процессе погружения в нее требуется изучать много научных статей, однако на разбор хотя бы одной может уйти немало времени. На arxiv в разделе cond-mat публикуется более тысячи статей в месяц. Складывается ситуация, когда многие исследователи, особенно начинающие, не обладают целостным видением своей области науки. Описанный в этой статье инструмент резюмирует содержимое базы научных статей и призван ускорить работу с литературой.
Читать дальше →

Инструкция по поступлению на PhD в США

Reading time7 min
Views38K

Так вышло, что я поступил на программу PhD по математике в Стэнфордский университет. Я бы хотел рассказать о том, что требуется для поступления, и почему попробовать поступить — это не очень сложно. Уверен, что мой опыт актуален не только для математики, поэтому местами пишу более общо.



Что требуется для поступления?


  • TOEFL (260$) (экзамен по английскому)
  • GRE Subject Mathematics (150$) (экзамен по математике)
  • GRE general (205$) (школьная математика и английский)
  • Не менее трёх рекомендательных писем
  • Statement of Purpose (эссе)
  • Curriculum vitae (научная автобиография)
  • (иногда) Personal History Statement (другое эссе)
  • (желательно) публикации и доклады на конференциях
  • Деньги (в среднем 150$ за каждый университет)

А теперь — по порядку!

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

Как идентифицировать спутник на орбите

Reading time4 min
Views30K
image

Во время поисков сигналов от российских спутников МКА-Н, был обнаружен сигнал неопознанного спутника, которого у меня нет в каталоге. Напомню аппараты МКА-Н №1 и №2 были запущены 14 июля 2017 года с космодрома Байконур и не вышли на связь. По неофициальной причине — из-за аварии с разгонным блоком «Фрегат», хотя «Роскосмос» не признаёт это. Изготовителем этих двух аппаратов является частная российская компания «Dauria Aerospace». Теперь «Роскосмос» требует со стартапа 290 миллионов рублей за неработающие космические аппараты (источник). После 3 дней поисков сигналов, они так и не были обнаружены. Зато был обнаружен другой любопытный сигнал. Этого аппарата у меня нет в каталоге, значит его надо идентифицировать и занести в свой каталог.

Взлом ядерного Crackme

Reading time8 min
Views19K


Привет, Хабралюди!

Сам процесс решения задачек на взломы особенно приятен, а когда есть решение – приятно вдвойне. Сегодня мы решили разобрать крякми, который попался нам на конференции ZeroNights в ноябре, где наша команда из школы кибербеза и ИТ HackerU дебютировала и сразу выдебютировала заняла первое место в hardware challenge. Решение crackme «SHADOW» пригодится тем, кто увлекается реверс-инжинирингом.

Для крякми этого уровня достаточно знать ассемблер и иметь базовое представление об устройстве драйверов под Windows.
Читать дальше →

Чему робототехника может научить игровой ИИ

Reading time32 min
Views14K

Я исследователь-робототехник и в то же время моё хобби — разработка игр. Моя специализация — планирование многомерного движения манипуляторов роботов. Планирование движения — это очень важная тема для разработчиков игр, она пригождается каждый раз, когда нужно переместить управляемого ИИ персонажа из одной точки в другую.

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

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

The Browser Exploitation Framework Project: от XSS до полного контроля

Reading time2 min
Views14K
image
 
BeEF (сокращение от Browser Exploitation Framework) – платформа для эксплуатации клиент-сайд уязвимостей, таких как XSS (cross-site scripting).

Эксплуатации XSS уязвимостей зачастую уделяется мало внимания, т.к. вектора атаки нацелены на пользователей веб-приложения, а не на веб-приложение или веб-сервер. BeEF позволяет реализовывать атакующие векторы, использующие в качестве точки входа веб-браузер. Такие атаки могут использоваться в контексте watering hole и spear phishing атак, а также в контексте APT.
Читать дальше →

Git: советы новичкам – часть 2

Reading time8 min
Views82K
Во второй части нашего пособия для новичков в Git мы рассказываем об управлении ветками, особенностях их слияния, а также о принципах работы указателей. Первую статью вы можете прочитать по ссылке.


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

Мобильные устройства изнутри. Что такое GPT?

Reading time9 min
Views18K

Что такое GPT?



1. Введение


Продолжаем рассматривать строение программной части (software) мобильных устройств (МУ). Сегодня поговорим об устройстве GPT-раздела памяти. Написать об этом меня побудила публикация Изучаем структуры MBR и GPT, вместо того, чтобы писать комментарии к ней. Я хотел бы не поругать или поправить автора, а дополнить вышеуказанную публикацию с уклоном в МУ.


Итак, GPT (GUID Partition Table) это:

  • в первую очередь название схемы разметки памяти (GPT-схема) МУ ;
  • затем уж название раздела памяти (GPT-раздел), где расположена физически эта схема;
  • ну и также название файла-образа GPT-раздела памяти (GPT-файл).

Существует две схемы разметки памяти: MBR и GPT. Каждая схема содержится в отдельном разделе памяти, называемом, соответственно, MBR или GPT.

Как устроена MBR-схема разметки можно посмотреть в [1], а GPT это другой формат описания разметки памяти — GUID (GUID Partition Table). Он является частью EFI (Extensible Firmware Interface) — стандарта UEFI, используемого вместо BIOS для загрузки разделов памяти.

Переход на другой формат позволил устранить самый существенный недостаток MBR-формата — малое число разделов. Если в MBR помещалось только 4 записи с ограничением на длину раздела и его смещение из-за того, что эти параметры описывались 32-разрядными числами, то в GPT можно разместить 128 записей о разделах. Причем их параметры уже описываются в 64-разрядной системе счисления…
Читать дальше →

Турнир ИИ для промышленных роботов по Аэрохоккею

Reading time2 min
Views4K
Всем известны соревновании двух ИИ в игре Go. А как на счет состязания ИИ в более динамичной игре требующей не столько вдумчивой стратегии, сколько тактики, оперативной реакции и скорости?

К примеру Аэрохоккей! Простая декартовая система перемещений 3 координаты + 1 угол, всего один орган влияния на игру (бита), следовательно нужна всего 1 рука. Берем 6-ти осевых промышленных роботов, ставим вместо игроков с двух сторон…


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

Information

Rating
2,880-th
Registered
Activity