C, C++ и DotNet decompile — основы реверса. Решение задач на реверсинг с r0от-мi. Часть 1

В данной статье 5 первых заданий, узнаем основы дизассемблирования, решим задачи начального уровня реверса, а также декомпилируем dotNet приложение. Организационная информация Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях: PWN; криптография (Crypto); cетевые технологии (Network); реверс (Reverse […]

Как используется странная инструкция popcount в современных процессорах

Это псевдорасшифровка моей презентации на !!Con 2019. В большинстве используемых сегодня процессорных архитектур есть инструкция под названием popcount, сокращённо от ‘population count’. Она делает следующее: подсчитывает количество установленных битов в машинном слове. Например (возьмём 8-битные слова для простоты), popcount(00100110) равно 3, а popcount(01100000) равно 2. Вас это может сильно удивить, как и меня, но это […]

Анализ эмоциональной окраски отзывов с Кинопоиска

Вступление Обработка естественного языка (NLP) является популярной и важной областью машинного обучения. В данном хабре я опишу свой первый проект, связанный с анализом эмоциональной окраски кино отзывов, написанный на Python. Задача сентиментного анализа является довольно распространенной среди тех, кто желает освоить базовые концепции NLP, и может стать аналогом ‘Hello world’ в этой области. В этой […]

Ant-карусель на CSS и Javascript

С появлением CSS3 появилась возможность совершать анимацию без использования JS-библиотек, таких, например, как jQuery. CSS3 свойство transition позволяет плавно изменять другие свойства элемента (width, height, margin, opacity и пр.), задав в качестве параметров время и закон трансформации. Предлагаю небольшую по размерам, но достаточно функциональную карусель на чистом Javascript. Небольшую, как муравей, что гораздо меньше чем […]

Пастильда: итоги

Как устроено контрактное производство электроники в США? Можно ли заработать на краудфандинге? Софт, который убивает железо. Миф или реальность? Есть ли жизнь у open-source проектов? Все это в заключительной части детективной истории про разработку Пастильды — аппаратного менеджера паролей с открытым исходным кодом. Что еще за Пастильда? Pastilda — аппаратный менеджер паролей с открытым исходным […]

Архив олимпиадных задач по физике для школьников

За долгое время работы в школе я сформировал банк задач по физике для подготовки к олимпиадам. Задачи можно искать по нужным темам, уровню, классу. Затем отправлять на печать, или в виде ссылки ученикам. И хотя я уже не работаю в школе, решил, что жалко добру пропадать. Сайт без рекламы и прочей монетизации. Если вы учитель […]

Вавилонский подряд: 5 проблем безопасности в строительном бизнесе

Во дворе одного из строящихся домов появилось поселение рабочих-строителей: десятки типовых бытовок по 8 спальных мест, ряд синих туалетных кабинок, отдельно стоящие здания столовой и бани. В первый месяц в благоустроенный городок на работу ходило 500 человек. Через месяц стало на сто человек больше — новички строительной профессией не владели, но чувствовали себя комфортно. Несовершенная […]

Феномен XY: как избежать «неправильных» проблем

Задумывались ли вы когда-нибудь о том, как много часов, месяцев и даже жизней было впустую потрачено на решение «неправильных» проблем? Однажды одни люди начали жаловаться, что вынуждены невыносимо долго ждать лифт. Другие люди были обеспокоены этими кляузами и потратили много времени, сил и денег на то, чтобы улучшить работу лифтов и уменьшить время ожидания. Но […]

Как проводить код-ревью

Из документации Google’s Engineering Practices В этом руководстве приведены рекомендации по оптимальному проведению код-ревью, основанные на многолетнем опыте. Все вместе они составляют один документ, разбитый на множество разделов. Необязательно читать их все, но часто для себя и команды лучше изучить руководство полностью. Стандарт код-ревью Что проверять в коде Навигация по списку изменений (CL) Скорость код-ревью […]

Лучшие методики тестирования в JavaScript и Node.js

Это исчерпывающее руководство по обеспечению надёжности в JavaScript и Node.js. Здесь собраны десятки лучших постов, книг и инструментов. Сначала разберитесь с общепринятыми методиками тестирования, которые лежат в основе любого приложения. А затем можно углубиться в интересующую вас сферу: фронтенд и интерфейсы, бэкенд, CI или всё перечисленное. Содержание Раздел 0. Золотое правило. Один совет, являющийся движущей […]