Как стать автором
Обновить

Разработка мобильной 2D-игры «Составь слова из слова»

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

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



Работа со словарями


Имея некоторый опыт работы с БД Oracle, решил что обработку словарей буду вести в ней (Oracle 11.2 XE). Накачал в интернете несколько словарей в виде текстовых файлов с разделителями и с помощью механизма External Table загрузил в БД. Из загруженных слов отобрал 700 существительных длиной 8-10 букв. Это как раз и будут те слова, из букв которых игроки будут вести составление. Далее необходимо для каждого из этих 700 слов подобрать набор слов, которые можно из него составить. Для этого нужно проиндексировать все слова, чтобы можно было делать поиск по вхождению букв.


Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии13

eSSL — SSL сертификаты для встраиваемых систем

Время на прочтение11 мин
Количество просмотров12K
В наше время сетевые технологии развиваются столь стремительно что еще недавно казавшийся бредовым лозунг "интернет в каждом холодильнике" уже не кажется фантастикой. Но вместе с тем начинают становиться актуальными вопросы безопасности встраиваемых устройств имеющих WEB интерфейс с выходом в локальную и, не дай бог, в глобальную сеть. SSL технология призвана помочь этому позволяя работать с WEB интерфейсом по протоколу HTTPS, но встраиваемые системы имеют здесь свои особенности.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии2

Петиция в Qualcomm: финал?

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

Ровно месяц назад мною была начата петиция в компанию Qualcomm с просьбой зарелизить обновленные кодеки с поддержкой ICS для устройств на базе ARMv6. Вдохновением для нее послужила предыдущая петиция с просьбой зарелизить обновленные драйвера для графического ускорителя Adreno 200, созданная пользователем sweetnsour с форума xda-developers. Как вы может быть слышали, она увенчалась успехом.

Итак, я создал петицию, рассказал народу, что же в итоге получилось?
Читать дальше →
Всего голосов 39: ↑34 и ↓5+29
Комментарии62

Дешевые авиабилеты… Или сеть мошеннических сайтов, ворующих деньги с карт. Мое расследование

Время на прочтение20 мин
Количество просмотров186K
В этой публикации речь пойдет о целой сети мошеннических сайтов, которые на протяжении долгого времени работают с единственной целью — похитить данные банковских карт и увести все доступные денежные средства с этих карт. В этой схеме используются на разных этапах сервисы известных компаний и банков. Таких как Яндекс (Поиск, Директ, YandexMoney, Карты), Промсвязьбанк, Банк Тинькофф и, вероятно, других.



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

Итак, что же случилось?

Мой знакомый захотел купить авиабилеты и решил, что самый простой для этого способ — задать вопрос Яндексу. На простой запрос типа «самые дешевые билеты в Анапу» Яндекс одну из первых ссылок выдал на некий сайт, который служит для поиска и покупки дешевых билетов без комиссии. Ссылка эта, вероятно, была в верхнем рекламном блоке. Перейдя по ссылке, мой знакомый нашел себе подходящие билеты, оформил заказ, и попал на страницу оплаты с помощью банковской карты…
Читать дальше →
Всего голосов 210: ↑210 и ↓0+210
Комментарии392

OpenSSL и Network Security Services (NSS) — две стороны одной медали

