Все потоки
Поиск
Написать публикацию
Обновить
121.21

Реверс-инжиниринг *

Расковырять и понять как работает

Сначала показывать
Порог рейтинга
Уровень сложности

Реверс-инжиниринг чипа компьютера Commodore

Время на прочтение11 мин
Количество просмотров8.4K

Предыстория и первые пробы


В своём старом посте я писал, что работал над реверс-инжинирингом чипа PLA компьютера Commodore 128. Теперь я почти завершил этот процесс, поэтому настало время поделиться своими открытиями.

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

Для меня исследование началось с покупки дешёвого микроскопа для пайки компонентов, устанавливаемых поверхностным монтажом (SMD).


Дешёвый микроскоп

Исправляем графический баг Mass Effect, возникающий на современных процессорах AMD

Время на прочтение12 мин
Количество просмотров42K
image

Введение


Mass Effect — популярная франшиза научно-популярных RPG. Первая часть сначала была выпущена BioWare в конце 2007 года эксклюзивно для Xbox 360 в рамках соглашения с Microsoft. Спустя несколько месяцев, в середине 2008 года, игра получила порт на PC, разработанный Demiurge Studios. Порт был достойным и не имел заметных недостатков, пока в 2011 году AMD не выпустила свои новые процессоры на архитектуре Bulldozer. При запуске игры на PC с современными процессорами AMD в двух локациях игры (Новерия и Илос) возникают серьёзные графические артефакты:


Да, выглядит некрасиво.

Хоть это и не делает игру неиграбельной, такие артефакты раздражают. К счастью, решение существует, например, можно отключить освещение консольными командами или модифицировать карты игры, удалив поломанные источники освещения, но, похоже, никто никогда так и не понял полностью причины этой проблемы. В некоторых источниках утверждается, что эту проблему позволяет устранить и мод FPS Counter, но мне не удалось найти информацию о нём: исходный код мода, похоже, не выложен онлайн, а документация о том, как мод исправляет ошибку, отсутствует.

Почему эта проблема так интересна? Баги, возникающие только на оборудовании отдельных производителей, встречаются довольно часто, и в играх они встречаются уже много десятилетий. Однако, по моей информации, это единственный случай, когда проблема с графикой вызвана процессором, а не графической картой. В большинстве случаев проблемы возникают у продуктов определённого производителя GPU и никак не касаются CPU, однако в данном случае всё совсем наоборот. Поэтому эта ошибка уникальна, а значит, её стоит исследовать.
Читать дальше →

Превращаем компьютер BBC Micro (1981 год) в устройство записи защищённых дисков за 40 000 долларов

Время на прочтение12 мин
Количество просмотров7.9K

Введение


Одна из самых известных историй о защите гибких дисков связана с Dungeon Master. Эта игра, выпущенная в декабре 1987 года, сочетала в себе усложнённый формат физического диска (нечёткие биты) со скрытными проверками защиты, встроенными в сам геймплей.

Рекомендую прочитать эту статью, в которой представлен замечательный обзор гибких дисков, после которого идёт очень подробный обзор защиты нечёткими битами диска Dungeon Master для Atari ST. Есть также вот эта замечательная статья, которая более подробно рассказывает об историях, связанных с защитой Dungeon Master. В ней есть цитата одного из авторов Dungeon Master:

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

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

Компьютер BBC Micro имел процессор 6502 на 2 МГц и для выполнения его простейших инструкций требовалось два такта, то есть 1 микросекунда. Есть ли надежда, что можно будет записать нечёткие биты в условиях таких ограничений? Посмотрим, как далеко нам удастся зайти. Эта работа будет называться «проектом Oiled Otter».

Выгружаем данные из метеорологической стации Oregon Scientific WMR500

Время на прочтение4 мин
Количество просмотров3.6K
Однажды мы решили, что нам на сайте нужна своя актуальная погода за окном. А значит нужна какая-то метеорологическая станция с подключением в Интернет. Недорого. Ибо брать что-то типа Davis Vantage Pro2 Plus за овер 100 тысяч рублей, да еще и держать отдельный компьютер для подключения к ней (как это сделали в mail.ru) не хотелось как с точки зрения бюджета, так и с точки зрения сложности.


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

Разжимаем древний формат сжатия анимаций

Время на прочтение3 мин
Количество просмотров5.3K
image

