• Добываем Wi-Fi соседа стандартными средствами MacOS

      Я всегда был фанатом багов и уязвимостей «на поверхности», всегда завидовал чувакам, которые пишут эксплойты для самых защищённых ОС, а сам умел только скрипткиддить (термин из нулевых). Однако мой пост про уязвимости в системах контроля версий набрал более 1000 лайков на Хабре и остаётся топ1 постом за всю историю Хабра, несмотря на то, что был написан 9(!) лет назад.

      И сегодня я хотел бы на пальцах показать и рассказать про такую штуку, как вардрайвинг. А точнее, как стандартными средствами MacOS можно добыть пароли от Wi-Fi соседей. Нелёгкая забросила меня на очередную квартиру. Как-то исторически сложилось, что я ленивый. Пару лет назад я уже писал, что моя лень, новая квартира и провод Beeline (бывшая Corbina) помогли мне найти багу у Билайна и иметь бесплатно интернет в их сети. «Сегодня» происходит «подобное», я на новой квартире, нет даже провода, но есть много сетей у соседей.


      Заколебавшись расходовать мобильный трафик, я решил, что «соседям надо помогать», и под «соседями» я имел введу себя…
      Читать дальше →
    • Intel ME. Как избежать восстания машин?



        В прошлый раз мы рассказали об Intel Management Engine (ME) — подсистеме, которая встроена во все современные компьютерные платформы (десктопы, лэптопы, серверы, планшеты) с чипсетами компании Intel. Эта технология многими воспринимается как аппаратная «закладка», и на то есть причины. Достаточно сказать, что Intel ME является единственной средой исполнения, которая:
        • работает даже тогда, когда компьютер выключен (но электропитание подаётся);
        • имеет доступ ко всему содержимому оперативной памяти компьютера;
        • имеет внеполосный доступ к сетевому интерфейсу.


        Ошарашенный присутствием такого компонента в компьютере, пользователь (получается, что именно «пользователь», а не «владелец») наверняка задавался вопросом: можно ли выключить Intel ME?

        Эта статья целиком посвящена этому вопросу.

        Читать дальше →
      • Как писать на ассемблере в 2018 году



          Статья посвящена языку ассемблер с учетом актуальных реалий. Представлены преимущества и отличия от ЯВУ, произведено небольшое сравнение компиляторов, скрупулёзно собрано значительное количество лучшей тематической литературы.
          Читать дальше →
        • Swift-фреймворк в Objective-C-приложении

          Хоть Apple и написали, казалось бы, подробную документацию о том, как можно использовать Swift-код внутри Objective-C-приложения (и наоборот), но когда доходит до дела, этого почему-то окаывается недостаточно. Когда в проекте, в котором я задействован, появилась необходимость обеспечить совместимость Swift-библиотеки одного из продуктов компании с Objective-C-приложением одного из клиентов, документация Apple породила больше вопросов, чем дала ответов (ну или по крайней мере оставила множество пробелов). Интенсивное использование поисковых систем показало, что данная тема освещена в Сети довольно скудно: парочка вопросов на StackOverflow, пара-тройка вводных статей (на англоязычных ресурсах, конечно) – вот и все, что удалось найти.

          Данная статья является обощением найденной информации, а также полученного опыта. Подчеркну, она не претендует на то, чтобы называться, как говорится, хорошей практикой, а лишь предлагает возможные действия в описанных обстоятельствах или является неким академическим экспериментом.
          Читать дальше →
        • Время отклика компьютеров: 1977−2017

          • Перевод
          У меня гнетущее чувство, что современные компьютеры по ощущениям медленнее, чем те компьютеры, которые я использовал в детстве. Я не доверяю такого рода ощущениям, потому что человеческое восприятие доказало свою ненадёжность в эмпирических исследованиях, так что я взял высокоскоростную камеру и измерил время отклика устройств, которые попали ко мне за последние несколько месяцев. Вот результаты:

          Компьютер Отклик
          (мс)
          Год Тактовая
          частота
          Кол-во
          транзисторов
          Apple 2e 30 1983 1 МГц 3,5 тыс.
          TI 99/4A 40 1981 3 МГц 8 тыс.
          Haswell-E 165 Гц 50 2014 3,5 ГГц 2 млрд
          Commodore Pet 4016 60 1977 1 МГц 3,5 тыс.
          SGI Indy 60 1993 0,1 ГГц 1,2 млн
          Haswell-E 120 Гц 60 2014 3,5 ГГц 2 млрд
          ThinkPad 13 ChromeOS 70 2017 2,3 ГГц 1 млрд
          iMac G4 OS 9 70 2002 0,8 ГГц 11 млн
          Haswell-E 60 Гц 80 2014 3,5 ГГц 2 млрд
          Mac Color Classic 90 1993 16 МГц 273 тыс.
          PowerSpec G405 Linux 60 Гц 90 2017 4,2 ГГц 2 млрд
          MacBook Pro 2014 100 2014 2,6 ГГц 700 млн
          ThinkPad 13 Linux chroot 100 2017 2,3 ГГц 1 млрд
          Lenovo X1 Carbon 4G Linux 110 2016 2,6 ГГц 1 млрд
          iMac G4 OS X 120 2002 0,8 ГГц 11 млн
          Haswell-E 24 Гц 140 2014 3,5 ГГц 2 млрд
          Lenovo X1 Carbon 4G Win 150 2016 2,6 ГГц 1 млрд
          Next Cube 150 1988 25 МГц 1,2 млн
          PowerSpec G405 Linux 170 2017 4,2 ГГц 2 млрд
          Пакет вокруг света 190
          PowerSpec G405 Win 200 2017 4,2 ГГц 2 млрд
          Symbolics 3620 300 1986 5 МГц 390 тыс.
          Читать дальше →
        • Сравнение отклика клавиатур

          • Перевод
          Если вы посмотрите на «игровые» клавиатуры, то многие из них продаются по цене $100 или выше на заявлениях об их быстроте. В рекламных объявлениях можно встретить такие заявления:

          • Специально разработанные клавиши, которые сокращают время регистрации нажатия
          • В 8 РАЗ БЫСТРЕЕ — скорость опроса 1000 Гц: время отклика 0,1 миллисекунды
          • Получи абсолютное преимущество над своими противниками со сверхбыстрой работой клавишных переключателей 45g и срабатыванием на 40% быстрее, чем у стандартных переключателей Cherry MX Red
          • Самая высокая в мире частота опроса 1000 Гц
          • Самая быстрая в мире игровая клавиатура, частота опроса 1000 Гц, время отклика 0,001 секунды
          Несмотря на все эти заявления, я нашёл только одного человека, который публично протестировал время отклика клавиатуры — и он проверил только две клавиатуры. Вообще, по моему глубокому убеждению, если кто-то делает заявления о производительности без бенчмарков, то вероятно эти заявления не являются правдой, как непротестированный (или иным образом проверенный) программный код следует по умолчанию считать нерабочим.

          Ситуация с игровыми клавиатурами во многом напоминает разговор с продавцом машин:

          Продавец: Эта машина супербезопасна! У неё двенадцать подушек безопасности!
          Я: Это хорошо, но как она выглядит в краш-тестах?
          Продавец: Двенадцать подушек безопасности!


          Конечно, у игровых клавиатур частота опроса 1000 Гц, и что из этого?
          Читать дальше →
        • Если вы девушка, то стоит ли идти в разработчики. Мой опыт

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

          image
          Читать дальше →
        • Как в TMemo сделать вертикальное выравнивание, отступы и TextHint

          Пролог


          Итак, из-за чего все собственно и стряслось. Я пишу плагины для LedearTask. Также, в 2017 году, написал векторный редактор для турецкой фирмы станков по производству печатей MATUYA. Что LeaderTask, что MATUYA, выставили интересные требования – вертикальное выравнивание в многострочном редакторе, отступы и TextHint. TextHint имеется ввиду — такое серое приглашение ввести хоть что-нибудь, когда элемент ввода пуст.

          image
          LeaderTask: плагин «Лестница Целей» (ввод и хинт по центру в многострочном редакторе)

          image
          Matuya Stamp Systems (ввод текста выровнен по правому и нижнему краю)
          Читать дальше →
        • Доделал игру, работающую на видеокарте

            Наконец-то я доделал игру, которая работает на видеокарте. Она несколько месяцев повисела в раннем доступе на стиме, и теперь я её окончательно выпустил. Основная фишка игры в том, что она представляет собой физическую симуляцию, которая выполняется на графическом процессоре. Основной код игры — это огромный compute shader, 6 тысяч строк на HLSL. Десятки тысяч взаимодействующих частиц обрабатываются параллельно, и выходит довольно быстро. Всё в игре сделано из этих частиц. Вот несколько гифок о том, как это работает:

            image
            Читать дальше →
          • Да начнется unit-тестирование (Objective-C)

            Данная статья посвящена вопросу тестирования в рамках Objective-C используя Xcode 6. Рассматриваются стандартная библиотека для тестирования и сторонняя библиотека OCMock. Опытные разработчики, возможно, не найдут здесь слишком полезной информации, тем же, кто недавно встал на этот путь — статья откроет необходимые базовые знания по написанию unit-тестов на языке Objective-C.

            Для основы тестирования просьба обратиться сюда.
            Для основы unit-тестирования сюда.

            А теперь мы начнем изучение unit-тестирования в рамках Objective-C.
            Читать дальше →