Время на прочтение31 мин
Количество просмотров8K
imageО какой медали идет речь в заголовке? Речь идет об инфраструктуре открытых ключей (Public Key Infrastructure — PKI/ИОК) на базе стандартов криптографии с открытым ключом (Public Key Cryptography Standards — PKCS). Инфраструктура открытых ключей включает в себя множество различных объектов и механизмов работы с ними, а также протоколы взаимодействия объектов друг с другом (например, протоколы TLS, OCSP). В число объектов ИОК/PKI входят сертификаты x509 и ключевые пары (приватные и публичные ключи), подписанные и зашифрованные документы (pkcs#7, CMS), защищенные контейнеры для хранения приватных ключей (pkcs#8) и личных сертификатов с ключами (pkcs#12) и т.д. В число механизмов входят не только криптографические функции, которые позволяют шифровать и подписывать документы по различным алгоритмам, но и функции, формирующие конечные объекты ИОК в соответствии со стандартами (сертификаты, запросы, подписанные/зашифрованные документы, пакеты протоколов и т.д. и т.п.). Да, и как не вспомнить центральный объект ИОК/PKI — Удостоверяющий Центр (УЦ).
Читать дальше →
Всего голосов 8: ↑6 и ↓2+4
Комментарии12

Криптография с открытым ключом: ключи RSA

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров11K

Уверен, что вы хотя бы раз создавали пару ключей RSA, напримет, потому, что вам нужно было подключиться к GitHub, и вы хотели избежать необходимости вводить свой пароль каждый раз. Вы добросовестно следовали инструкциям по созданию SSH-ключей, и через пару минут всё было готово.

Но знаете ли вы, что именно вы делали? Углублялись ли вы в детали процесса?

Знаете ли вы, что содержится в файле ~/.ssh/id_rsa? Почему ssh создает два файла с разным форматом? Замечали ли вы, что один файл начинается со слов ssh-rsa, а другой — с -----BEGIN RSA PRIVATE KEY----- ? Вы замечали, что иногда в заголовке второго файла отсутствует часть RSA и просто написано BEGIN PRIVATE KEY?

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

Читать далее
Всего голосов 24: ↑21 и ↓3+18
Комментарии1

Разбираем x.509 сертификат

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

Привет, %username%!

Так уж вышло, что несмотря на относительно неплохое понимание инфраструктуры открытых ключей, содержимое *.crt файлов всегда оставалось для меня полнейшей загадкой.
Нет, не поймите неправильно. Я знаю, что x.509 сертификат содержит информацию о владельце, открытый ключ, сведения об удостоверяющем центре и электронную цифровую подпись. Но при установке очередного сертификата меня всегда мучило любопытство.
Чем отличается идентификатор ключа от отпечатка? Какие данные сертификата подписываются, а какие нет? И что за структура данных позволяет хранить всю эту информацию, сводя избыточность к минимуму.
Но вот наконец-то любопытство перебороло лень и в данном посте я постараюсь описать структуру x.509 сертификатов и ответить на эти и другие вопросы.
Читать дальше →
Всего голосов 79: ↑75 и ↓4+71
Комментарии31

CTFzone write-ups – First comes Forensics

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


Прошло несколько дней после окончания CTFzone от компании BI.ZONE, а наши смартфоны до сих пор разрываются от уведомлений Telegram – чат с участниками битвы после конференции стал еще более оживленным. По отзывам игроков, многие задания CTFzone были очень нестандартными и действительно непростыми. Во время соревнования мы пообещали участникам, что, как только наши разработчики отоспятся и придут в себя, мы выложим райтапы для всех заданий в нашем блоге.

Начнем мы с направления Forensics, и в этой статье представляем вам решения на все таски – от задания на 50 до 1000. Мы знаем, что hackzard опередил нас и уже выложил райтапы к заданиям на 50 и 100, но с более крутыми тасками будет сложнее ;)
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии2

Скучно о работе дешифрации NGFW

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

Если вы хотите окончательно испортить первое свидание – поговорите с девушкой о дешифрации. Да и в случае последующих – тоже не стОит.

Наша встреча с вами не первая, поэтому в этом тексте речь снова пойдет о дешифрации.
Да, я вновь расскажу об SSL. Могу обрадовать себя и вас тем, что это второй и последний материал на эту тему. Возможно.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии22

Хакерский квест RUVDS подходит к концу, но сразиться за главный приз 142 857 рублей еще не поздно

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

Пока участники квеста готовятся к финальным испытаниям, а снег потихоньку тает в городах, расскажем для тех, кто пропустил начало, о пройденных этапах интерактивного хакерского кветса, и что ждать от финала.

Напомним, с чего всё началось: участники уже раскрыли секрет «Загадочной визитки», которую разобрали до последнего волокна и в результате залетели в блокчейн, а далее и в межпланетную файловую систему с новой порцией загадок.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии0

Структура PKCS7-файла

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

Довелось мне на днях столкнуться с такой напастью как p7s файл и, как вследствие этого, с Cryptographic Message Syntax (CMS). На хабре нашлась интересная статья описывающая структуру CMS данных, но в ней к сожалению нет примера, позволяющего наглядно продемонстрировать CMS на практике. Я хочу немного дополнить ту статью и разобрать внутренности файла цифровой подписи p7s.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии5

Ломаем модифицированный AES-256

Время на прочтение9 мин
Количество просмотров58K
Недавно в институте я столкнулся с любопытной криптографической задачей, которой хотел бы поделиться с Сообществом. Одним предложением задачу могу обозначить, как "Атака на LSX-шифр, не содержащий нелинейной компоненты, на основе открытых текстов". Так как русскоязычных примеров решения таких учебных «головоломок» встречается немного, а сама задача рекомендована для начинающих свой путь специалистов, я считаю, что такая статья может быть интересна юному криптоаналитику. Пожалуйте под кат.
image

Читать дальше →
Всего голосов 43: ↑42 и ↓1+41
Комментарии4

Кратко с реализацией о AES 128 ECB

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

Если вбить в яндекс 'aes 128 ecb mode', найдутся хорошие статьи ребят на "хабре": раз и два — толковые и одновременно слишком подробные.