В один день я просматривал различные видео на YouTube, связанные с персонажами программы Vocaloid (не совсем точное описание, но дальше буду называть просто вокалоидами). Одним из таких видео было так называемое PV из игры Hatsune Miku: Project DIVA 2nd. А именно песня relations из The Idolmaster, которую исполняли вокалоиды Megurine Luka и Kagamine Rin. Оба персонажа от Crypton Future Media. Порыскав по сети я понял, что никто так и не смог сконвертировать анимации из этой игры? Но почему? Об этом под катом.

Как я восстанавливал данные в неизвестном формате с магнитной ленты

Время на прочтение8 мин
Количество просмотров40K

Предыстория


Будучи любителем ретро железа, приобрёл я как-то у продавца из Великобритании ZX Spectrum+. В комплекте с самим компьютером мне достались несколько аудиокассет с играми (в оригинальной упаковке с инструкциями), а также программами, записанными на кассеты без особых обозначений. На удивление данные с кассет 40-летней давности хорошо читались и мне удалось загрузить почти все игры и программы с них.



Однако, на некоторых кассетах я обнаружил записи, сделанные явно не компьютером ZX Spectrum. Звучали они совершенно по-другому и, в отличие от записей с упомянутого компьютера, не начинались с короткого BASIC загрузчика, который обычно присутствует в записях всех программ и игр.

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

Разбираем уязвимость в Citrix ADС, позволяющую за минуту проникнуть во внутреннюю сеть компании

Время на прочтение5 мин
Количество просмотров4.7K
В конце прошлого года эксперт Positive Technologies обнаружил уязвимость CVE-2019-19781 в ПО Citrix ADC, которая позволяет любому неавторизованному пользователю выполнять произвольные команды операционной системы.

Под угрозой оказались около 80 тысяч компаний по всему миру. Ситуация усугубляется тем, что продукт Citrix ADC устанавливается на границе между внешней и внутренней сетью организации. Таким образом, после эксплуатации уязвимости, злоумышленник получает доступ сразу во внутреннюю сеть компании и имеет возможность развивать атаки на приватный сегмент сети.

В сегодняшнем материале автор исследования подробнее разберет уязвимость, детали ее обнаружения и эксплуатации. Поехали!
Читать дальше →

Магия WebPush в Mozilla Firefox. Взгляд изнутри

Время на прочтение25 мин
Количество просмотров7.3K

Безусловно одной из самых популярных технологий доставки оповещений на устройства пользователей являются Push уведомления. Технология такова, что для её работы необходим постоянный доступ к интернету, а именно доступ к серверам, на которых регистрируются устройства пользователя для получения уведомлений. В данной статье мы рассмотрим весь спектр механизмов технологии WebPush уведомлений, спрятанных за словами WebSocket, ServiceWorker, vapid, register, broadcast, message encryption и т.д. Основной причиной побудившей меня к реверсу и изучению механизма, являлась необходимость доставки уведомлений мониторинга на рабочие места техподдержки, находящиеся в закрытом сегменте сети без доступа в интернет. И да, это возможно! Подробности под катом.

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

IDA Pro: каким не должен быть SDK

Время на прочтение5 мин
Количество просмотров14K

Приветствую,



Эта статья будет о том, как не нужно делать, когда разрабатываешь SDK для своего продукта. А примером, можно даже сказать, самым ярким, будет IDA Pro. Те, кто хоть раз что-то разрабатывал под неё и старался поддерживать, при чтении этих строк, наверняка, сейчас вздрогнули и покрылись холодным потом. Здесь я собрал опыт сопровождения проектов, начиная с IDA v6.5, и заканчивая последней на момент написания статьи версии — v7.5. В общем, погнали.

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

Пишем спецификацию под Nvidia Kepler (бинарники CUDA, версия языка sm_30) для Ghidra

Время на прочтение6 мин
Количество просмотров2.3K
Для обычных процессорных языков уже написано довольно много спецификаций для Ghidra, однако для графических ничего нет. Оно и понятно, ведь там своя специфика: предикаты, константы, через которые передаются параметры в том числе, и другие вещи, унаследованные от шейдеров. Кроме того формат, который используется для хранения кода, зачастую проприетарный, и его нужно самостоятельно ревёрсить.

В этой статье на двух примерах разберёмся, что к чему.
Читать дальше →

IDA Pro: работа с библиотечным кодом (не WinAPI)

Время на прочтение7 мин
Количество просмотров8.8K

Всем привет,



