• Реверс-инжиниринг прошивки устройства на примере мигающего «носорога». Часть 1

    • Tutorial

    26 апреля 2018 года компания ИНФОРИОН провела конференцию для студентов МГТУ им. Баумана SMARTRHINO-2018. Специально для конференции было подготовлено небольшое устройство на базе микроконтроллера STM32F042.

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

    Первая часть статьи составлена по мотивам проведённого мастер-класса и рассчитана на начинающих — уделяется внимание базовым подходам к реверсу прошивок и особенностям работы с дизассемблером IDA.

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

    Осторожно, под катом мигающий носорог и его прошивка!
    Читать дальше →
  • Как Unix-way убивает десктопный Linux

      Нет, конечно же, не убивает.
      То, что мертво, умереть не может: доля линукса на десктопах колеблется около 2% уже много лет, и не имеет тенденций ни к росту, ни к падению, изменяясь на уровне статистической погрешности.

      Как выглядит захват рынка конкурентоспособным продуктом, можно видеть на примере, например, Chrome: за 10 лет рост на 70%. Или Android: за 5 лет рост на 75%. А вот у Linux рост пол-процента в год, несмотря на то, что он, например, лучший из существующих вариантов для использования в качестве национальных/государственных ОС.

      Так в чем же дело? Почему несмотря на все старания, Linux, который стал стандартом де-факто на встраиваемых устройствах, работает на подавляющем большинстве серверов, целиком захватил рынок суперкомпьютеров, Linux, над которым работают сотни компаний и десятки тысяч людей... практически не используется на обычных компьютерах и ноутбуках?

      Причины этой ситуации, как ни странно, те же, что сыграли роль в популярности Linux на серверах: unix-way, "Философия Unix": "Пишите программы, которые делают что-то одно, и делают это хорошо, и имеют возможность получать и принимать данные через текстовый интерфейс (потому что он универсален)".

      Там огромный лонгрид, я предупредил
    • Автор атаки KRACK раскрыл подробности о 12 критических уязвимостях популярных беспроводных устройств


        Об атаке, вернее, атаках KRACK (Key Reinstallation Attacks) на Хабре писали несколько лет назад. Так называли инструменты, которые позволяют эксплуатировать критичные уязвимости в протоколе WPA2, который считается достаточно надежным. KRACK дает возможность обойти защиту и прослушивать трафик в беспроводной сети на участке «точка доступа — компьютер».

        Сейчас один из организаторов группы, которая рассказала о KRACK в 2017 году, раскрыл еще несколько уязвимостей. Всего их 12, и каждая из них — критически опасна, поскольку затрагивает широкий спектр беспроводных устройств. Автора работы, о которой пойдет речь, зовут Мэти Ванхоф (Mathy Vanhoef). По его словам, атаки, информацию о которых он предоставил, представляют угрозу для подавляющего большинства популярных беспроводных девайсов — как пользовательских, так и корпоративных.
        Читать дальше →
      • Разработка первой игры на Construct 3

        Здравствуйте, если вы это читаете, то наверное у вас есть мечта создать свою игру.

        А может вы просто странник случайно открывший эту статью? \_^-^_/

        В этой статье я показал процесс разработки простой игры на Construct.

        Читать далее
      • Embedded Linux в двух словах. Первое

        • Tutorial

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

        Платформой послужит плата BeagleBone Black с процессором производства Техасских Инструментов AM3358 и ядром Arm Cortex-A8, и, чтобы не плодить мигающие светодиодами мануалы, основной задачей устройства будет отправка смайлов в топовый чат, широко известного в узких кругах, сайта,  в соответствии с командами от смайл-пульта. Впрочем, без мигания светодиодами тоже не обошлось.

        Читать далее
      • Животное устало

        • Перевод
        Животное стареет. Ничего удивительного. Я знала, что в конце концов это произойдёт. Но не предусмотрела никаких мер, чтобы справиться с ситуацией. Реальность подкралась незаметно. И теперь с ней приходится жить…

        Оно мечется по ночам, стонет от болячек, не может найти удобное положение для сна. Будит меня слишком рано, по утрам мышцы деревенеют и не хотят двигаться, и оно не может снова заснуть. А если оставить его спокойно посидеть, то оно задремлет прямо посреди дня. Стало сложно найти продукты, совместимые с его пищеварением. Оно отвергает всё больше и больше продуктов, но не соглашается на монотонную диету, которая вроде бы ему подходит. Несмотря на ограниченное питание, существо набирает вес и утолщается в середине. Одновременно теряет силу и гибкость.
        Читать дальше →
      • Прямоугольные тайловые миры

        • Tutorial

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

        Огромное множество игр на самом деле содержат тайлы - так просто проще представлять игровой мир. Такая упорядоченность помогает геймдизайнерам строить игровые механики, упрощает жизнь художников и делает код программистов понятнее. Самих видов тайлов тоже огромное количество - сегодня поговорим о прямоугольных и изометрических.

        Читать далее
      • Топ-32 оптических иллюзий движения от японского художника @jagarikin

          image

          (1)

          Есть такой японский цифровой художник じゃがりきん (jagarikin), который экспериментирует с иллюзией движения (обратный фи-феномен), когда пиксели не двигаются, а просто меняют цвет. Его работы репостнули Илон Маск и Стивен Пинкер. За полгода я хорошенько поизучал его работы (отмотал «Твиттер» на 5 лет) и выбрал 32 самых крутых и залипательных. Отметьте для себя, какая иллюзия приковала ваше внимание больше всего, и поделитесь в комментариях.

          Канал в Telegram Cognitive Illisions, где я буду делиться самыми вырвиглазными находками, как хакнуть мозг через восприятие.

          Осторожно: 1) Гифки тяжелые! 2) Много ярких мигающих картинок!

          Читать дальше →
        • Меняем промежуточное представление кода на лету в Ghidra

          • Tutorial

          Когда мы разрабатывали модуль ghidra nodejs для инструмента Ghidra, мы поняли, что не всегда получается корректно реализовать опкод V8 (движка JavaScript, используемого Node.js) на языке описания ассемблерных инструкций SLEIGH. В таких средах исполнения, как V8, JVM и прочие, один опкод может выполнять достаточно сложные действия. Для решения этой проблемы в Ghidra предусмотрен механизм динамической инъекции конструкций P-code — языка промежуточного представления Ghidra. Используя этот механизм, нам удалось превратить вывод декомпилятора из такого:

          Читать далее
        • Создаем процессорный модуль под Ghidra на примере байткода v8

          • Tutorial

          В прошлом году наша команда столкнулась с необходимостью анализа байткода V8. Тогда еще не существовало готовых инструментов, позволявших восстановить такой код и обеспечить удобную навигацию по нему. Было принято решение попробовать написать процессорный модуль под фреймворк Ghidra. Благодаря особенностям используемого языка описания инструкций на выходе мы получили не только читаемый набор инструкций, но и C-подобный декомпилятор. Эта статья — продолжение серии материалов (1, 2) о нашем плагине для Ghidra.

          Между написанием процессорного модуля и статьи прошло несколько месяцев. За это время спецификация SLEIGH не изменилась, и описанный модуль работает на версиях 9.1.2–9.2.2, которые были выпущены за последние полгода.

          Сейчас на ghidra.re и в приложенной к Ghidra документации есть достаточно хорошее описание возможностей языка — эти материалы стоит почитать перед написанием своих модулей. Отличными примерами могут быть уже готовые процессорные модули разработчиков фреймворка, особенно если вы знаете описываемую в них архитектуру.

          В документации можно прочесть, что процессорные модули для Ghidra пишутся на языке SLEIGH, который произошел от языка SLED (Specification Language for Encoding and Decoding) и разрабатывался целенаправленно под Ghidra. Он транслирует машинный код в p-code (промежуточный язык, используемый Ghidra для построения декомпилированного кода). Как у языка, предназначенного для описания инструкций процессора, у него достаточно много ограничений, которые, однако, можно купировать за счет механизма внедрения p-code в java-коде.

          Исходный код созданного процессорного модуля представлен на github. В этой статье будут рассматриваться принципы и ключевые понятия, которые использовались при разработке процессорного модуля на чистом SLEIGH на примере некоторых инструкций. Работа с пулом констант, инъекции p-code, анализатор и загрузчик будут или были рассмотрены в других статьях. Также про анализаторы и загрузчики можно почитать в книге The Ghidra Book: The Definitive Guide.

          Читать далее
        • Полезные консольные Linux утилиты

            В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.


            Осторожно много скриншотов. Добавил до ката утилиту binenv.


            binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.

            Читать дальше →
          • Руководство по возможностям Java версий 8-16

            • Перевод

            Последнее обновление: 05 апреля 2021 г.

            Вы можете использовать это руководство, чтобы получить практическую информацию о том, как найти и установить последнюю версию Java, понять различия между дистрибутивами Java (AdoptOpenJdk, OpenJDK, OracleJDK и т. д.), А также получить обзор функций языка Java, включая версии Java версии. 8-16.

            Читать далее
          • Как мы обошли bytenode и декомпилировали байткод Node.js (V8) в Ghidra

              «Да я роботов по приколу изобретаю!» Рик Санчес

              Многим известно, что в 2019 году АНБ решило предоставить открытый доступ к своей утилите для дизассемблирования (реверс-инжиниринга) под названием Ghidra. Эта утилита стала популярной в среде исследователей благодаря высокой «всеядности». Данный материал открывает цикл статей, посвященных плагину ghidra_nodejs для Ghidra, разработанному нашей командой (https://github.com/PositiveTechnologies/ghidra_nodejs). Задача плагина — десериализовать содержимое jsc-файлов, дизассемблировать байткод функций и декомпилировать их. В первой статье мы обсудим сущности и байткод движка V8, а также тезисно опишем сам плагин, про который подробно расскажем в последующих статьях.

              Рано или поздно все сталкиваются с программами на языке JavaScript, их так и называют скриптами. JavaScript — это полноценный язык со своим стандартом ECMA Script, скрипты которого выполняются не только в браузере, но и на сервере.

              Скрипты исполняются с помощью специальной программы, которую называют движком (engine) JavaScript. За годы движкостроения их понапридумывали предостаточно: V8, SpiderMonkey, Chakra, Rhino, KJS, Nashorn и т. д.

              Читать далее
              • +26
              • 3,9k
              • 6
            • Шесть пасхалок GitHub

              • Перевод
              В недрах кода GitHub скрыто немало пасхалок. Здесь мы поговорим о некоторых из них.



              Кстати, вы знали о том, что фразу «Easter egg» («пасхальное яйцо», в просторечии — «пасхалка») придумал в 1979 году Стив Райт — директор по разработке программного обеспечения Atari? Если вы смотрели фильм «Первому игроку приготовиться» — значит вам всё уже должно быть понятно. Вот фрагмент фильма, где игрок находит первую в мире пасхалку, скрытую в классической игре Adventure.
              Читать дальше →
              • +40
              • 12,2k
              • 9
            • Скрипт удаляет «неудаляемые» мусорные приложения Android



                На Хабре уже публиковались инструкции, как удалить со смартфона «неудаляемый» мусор, который туда добавляют производители и операторы сотовой связи. Для этого не требуются рутовые права. Все операции можно выполнить вручную, подключив смартфон к компьютеру по ADB. Подробнее см. статью «Как удалить «неудаляемые» приложения со смартфона».

                Сейчас на Gitlab опубликован универсальный bash-скрипт Universal Android Debloater, который автоматизирует большинство операций на большинстве популярных моделей смартфонов.
                Читать дальше →
              • Assembler Editor Plus: Использование модулей

                  Продолжение цикла статей про редактор ассемблера для ARM микроконтроллеров под компилятор GNU AS

                  предыдущая статья Assembler Editor Plus: Первый проект

                  под катом будет скорее всего много картинок!

                  Читать далее
                • Как root-права и альтернативные прошивки делают ваш android смартфон уязвимым

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

                  Часто для этого рекомендуется получение прав суперпользователя в системе (root-права), удаление системных приложений от Google и от производителя устройства, или даже полная замена стандартной ОС на альтернативные сборки, чаще всего LineageOS (бывший CyanogenMod). При этом первым шагом в этом процессе всегда будет так называемая "разблокировка загрузчика". Во время её выполнения устройство несколько раз покажет нам страшные предупреждения о том, что теперь оно станет более уязвимо для злоумышленников, но мы смело нажимаем "подтвердить" и шьём root или самую свежую сборку кастомной прошивки, не задумываясь о том какие проблемы создаёт нам незаблокированный загрузчик. 

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

                  Интересующихся приглашаю под кат.

                  Читать далее
                • Самый беззащитный — уже не Сапсан. Всё оказалось куда хуже…

                    {UPD 10.02.2021} Евгений Чаркин дал интервью на эту тему gudok.ru/newspaper/?ID=1552569
                    Под катом мои комментарии на некоторые тезисы.
                    {/UPD}

                    Больше года назад хабравчанин keklick1337 опубликовал свой единственный пост «Самый беззащитный — это Сапсан» в котором рассказывает как он без серьёзных ухищрений получил доступ ко внутренней сети РЖД через WiFi Сапсана.

                    В ОАО «РЖД» прокомментировали результаты этого расследования. «Есть результаты проверки. Почему удалось взломать? Наверное, потому, что злоумышленник. Наверное, из-за этого… Ну, он из „фана“. Юный натуралист. Там уязвимостей, которые бы влияли на утечку каких-то критических данных, нет. Мультимедийный портал „Сапсанов“ функционирует как положено и не нуждается в доработке», — заявил Евгений Чаркин.

                    То есть вместо того, чтобы выразить благодарность за обнаруженную уязвимость, автора обозвали «злоумышленником» и «Юным натуралистом».

                    К сожалению, но специалисты РЖД, начиная с директора по информационным технологиям, отнеслись к статье очень пренебрежительно, проигнорировав важное указание автора:
                    Также оттуда в сеть РЖД есть впн. Если захотите — найдёте её там сами.

                    И вот, год спустя я попал в сеть РЖД даже не садясь в Сапсан.



                    Видимо, только этот котэ добросовестно охраняет вокзал.

                    Как именно я попал в сеть РЖД с пруфами, чего не сделал директор по информационным технологиям ОАО «РЖД» Чаркин Евгений Игоревич и возможные последствия — под катом.
                    Читать дальше →
                  • Взлом Wi-Fi-сетей, защищённых WPA и WPA2

                    • Перевод
                    Автор статьи, перевод которой мы сегодня публикуем, хочет рассказать о том, как взломать Wi-Fi-сеть, для защиты которой используются протоколы WPA и WPA2.


                    Статья написана исключительно в ознакомительных целях

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