Рассказ об алгоритме в картинках находится здесь (который также можно найти по ссылкам в одной из статей ребят выше).


Кратко об алгоритме: 1) создаем объект с 16-байтным state и массивом 16-байтных ключей; 2) пишем примитивы для объекта (они же трансформации); 3) запускаем n раз (где n — кол-во раундов). Все трансформации делаем симметричными — для зашифровки и расшифровки одновременно. Расшифровка в терминах алгоритма — это зашифровка наоборот.


Структура:


using byte_t = unsigned char;
struct aes128 {
  aes128(const std::string& text, const std::string& cipher, bool decrypt = false)
    : state({begin(text), end(text)}), keys({{begin(cipher), end(cipher)}}), decrypt(decrypt) {}
  aes128() = default;
  aes128(const aes128&) = default;

  std::vector<byte_t> state;
  std::vector<std::vector<byte_t>> keys;
  bool decrypt;
}
Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии8

Как устроен AES

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

О чём эта статья



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

В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.

Читать дальше →
Всего голосов 120: ↑115 и ↓5+110
Комментарии45

Компания D-Link по ошибке опубликовала секретные ключи для подписи прошивок

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


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

Пользователь под ником bartvbl приобрел камеру видеонаблюдения D-Link DCS-5020L и скачал обновление прошивки. Данный софт выпускается под свободной лицензией GPL, что дает возможность изучения исходного кода. Пользователь изучил код прошивки для своего устройства и обнаружил в нем четыре «зашитых» ключа шифрования для создания подписи. Некоторые файлы прошивки содержали сами ключи для подписи кода, а в некоторых даже были скрипты с необходимыми командами и паролями.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии8

На что способен мозг студента, познающего компьютерный мир

Время на прочтение7 мин
Количество просмотров24K
Доброго времени суток.

Закончив писать очередной скрипт на Bash, понял, что всё должно быть совершенно иначе, однако всё работало. Хочу вам показать, какие непотребства и костыли написал я, дабы решить задачу, но пока не имея вагона знаний. Иначе говоря, карикатура на программирование.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии30

Отголоски волшебства на страже точных наук

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

Близится вечер пятницы, трудовыебудни очередной учебно-рабочей недели агрессивно подкрадываются к своему логическому завершению, а это значит, что можно самую малость ослабить мертвую хватку должностных обязанностей и немного побездельничать. А что может быть более умиротворяющим, чем предаться софистическим фантазиям на тему закономерностей, по которым существует сей бренный мир? Решительно, ничего…

Этим текстом предлагаю разбавить высокий градус серьезности большинства хабропубликаций и, откинувшись в кресле / по пути с работы / учебы, проследить за логикой одной бредовой интересной аналогии, раскрывающей все тайны мироздания (серьезно).
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии6

О судьбе отечественного оборудования для сетей 5G. Часть IV Что есть базовая станция 4G/5G

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

И снова здравствуйте!

Первая часть. Обзор Рынка

Вторая часть. Внешние и внутренние противоречия

Третья часть. Основные действующие лица

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

Что из себя представляют базовые станции 5G, какова их роль в сетях связи, каковы основные компоненты и кто их производит, какие технологические вызовы будут стоять перед новым производителем, который решит войти на этот рынок? Давайте попробуем разобраться!

Как обычно - буду рад конструктивной критике, обратной связи и дискуссии. На базе Ваших предложений – сможем «углУбить и расшИрить» материал!

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии20

Реверс-инжиниринг первых умных часов Seiko UC-2000

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


Где-то в конце 1983 — начале 84 года, японская компания Seiko начала продавать первые в истории компьютеризированные часы — Seiko Data-2000 и Seiko UC-2000. Data-2000 имели возможность хранить 2КБ заметок, их нужно было вводить с помощью специальной компактной клавиатуры, которая шла в комплекте. UC-2000, по сути, те же Data-2000 с корпусом другого цвета, но они уже позиционировались как часть Наручной Информационной Системы, которая, среди прочего, включала терминал UC-2200, представляющий из себя компьютер с Z80-совместимым процессором, интерпретатором Бэйсика и термопринтером, но без экрана, в качестве которого использовались часы (как это не странно). Среди прочего, терминал давал возможность загружать на часы приложения со специальных картриджей. Подробнее о линейке ранних умных часов Seiko можно почитать, например, в этой статье. В этом же посте я расскажу, как написал (возможно) первую, за более чем 33 года, программу для этих часов.
Всего голосов 139: ↑139 и ↓0+139
Комментарии35

Дорабатываем драйвера RTX 3060 / 3070 Laptop из Китая

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

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

Читать далее
Всего голосов 15: ↑15 и ↓0+15
Комментарии32
1
23 ...