• Так ли безопасен Tox, как его малюют?

      Tox Sux
      Всем привет!

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

      В последнее время наблюдается нездоровая тенденция переоценивать защищенность подобных систем только на основании того, что они P2P. Буду излагать объективные факты и дополнять их своими комментариями, чтобы не бросаться громкими фразами в пространство. Выводы предлагаю делать самостоятельно.

      Заранее отвечу на вопрос: мой pull request был принят.
      А теперь факты:
    • Как я взломал паяльник

      Фраза звучит несколько странно? Спасибо техническому прогрессу — не так давно «сфотографировать на телефон» звучало не менее странно.

      image

      В конце прошлого года я купил паяльную станцию, уже успевшую получить ярлык «народная». Её достоинства: удобные жала-картриджи T12, приличная мощность (до 72W в теории), быстрый нагрев (единицы секунд), невысокая цена. (Подробнее ознакомиться со станцией можно в этом шикарном обзоре)

      Купил я самую последнюю версию hardware 2.1s, и немного расстроился, увидев что прошивка старая. Разумеется руки зачесались обновить. Зная что «сердцем» паяльной станции является STM32F103C8 (популярный микропроцессор ARM Cortex-M3 производства STMicroelectronics) — тем интереснее было покопаться, т.к. я когда-то уже моргал светодиодом на STM32F4Discovery.

      Тут же были припаяны 4 провода SWD интерфейса, подключен программатор, залита прошивка.
      И… Станция потребовала активацию!
      Читать дальше →
    • Compact varint — уникальность и большие значения за ту же стоимость

        UPD 2018.03.15: Git давно использует свой вариант compact varint. Различия в послесловии.


        Внимание: Код представленный в статье немного отличается от оригинальных EncodeVarint и DecodeVarint и даёт другие результаты. Будьте внимательны.


        В multiformats/unsigned-varint обсуждении правильной записи числа в varint было замечено что многие числа в оригинальном varint могут быть записаны в последовательности разной длинны. Это даст разные блоки и их хеши при идентичных значениях кодированных в протобуфер.


        Оригинальный varint


        Оригинальный varint просто делит число на кусочки по 7 бит. И записывает их в порядке от младшего к старшему добавляя к каждому кусочку старший 8ой бит (MSB — most significant bit). Значение этого бита зависит от того последний это кусочек (0) или нет (1).


        Таким образом например значение 0 мы можем записать во многих вариантах:


        1. 0000 0000 (0x00) varint = 0
        2. 1000 0000 0000 0000 (0x8000) varint = 0
        3. 1000 0000 1000 0000 0000 0000 (0x808000) varint = 0
          и так далее.

        Compact varint


        Я подумал что можно начинать значения контейнера большего размера от максимального значения предыдущего контейнера + 1. Ведь если мы используем контейнер такого размера то число должно быть больше максимума предыдущего контейнера.

        Читать дальше →
      • Правильная работа с закладками: как работать эффективнее и запоминать больше

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

        В какой-то момент меня стало удивлять, почему многие пользователи не обращают внимание на очевидные преимущества, которые даёт «закладочная система», ведь она позволяет не только быстрее работать, но и запоминать больше (напомню, главная функция закладок как раз и состоит в запоминании)!

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

        Материал собирался на основе анализа функционала браузеров Mozilla Firefox, Google Chrome, Opera, Yandex.Browser, Opera Mobile и Chrome Mobile, которые у меня стоят больше в целях проверки вёрстки сайтов, но также позволили сравнить закладочные возможности браузеров сами по себе (я в курсе, что Яндекс.Браузер и Хром — это где-то рядом, но хотел специально уточнить).
        Читать дальше →
      • Пишем свой BitTorrent-клиент на базе библиотеки Bt

        Всем привет! В данной статье я расскажу о том, что из себя представляет библиотека Bt, чем она хороша и почему стоит иметь ее в виду, если для решения каких-то задач планируется использовать BitTorrent. Затем, в качестве демонстрации базовых функций и основного API, мы реализуем простейший консольный торрент-клиент.


        Отличительные особенности Bt


        Bt — это современная полнофункциональная реализация протокола BitTorrent на Java 8 [1]. По сравнению с существующими open-source аналогами [2][3], Bt обладает следующими преимуществами:

        Читать дальше →
        • +21
        • 4,2k
        • 6
      • Делаем дырки в торрентах освобождая место и оставаясь на раздаче (часть 1)

          image
          Предупреждение: Этот график сделан для скрипта второй части статьи за которую я ещё не брался. Поэтому не очень обращайте внимание на данные в нём. Графики для этой статьи в конце.


          Информацию из этой статьи используйте на свой страх и риск. Мы будем стирать данные из файлов. Статья написана под операционную систему Windows и файловую систему NTFS. Также в статье много изображений.


          Что такое разреженный файл


          Разрежённый файл (англ. sparse file) — файл, в котором последовательности нулевых байтов[1] заменены на информацию об этих последовательностях (список дыр).

          Дыра (англ. hole) — последовательность нулевых байт внутри файла, не записанная на диск. Информация о дырах (смещение от начала файла в байтах и количество байт) хранится в метаданных ФС.

          На Geektimes также есть небольшая статья о них: "Разреженные файлы в NTFS"


          Операционная система по умолчанию не создаёт разреженные файлы. Этот флаг можно установить файлу программно или при помощи утилиты.


          Устанавливаем флаг при помощи утилиты:


          fsutil sparse setflag <имя файла>
          Читать дальше →
        • Отслеживаем действия пользователя с помощью CSS

          • Tutorial

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


          Также здесь мы рассмотрим метод, как получить поведенческую информацию от пользователей используя только HTML и CSS.


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


          Так или иначе, эта информация поможет вам понять один нестандартный метод отслеживания поведения пользователей, который на данный момент нельзя "отключить" (в настройках) или заблокировать (плагинами вроде AdBlock или Ghostery).

          Читать дальше →
        • Создаем CSS кейлоггер

            Часто бывает так, что внешние JS файлы выглядят как угроза для клиента, в то время как внешнему CSS не придают особого значения. Казалось бы, как CSS правила могут угрожать безопасности вашего приложения, и собирать логины? Если вы считаете что это невозможно, то пост будет вам полезен.


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

            Читать дальше →
          • Шифрования сообщений вконтакте методом AES для браузеров Chrome и Firefox

            image

            После скандала с PRISM вопрос безопасности данных стал еще актуальней чем был, и даже если вы не секретный агент, то ваша личная переписка, должна соответствовать своему названию, и по умолчанию должна быть закрыта от доступа третьих лиц. Взяв это за аксиому это принцип, я занялся разработкой дополнений для браузеров для работы с популярной в странах СНГ социальной сетью вконтакте методом AES.
            Читать дальше →