• Статичный хостинг: жизнь после смерти narod.ru

          В один прекрасный день я обнаружил, что narod.ru, наше все в области истории рунета и неисчерпаемый кладезь вырвиглазных сайтов, продался! Ucoz купил его. Невелика беда, подумал я, после того как перерегистрировал все свои старые сайты под ucoz и на время забыл о проблеме. Но вот недавно узнав о существовании изобилия генераторов статических сайтов я принял решение сделать еще один сайт ни о чем. Какого же было мое удивление, когда выяснилось, что Ucoz.ru более не поддерживает загрузку файлов html, обрекая вас использовать его конструктор сайтов помимо воли.

          Конечно, можно купить хостинг за пару долларов в месяц, можно найти бесплатный хостинг с perl, php и mysql. Можно даже идти в ногу с достижениями времени и воспользоваться heroku или google app engine, получив в нагрузку еще и поддержку передовых языков программирования. Но все это не то. Нет души. Разве может сравниться ламповая закачка обновлений по FTP с бездушной публикацией нажатием одной кнопки в Wordpress? Не может. Именно поэтому давайте посмотрим где и как сегодня можно сделать статический сайт.
      Читать дальше →
    • Жизнь разработчика (в картинках)

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

        Когда я показываю босу, что окончательно пофиксил баг



        Когда проджект-менеджер входит в офис



        Читать дальше →
      • Как отлаживать свой мозг

        Перевод статьи Оливера Эмбертона (Oliver Emberton) «How to debug your brain». Оригинал можно найти здесь.

        Наши мозги – самое глючное барахло после Internet Explorer.


        Для воспроизведения одного распространенного бага, попробуйте приказать себе «пойти в тренажерку». Мозги большей части людей в ответ обновят статус в Facebook и примутся за просмотр роликов с котятами. Это не ожидаемое поведение.

        image

        К счастью, я разработал заплатку. Но сперва давайте я расскажу, как работает весь этот мозг.
        Читать дальше →
      • Курсы этичного хакинга и тестирования на проникновение

          Курсы этичного хакинга и тестирования на проникновение.


          Если вы увлекаетесь информационной безопасностью и хотите усовершенствовать свои навыки в короткое время — предлагаем ознакомиться с обновленными программами обучения в области практической ИБ от Pentestit.

          Разрабатывая уникальные по своему формату и методике обучения курсы этичного хакинга: «Zero Security: A» (начальная подготовка) и «Корпоративные лаборатории» (профессиональная подготовка), мы стараемся сделать обучение не только эффективными, но и удобными. Основное отличие программ обучения заключается в том, что первая рассчитана на базовую подготовку в области этичного хакинга, а вторая — на профессиональную подготовку не только этичного хакинга, но и построения эффективных систем ИБ. В любом случае, даже опытные специалисты, посетившие первую программу, открывают для себя что-то новое, не говоря уже о «Корпоративных лабораториях», включающих материал, по уровню сравнимый с докладами на профессиональных хакерских конференциях. Кроме этого, каждый набор пополняется новым материалом, что позволяет передать специалистам, проходящим обучения, наиболее актуальную на момент обучения информацию.

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


          Читать дальше →
        • CSS 3 Timing Functions и с чем их едят

          • Перевод


          Хей народ, пристегните ремни и держитесь покрепче, ибо наступил действительно волнительный момент: вам предстоит разобраться в тонкостях чрезвычайно интересных временных функций CSS!


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

          Полетели!
          • +71
          • 47,7k
          • 8
        • Медленная работа SD карточек — кто виноват и что делать?

          Давно думал написать статью на Хабр, но все как-то не решался. Хотя и кажется, что есть мысли, которые были бы небезинтересны сообществу, но останавливает предположение, что это «кажется» проистекает от завышенной самооценки. Тем не менее попробую. Поскольку я профессионально занимаюсь электроникой, в частности, программированием микроконтроллеров, довольно-таки длительное время (как я подозреваю, дольше, чем живет большАя а может даже и бОльшая часть читателей Хабра), то за это время накопилось изрядное количество интересных случаев. Представляю на суд сообщества рассказ об одном из них.

          Итак, в одной разработке мне потребовалось сохранять значительные объемы информации с целью последующей передачи через сеть в обрабатывающий центр. Поскольку полученное устройство предполагало серийное производство, был выбран вариант с применением относительно недорогих компонентов, и, в частности, микроконтроллера как центрального элемента системы. Поскольку в тот момент (середина 2012 года) предложение микроконтроллеров с Ethernet PHY на борту не отличалось разнообразием (да и сейчас положение не намного лучше), был выбран МК фирмы TI семейства Stellaris, конкретно LM3S8962, тем более что отладочная плата для него у меня уже имелась. МК на тот момент относительно новый, активно продвигаемый фирмой TI (это в конце 2013 года она ВНЕЗАПНО перевела всю серию в разряд NRND), и обладающий вполне достаточными для решения данной задачи параметрами. Для хранения информациии был выбран вариант с SD карточкой, в первую очередь из за их доступности и дешевизны, а также потому, что на отладочной плате наличествовало контактное устройство для них, а на поставляемом с платой отладки CD имелись многочисленные примеры, в том числе и для SD карт. Интерфейс к карточке был реализован простейший — SPI, предложенные примеры сходу заработали, принятое решение позволяло обрабатывать полученные данные до написания интерфейса при помощи элементарного переноса карточки из устройства в кард-ридер ПК, так что первоначальная отладка алгоритмов взаимодействия с объектом управления проблем не вызвало, по крайней мере в этой части проекта. Как все понимают, проблемы возникли несколько позже…
          Читать дальше →
        • Приключенческая игра, в которую играют путем изменения её Javascript-кода

            Удивлен, что мимо Хабра прошла очаровательная приключенческая javascript-игрушка Untrusted.



            Надо помочь герою преодолеть более 20 уровней, в процессе прохождения которых мы встретим боевых дронов, реки и лабиринты, ключи и замки, звонки «оператору Матрицы» и многое другое… К счастью, благодаря взломанному компьютеру у главного героя есть доступ к коду игры! И если на первых уровнях мы просто изменяем на ходу реальность, то в конце нам придется запускать в нее свои js-объекты, помогающие атаковать мега-босса.

            Одно жаль — уровней мало. Бонус: милая музыка + хорошие комментарии в коде. Приятного вечера!
          • Начинаем изучать Cortex-M на примере STM32

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

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

            В этой статье, путь от фразы «Да, я хочу попробовать!» до радостного подмигивания светодиода, будет значительно длиннее чем у других авторов. Я постараюсь раскрыть аспекты программирования микроконтроллеров, которые прячутся за использованием библиотечных функций и готовых примеров.
            Если вы намерены серьезно изучать программирование микроконтроллеров данная статья для вас. Возможно, она может заинтересовать и тех, кто вдоволь наигрался с Arduino и хочет получить в свои руки все аппаратные возможности железа.
            Если вас не пугает написанное выше - прошу под кат
          • Приемы неявного вызова php кода, применяемые во вредоносных скриптах

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

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

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

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

              echo "Test"
              


              который выводит слово «Test» на странице. Естественно, в реальных шеллах и бэкдорах имена переменных и функций, а также исполняемый код не хранятся в открытом виде и в большинстве случаев обфусцированы.

              Читать дальше →
            • Продвинутые методы неявного вызова php кода, использующиеся во вредоносных скриптах

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

                В качестве примера вредоносного кода снова будем использовать вызов

                echo 'Test'
                


                Поскольку цель статьи показать различные подходы и механизмы скрытого выполнения кода, то для простоты функция, которая выполняет наш «вредоносный код» будет объявлена рядом с вызываемым ее неявно кодом. В реальной жизни вредоносный код и его вызов находятся далеко друг от друга, как минимум в разных php скриптах, но чаще код подгружается из базы данных, мета-данных изображений, с другого сервера, после чего выполняется функцией eval, assert, preg_replace и им подобными.

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