При работе в IDA мне, да и, наверняка, вам тоже, часто приходится иметь дело с приложениями, которые имеют достаточно большой объём кода, не имеют символьной информации и, к тому же, содержат много библиотечного кода. Зачастую такой код нужно уметь отличать от написанного пользователем. И, если на вход библиотечного кода подаются только int, void * да const char *, можно отделаться одними лишь сигнатурами (созданные с помощью FLAIR-утилит sig-файлы). Но, если нужны структуры, аргументы, их количество, тут без дополнительной магии не обойдёшься… В качестве примера я буду работать с игрой для Sony Playstation 1, написанной с использованием PSYQ v4.7.

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

RATKing: новая кампания с троянами удаленного доступа

Время на прочтение14 мин
Количество просмотров4K
В конце мая мы обнаружили кампанию распространения ВПО класса Remote Access Trojan (RAT) — программ, которые позволяют злоумышленникам удаленно управлять зараженной системой.

Рассматриваемая нами группировка отличилась тем, что она не выбрала для заражения какое-то определенное семейство RAT. В атаках в рамках кампании были замечены сразу несколько троянов (все в широком доступе). Этой чертой группировка напомнила нам о крысином короле — мифическом животном, которое состоит из грызунов с переплетенными хвостами.


Оригинал взят из монографии К. Н. Россикова «Мыши и мышевидные грызуны, наиболее важные в хозяйственном отношении» (1908 г.)

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

Реверс-инжиниринг микропроцессора Intel 8086

Время на прочтение6 мин
Количество просмотров26K
В июне 1978 года был представлен один из самых влиятельных чипов в полупроводниковой индустрии – Intel 8086. Он положил начало архитектуре х86, которая до сих пор доминирует сегодня в настольных и серверных вычислениях. Давайте заглянем вглубь чипа и разберём внутреннее строение и архитектурные особенности этого микропроцессора.

image

На фото ниже изображён кристалл процессора Intel 8086. На фото виден металлический слой чипа, скрывающий кремний под ним. По краям матрицы расположены тонкие провода, обеспечивающие соединение между площадками на чипе и внешними контактами. Силовые и заземляющие площадки имеют по два соединительных провода для поддержания более высокого тока. Микросхема была очень сложной для своего времени и содержала 29 тысяч транзисторов. Обратите внимание на маркировку кристалла в самом низу – на ней указан логотип Intel, модель процессора и год изготовления микросхемы.

image
Кристалл процессора Intel 8086

image

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

image

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

Ближайшие события

«Цари» и «боги» доступов: как русскоязычный хакер Fxmsp заработал 100 млн. руб на продажах в даркнете

Время на прочтение5 мин
Количество просмотров10K


Сегодня Group-IB представила аналитический отчет «Fxmsp: невидимый бог сети», раскрывающий личность одного из самых активных продавцов доступов в корпоративные сети компаний, предоставлявшего свои услуги в даркнете около трех лет. За это время он скомпрометировал порядка 135 компаний в 44 странах мира. По минимальным оценкам прибыль Fxmsp за период его активности могла составлять $1,5 млн (около 100 млн. руб.). Несмотря на то, что Fxmsp упоминался в публичных источниках, Group-IB впервые подробно описали ход расследования и факты, не обнародованные ранее. Материалы по личности Fxmsp переданы в международные правоохранительные органы.
Читать дальше →

Чужой код — потемки: чем опасно скачивание «безобидного» софта с GitHub

Время на прочтение5 мин
Количество просмотров15K


Наверное, каждый из тех, кто читает эту статью, хорошо знаком с GitHub — крупнейшим веб-сервисом для хостинга IT-проектов и их совместной разработки. Здесь можно найти почти любой open source-проект. Для компиляции проекта может быть нужен какой-то специфический софт, которого прямо сейчас у пользователя нет, да и сам процесс сборки из исходников требует определенных знаний и опыта. Понимая это, разработчики, помимо исходного кода, очень часто размещают на гите готовые бинарные файлы. Илья Померанцев, специалист по анализу вредоносного кода CERT Group-IB, на примере реального кейса показывает, как использованием непроверенного чужого кода может привести к потере криптовалюты.
Читать дальше →

Изучаем кибергруппировку Cobalt: какие новые инструменты и атаки используют хакеры

Время на прочтение4 мин
Количество просмотров3.6K


Специалисты PT Expert Security Center отслеживают активность группы Cobalt с 2016 года. На сегодняшний день группа атакует финансовые организации по всему миру. Ущерб от этих атак еще год назад превышал 1 млрд рублей. За последние четыре года мы опубликовали несколько отчетов об атаках, связанных с данной группой.

