• Бесплатный учебник электроники, архитектуры компьютера и низкоуровневого программирования на русском языке


      Господа! Я рад сообщить, что наконец-то все желающие могут загрузить бесплатный учебник на более чем 1600 страниц, над переводом которого работало более полусотни человек из ведущих университетов, институтов и компаний России, Украины, США и Великобритании. Это был реально народный проект и пример международной кооперации.

      Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», второе издание, 2012, сводит вместе миры программного обеспечения и аппаратуры, являясь одновременно введением и в разработку микросхем, и в низкоуровневое программирование для студентов младших курсов. Этот учебник превосходит более ранний вводный учебник «Архитектура компьютера и проектирование компьютерных систем» от Дэвида Паттерсона и Джона Хеннесси, причем соавтор предыдущего учебника Дэвид Паттерсон сам рекомендовал учебник от Харрисов как более продвинутый. Следуя новому учебнику, студенты строят реализацию подмножества архитектуры MIPS, используя платы с ПЛИС / FPGA, после чего сравнивают эту реализацию с индустриальными микроконтроллерами Microchip PIC32. Таким образом вводится вместе схемотехника, языки описания аппаратуры Verilog и VHDL, архитектура компьютера, микроархитектура (организация процессорного конвейера) и программирование на ассемблере — в общем все, что находится между физикой и высокоуровневым программированием.

      Как загрузить? К сожалению, не одним кликом. Сначало надо зарегистрироваться в пользовательском коммьюнити Imagination Technologies, потом зарегистрироваться в образовательных программах на том же сайте, после чего наконец скачать:
      Читать дальше →
    • Особенности внедрения DLL и установки хуков в Modern-приложениях Windows 8/10

      • Tutorial
      Для чего вообще нужно внедрять свои DLL-ки в чужие процессы и устанавливать там хуки? Для того, чтобы понять какие функции будет вызывать это приложение, с какими параметрами и что эти функции вернут. Таким образом мы можем понять внутреннюю логику работы этого приложения, узнать к каким файлам оно пытается получить доступ, какие данные пересылает по сети, мы можем добавить в него логирование, профилирование, отладить баг, получить из приложения некоторые данные или наоборот — добавить в его интерфейс что-нибудь нужное нам. Хуки использует известная утилита Spy++ для работы с окнами приложений, DirectX-отладчики вроде RenderDoc, некоторые утилиты от SysInternals, программы типа ApiMonitor и т.д.

      Некоторое время назад я писал вводные статьи об использовании хуков на примерах библиотек Microsoft Detours и madCodeHook (если вы совсем не знакомы с хуками — это то, с чего можно начать). Описанных там техник достаточно для работы с обычными приложениями, но время не стоит на месте и вот сегодня у нас уже есть Metro Modern-приложения, входящие в комплект Windows 8 и Windows 10, а также распространяющиеся через Microsoft Store программы сторонних производителей. К примеру, новый браузер Spartan — это Modern-приложение. Внедрение DLL в эти процессы имеет свои особенности и на первый взгляд может даже показаться невозможным, но это не так. В этой статье я расскажу, как мы можем залезть внутрь Modern-приложения и установить в нём хуки в своих коварных целях.
      Читать дальше →
      • +22
      • 13.9k
      • 1
    • Return oriented programming. Собираем exploit по кусочкам

      • Tutorial
      Введение
      В этой статье мы попробуем разобраться как работает Return Oriented эксплоит. Тема, в принципе, так себе заезженная, и в инете валяется немало публикаций, но я постараюсь писать так, чтобы эта статья не была их простой компиляцией. По ходу нам придется разбираться с некоторыми системными особенностями Linux и архитектуры x86-64 (все нижеописанные эксперименты были проведены на Ubuntu 14.04). Основной целью будет эксплуатирование тривиальной уязвимости gets с помощью ROP (Return oriented programming).
      Читать дальше →
      • +37
      • 23.1k
      • 4
    • 6 мифов, мешающих разработчикам использовать Git

      • Translation


      Сейчас вы с трудом найдете профессионального разработчика, который не пользуется системой контроля версий (VCS) такой, как Git.
      Но есть и не мало тех среди нас, кто не использует VCS по причине предвзятого мнения о системах контроля версий.
      Ниже несколько мифов и отговорок, которые препятствуют внедрению в рабочий процесс разработчика Git (или любой другой VCS).
      Читать дальше →
    • Подключение дисплея DVD плеера к микроконтроллеру



      Начну с предыстории, зачем же мне все это нужно. Я задался целью сделать себе HTPC компьютер на базе корпуса от DVD плеера Daewoo DV-500, внешне он мне нравится, и свободного места в нем достаточно для установки необходимого железа внутрь. Но помимо всего, я задумал оставить родной индикатор и задействовать его для отображения различной информации. О том, как я подключал дисплей к микроконтроллеру и расшифровывал протокол обмена этого дисплея, пойдет в этой статье.
      Читать дальше →
    • Альтернативные методы трассировки приложений

        image

        Трассировка используется во многих видах ПО: в эмуляторах, динамических распаковщиках, фаззерах. Традиционные трейсеры работают по одному из четырех принципов: эмуляция набора инструкций (Bochs), бинарная трансляция (QEMU), патчинг бинарных файлы для изменения потока управления (Pin), либо работа через отладчик (PaiMei, основанный на IDA). Но сейчас речь пойдет о более интересных подходах.

        Зачем отслеживать?


        Задачи, которые решают с помощью трассировки можно условно разделить на три группы в зависимости от того, что именно отслеживается: выполнение программы (поток управления), поток данных или взаимодействие с ОС. Давай поговорим о каждом подробнее...
        Читать дальше →
        • +20
        • 13.1k
        • 5
      • Apple не следит, а помогает пользователям, с помощью скрытых сервисов на мобильных устройствах



        Недавно Джонатан Здзиарски (Jonathan Zdziarski), на конференции Hackers On Planet Earth в Нью-Йорке, опубликовал доклад, в котором рассказал о нескольких скрытых, не документированных фоновых процессах, запущенных на всех iOS-устройствах. Эксперт предположил, что эти функции нужны Apple для того, чтобы организовывать слежку за пользователям при поступлении запросов от властей.
        Джонатан Здзиарски, также известный как NerveGas, принимал активное участие в разработке джейлбрейков для первых моделей iPhone. Он автор нескольких книг по разработке приложений для iOS. Т.е. человек явно «в теме».

        Удивительно, что Apple не проигнорировали этот доклад, а описали задачи каждого процесса. Для чего, по их мнению, служат эти сервисы.
        Скандалы, интриги, расследования...
      • Некоторые методы поиска нечетких дубликатов видео

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

          image


          Ниже приведен небольшой обзор некоторых существующих методов поиска и идентификации нечетких дубликатов видео, рассмотрены их преимущества и недостатки. На основе структурного представления видео построена комбинация методов.
          Обзор совсем небольшой, за подробностями, лучше обращаться к первоисточникам.
          Подробности
        • SYN-флудим со спуффингом на 14 mpps или нагрузочная вилка V 2.0

            Что-то меня пробило на написание заметок последнее время, поэтому пока энтузиазм не спал раздаю долги.
            Год назад я пришёл на хабр со статьёй "TCP(syn-flood)-netmap-generator производительностью 1,5 mpps", после которой многие писали и даже звонили с просьбой описать создание такой же «вилки» со спуффингом на максимуме возможностей 10GB сети. Я всем обещал, а руки всё не доходили.
            Кто-то скажет, что это руководство для хакеров, но ведь свинья грязи найдёт, а те кому нужен этот инструмент в благонадёжных целях могу остаться ни с чем.

            image
            Читать дальше →
          • Устройство файла UEFI BIOS, часть полуторная: UEFI Platform Initialization

            • Tutorial
            В первой части этой статьи мы познакомились с форматом UEFI Capsule и Intel Flash Image. Осталось рассмотреть структуру и содержимое EFI Firmware Volume, но для понимания различий между модулями PEI и драйверами DXE начнем с процесса загрузки UEFI, а структуру EFI Firmware Volume отставим на вторую часть.
            Читать полуторную часть
          • Устройство файла UEFI BIOS, часть первая: UEFI Capsule и Intel Flash Image

            • Tutorial
            Выпуск материнских плат на чипсетах Intel шестой серии (P67 и его братьях) принес на массовый рынок ПК новый вариант BIOS — UEFI. В этой статье мы поговорим об устройстве файлов UEFI Capsule и Intel Flash Image.
            Структура EFI Firmware Volume и полезные в хозяйстве патчи будут описаны во второй части.
            Читать первую часть
          • Немного про UEFI и Secure Boot

              UEFI


              UEFI (Unified Extensible Firmware Interface) — замена устаревшему BIOS. Эта спецификация была придумана Intel для Itanium, тогда она еще называлась EFI (Extensible Firmware Interface), а потом была портирована на x86, x64 и ARM. Она разительно отличается от BIOS как самой процедурой загрузки, так и способами взаимодействия с ОС. Если вы купили компьютер в 2010 году и позже, то, вероятнее всего, у вас UEFI.
              Читать дальше →
            • PassportVision — простой способ распознавать документы

                Наверняка вам доводилось попадать в такую ситуацию: заходите в какое-нибудь учреждение (почта, банк, больница, кассы и т. п.), где для достижения ваших целей необходимо предъявить паспорт. И вроде очередь-то небольшая, всего 5 человек, но ждать придётся очень долго, ведь тётя Маша тратит по несколько минут на внесение данных с каждого паспорта в компьютер. Вам остаётся только наблюдать, как её указательный палец не спеша планирует над клавиатурой в поисках очередной клавиши.

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



                Сегодня в выпуске:
                • Популярные заблуждения о паспортах
                • Немного об используемых технологиях
                • Наш подход к интерфейсу
                • Как лучше всего отдать данные пользователю
                Читать дальше →
              • Анализ приложения защищенного виртуальной машиной

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

                  К сожалению, статья будет достаточно тяжелая для обычного прикладного программиста, не интересующегося тематикой защиты ПО, но тут уж ничего не поделать.

                  Для более или менее адекватного восприятия статьи потребуется минимальные знания ассемблера (его будет много) а так-же навыков работы с отладчиком.

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

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

                  В качестве реципиента, по совету одного достаточно компетентного товарища, я выбрал немножко старый (но не потерявший актуальности, в силу качества исполнения) keygenme от небезызвестного Ms-Rem.

                  Вот первоначальная ссылка, где он появился: http://exelab.ru/f/index.php?action=vthread&forum=1&topic=4732
                  А потом он попал вот сюда: http://www.crackmes.de/users/ms_rem/keygenme_by_ms_rem/
                  Где данному keygenme был выставлена сложность 8 из 10 (*VERY VERY* hard).
                  Хотя, если честно, это слегка завышенная оценка — я бы поставил в районе 5-6 баллов.

                  Пожалуй, начнем.
                  Читать дальше →
                • Избранное: ссылки по IT безопасности





                    Давно хотел написать этот пост с подборкой полезных ссылок, так как очень часто спрашивают подобное (думаю, у многих, кто в этой (да и в других) сфере). Ссылки разбиты на категории.




                    Читать дальше →
                  • Анализ подозрительных PDF файлов

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

                      Практически все инструменты представленные в данной статье содержаться в дистрибутиве Remnux, созданном специально в целях reverse engineering malware. Вы можете сами загрузить себе образ виртуальной машины для VirtualBox или Vmware.
                      Читать дальше →
                      • +32
                      • 16.8k
                      • 4
                    • un1c0rn, «Google для уязвимостей»

                        На хабре уже появлялись статьи о незащищенных инстансах mongodb и непропатченных openssl с heartbleed.
                        Проект un1c0rn решил не мелочиться и сделать целый «поисковик уязвимостей», в статье на Motherboard.vice.com un1c0rn даже назвали «Google-ом для уязвимостей».



                        UPDATE 17.06.14 — un1c0rn стал платным! Теперь для доступа к результатым эксплойтов они просят перевести на их кошелек сумму не менее 0,01 BTC
                        Warning:
                        Only part of the leaked data is available.
                        Send your contribution to… (> 0.01 BTC) to unlock the full leak.


                        Читать дальше →
                      • Application Porno или как найти секреты в мобильных приложениях и вынести всё

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

                          То что результат их работы касался только анализа декомпилированного кода под Android, cподвиг меня написать про исследование, которое я проводил еще год назад, причем не только для Android, но и для iOS приложений, и которое, в итоге, вылилось в целый online-инструмент, о котором я расскажу в самом конце, когда станет очевиден его смысл. Часть написанного ниже была представлена на конференции ZeroNights и на страницах журнала «Хакер». (Т.к. материал не был опубликован онлайн, редакция дала на «добро», на публикацию здесь). Итак, поехали.
                          Читать дальше →
                        • Каждый сможет взломать Tor за 3000$

                            «Вам не нужно быть АНБ, чтоб взломать Tor. Бюджетный способ деанонимизации» — так сформулировали тему своего доклада два хакера и пообещали через месяц на конференции Black Hat 2014 продемонстрировать, как, имея в наличии «горстку мощных серверов и пару гигабитных соединений», можно атаковать Tor, используя «базовые уязвимости в дизайне и реализации сети».

                            Докладчики представят дюжину кейсов: от перехвата управления ботнетом, до разоблачения сайтов с детской порнографией и торговлей наркотиками.

                            До этого считалось, что такое под силу крупным организациям, и после слива Сноудена стали известны успехи АНБ на этом поприще. Сообщение о том, что АНБ наблюдала за двумя германскими серверами Tor.

                            На конференции CCS 2013 группа исследователей из Naval Research Laboratory под руководством Aaron Johnson опубликовали статью “Users Get Routed: Traffic Correlation on Tor by Realistic Adversaries”. Они так же разработали программу Tor Path Simulator для анализа корреляции трафика и симулирования выбора пути, которая позволяет выявлять пользователей Tor с 95% точностью.



                            Alexander Volynkin ученый-исследователь в CERT Cyber Security Solutions. Ведет исследования в области сетевой безопасности, анализа поведения вредоносных программ, продвинутых техник реверс-инжиниринга, и криптоанализа. Александр автор нескольких научных публикаций, книги на тему анализа поведения вредоносных программ и автор патента в области «full disk encryption». Волынкин обладатель множества наград за свои исследования и публикации.


                            Michael McCord аналитик уязвимостей ПО в команде Forensic Operations and Investigations в университете Карнеги-Меллон. Его исследования включают Android security, анализ вредоносных программ, ботнет-технологии и сетевую анонимность.

                            «Хотите разузнать IP-адрес пользователя Tor? Не проблема.
                            Пытаетесь вычислить расположение Скрытого Сервиса (Hidden Service)? Готово.
                            Мы знаем, потому мы это уже делали в реальных условиях...»

                            Читать дальше →
                          • Десятка лучших консольных команд

                              imageВ данном посте я расскажу о наиболее интересных командах, которые могут быть очень полезны при работе в консоли. Однозначных критериев определения какая команда лучше другой — нет, каждый сам для своих условий выбирает лучшее. Я решил построить список команд на основе наиболее рейтинговых приемов работы с консолью от commandlinefu.com, кладовой консольных команд. Результат выполнения одной из таких команд под Linux приведен на картинке. Если заинтересовало, прошу под кат.
                              Узнать больше