В течение пошлого года группа Cobalt не только модифицировала свои основные инструменты CobInt и COM-DLL-дроппер в связке с JavaScript-бэкдором more_eggs, но и применяла новые способы доставки и новые техники для обхода средств защиты на начальном этапе атаки. Обновление тактик и инструментов может быть обусловлено тем, что группа уже долгое время находится под прицелом у исследователей со всего мира, и ей необходимо быть на шаг впереди, чтобы обходить средства защиты.

В среднем в 2019 году группа проводила по три атаки в месяц. В нашей новой статье – разбор новых тактик и инструментов кибергруппировки. Полная версия исследования доступна по ссылке.
Читать дальше →

Пасхалка в ionCube — попытка разработчиков замести мусор под ковер?

Время на прочтение9 мин
Количество просмотров15K

Веб-разработчик знает, что скрипты, созданные в коммерческих целях, могут пойти гулять по сети с затёртыми копирайтами; не исключено, что скрипт начнут перепродавать от чужого имени. Чтобы скрыть исходный код скрипта и препятствовать его изменению, применяются обфускаторы, минификаторы и т.д. Один из самых давних и известных инструментов для шифрования скриптов на PHP — это ionCube. Появившийся в 2002, он продолжает следить за развитием PHP и заявляет о поддержке последних версий платформы. Как я покажу в этой статье, с поддержкой PHP 7 у ionCube далеко не всё в порядке…
Читать дальше →

Принимаем и анализируем радиосигнал платежного терминала с помощью SDR

Время на прочтение4 мин
Количество просмотров29K
Привет, Хабр.

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


Фото (с) Verifone

Для тех кому интересно как это работает, немного подробностей под катом.
Читать дальше →

Исследователи восстановили утерянную игру для NES с 30-летних дискет

Время на прочтение10 мин
Количество просмотров9.7K
image

Привет, я основатель Video Game History Foundation Фрэнк Сифалди. Сегодня мы с Ричем Уайтхаусом расскажем вам историю о том, как восстановили и собрали заново Days of Thunder — невыпущенную, никем ранее не виденную игру, соавтором которой был Крис Оберт из Mindscape.

Ушедший от нас в 2012 году программист и дизайнер Крис Оберт (Chris Oberth) сделал долгую и разнообразную карьеру в индустрии видеоигр. Думаю, для большинства из нас главной игрой Криса Оберта была Anteater — аркадный проект, который он придумал и разработал во время работы в Stern (или, возможно, вы знаете клон этой игры под названием Ardy the Aardvark, который сам Крис написал для домашних компьютеров, или ещё один клон, Oil’s Well, созданный другими людьми). Для остальных такой игрой может быть Winter Games для Commodore 64 или, возможно, его последние проекты для аркадных автоматов наподобие Time Killers или World Class Bowling, которые он разрабатывал в Incredible Technologies; или же такими знаковыми играми для вас могли стать несколько проектов, которые он разработал на своём Apple II в конце 70-х и начале 80-х (как он сам любил хвастаться, его Apple II имел серийный номер 201).

В начале 2020 года с Video Game History Foundation связался друг семьи Оберта, попросив помочь разобраться с оставшимися после него материалами. В подвале его дома, где он часто работал, хранились годами нетронутые кучи старых компьютеров, резервных копий на CD-R, гибких дисков, записей, кассет, EPROM и данных на ленточных накопителях, копившиеся со времён его работы с Apple II в конце 70-х. Его семья согласилась временно передать нам эти архивы для разбора.

Опубликован исходный код Command & Conquer: смотрим, что внутри

Время на прочтение19 мин
Количество просмотров37K

Компания Electronic Arts открыла исходный код первой Command & Conquer, а также Command & Conqueror: Red Alert. Скачать его можно с GitHub.

Всё содержимое имеет лицензию GPL v3; кроме того, в исходном коде сохранены все комментарии. Отсутствует только changelog использовавшейся при разработке системы контроля версий. Похоже, всё просто недавно выложили на Git.

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

Изучать мы будем только исходный код «Command & Conquer: Red Alert», потому что он похож на форк первой игры. В репозитории он находится в папке REDALERT.

Статистика


  1. 290 файлов заголовков C++
  2. 296 файлов реализации на C++
  3. 14 файлов ассемблера, содержащих инструкции ассемблера x86
  4. 222090 строк кода на C++

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

Почти все файлы имеют имена в верхнем регистре.

Кроме того, есть файл «RedAlert.vcxproj», поэтому можно предположить, что проект можно собрать в более новых версиях Visual Studio, но этого я не проверял.
Читать дальше →

Вклад авторов