Рубрика «реверс-инжиниринг» - 60

Ретроспективная презентация очередного релиза ReactOS - 1
7 сентября 2016 года около полуночи по московскому времени команда ReactOS продемонстрирует свой «старый» новый релиз операционной системы. Ожидается, что со сцены покажут разные новые прорывные или не очень фишки. Часть информации уже утекла в СМИ, но вы держитесь там, готовьте поп-корн и тухлые помидоры.

16 августа 2016 г. после трёх месяцев разработки состоялся релиз операционной системы ReactOS 0.4.2, нацеленной на обеспечение совместимости с программами и драйверами Microsoft Windows. В списке изменений свежей версии значится более 150 исправленных ошибок.

Ретроспективная презентация очередного релиза ReactOS - 2Читать полностью »

Реверс-инжиниринг визуальных новелл (часть 2) - 1Продолжаем нашу серию статей про то, как влезть во внутренности игровых движков и вытаскивать из них всевозможное содержимое. Для тех, кто к нам только что присоединился, коротко напомню, что мы изучали такой забавный жанр, как визуальные новеллы.

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

Перед тем, как погружаться в пучины бинарных дампов, давайте прикинем, как работают большинство движков визуальных новелл. Визуальная новелла сама по себе состоит из текста (реплик героев, диалогов, промежуточного повествования), графики и звуков. Для того, чтобы ее воспроизвести пользователю, явно нужно свести все это воедино с помощью какого-то управляющего воздействия. В теории можно было бы зашить это все прямо в exe-файл, но в 99% случаев (ладно, вру, в 100% виденных лично мной) так все-таки не делают, а хранят такие инструкции отдельно в виде отдельной программы-скрипта. Как правило, скрипт пишется на особенном языке программирования (специфичном для движка), который выглядит как-то так:

Читать полностью »

ПЗУ компьютера «Аполлон-3» нашли в мусоре - 1
Логические модули компьютера КА Аполлон. Кадр из видео: Франсуа Раутенбах

25 августа 1966 года командный и служебный отсеки корабля «Аполлон-3» (Apollo Command Module) были установлен на ракету-носитель «Сатурн-1Б» и отправлены в беспилотную испытательную миссию AS-202 на высоту 1136 км. Этот запуск стал третьим испытательным пуском «Сатурна-1Б» после AS-201 и AS-203. Но он стал первым полётом корабля с установленными системами управления и ориентации. Первый раз бортовой компьютер AGC (Apollo Guidance Computer) поднялся в небо. Эти испытания должны были доказать, что корабль «Аполлон» способен доставить людей на Луну и вернуть обратно.
Читать полностью »

В продолжение моего предыдущего разбора «Reverse engineering тестового crackme от Лаборатории Касперского». Нашел на просторах интернета ещё один вариант crackme от Лаборатории Касперского. Автор применил брутфорс для его решения. Этот грубый «крякерский» метод нам тут не подойдёт. Нас интересует разбор алгоритма проверки лицензионного ключа. Можно, конечно, сделать огромную выборку правильных ключей и попробовать найти закономерность, но мне кажется, что лучше немного пореверсить. И так начнем. Начало у crackme такое же, как и в предыдущей статье: ключ должен содержать 19 символов, каждый 5-ый символ должен быть "-" и все символы должны быть цифрами. Перейдем к интересному. Используем в качестве пробного ключа 1234-5678-9012-3456.

image

Читать полностью »

Приветствую сообщество! Давным давно, в 2013 году на Хабре был опубликован пост. В нём был предложен тестовый crackme для претендентов на позицию вирусного аналитика. Убедившись, что полного разбора тестового файла в интернете нет, я решил написать свой разбор. И так, приступим. Crackme 64-разрядный. Запустим его в IDA Pro.

image

Читать полностью »

Введение от переводчика

Перевёл эту историю, так как её посчитали интересной в моей предыдущей статье по поводу взаимоотношений Niantic и разработчиков всякого дополнительного софта.
Эта милая история не претендует на самый великий и профессиональный взлом всех времён и народов, но позволяет окунуться в уютную атмосферу open source сообщества, занятого общим делом. Возможно, кто-то вспомнит свои прошлые дни...Читать полностью »

Иногда при разработке программного обеспечения требуется встроить дополнительную функциональность в уже существующие приложения без модификации исходного текста приложений. Более того, зачастую сами приложения существуют только в скомпилированном бинарном виде без наличия исходного текста. Широко известным способом решения указанной задачи является т.н. “сплайсинг” – метод перехвата функций путем изменения кода целевой функции. Обычно при сплайсинге первые байты целевой функции перемещаются по другим адресам, а на их исходное место записывается команда безусловного перехода (jmp) на замещающую функцию. Поскольку сплайсинг требует низкоуровневых операций с памятью, то он осуществляется с использованием языка ассемблера и С/C++, что также накладывает определенные ограничения на реализацию замещающих функций – они обычно также реализованы на С/C++ (реже на ассемблере).

Метод сплайсинга для перехвата API-функций в Windows широко описан в Интернете и в различных литературных источниках. Простота указанного перехвата определяется следующими факторами:

  1. целевая функция является статической – она сразу присутствует в памяти загруженного модуля;
  2. адрес целевой функции легко определить (через таблицу экспорта модуля или функцию GetProcAddress).

Реализация замещающих функций на C/C++ при перехвате API-функций является оптимальным вариантом, поскольку Windows API реализовано, как известно, на языке C, и замещающие функции могут оперировать теми же понятиями, что и заменяемые.
Читать полностью »

Реверс-инжиниринг iPhone 6

Эдвард Сноуден и хакер Банни разработали прибор для мониторинга сигналов GSM, GPS, WiFi, Bluetooth, NFC на шине телефона - 1
Подключение к контактам шины FE1 и FE2 в iPhone 6. Точки подключения с обратной стороны печатной платы выведены проволокой на лицевую сторону для удобства подключения. Коннектор SIM-карты снят

Когда Эдвард Сноуден встречался с репортёрами в гонконгской гостинице, то просил сложить телефоны в холодильник (бытовой аналог клетки Фарадея), чтобы блокировать любые радиосигналы, которые можно использовать для отслеживания устройств или удалённой активации микрофонов и камер. В посольствах некоторых стран и других защищённых помещениях обычно просят сдать телефон на входе и/или вынуть аккумулятор.

Отключение телефона или клетка Фарадея — попытки временно деактивировать «жучок», который человек постоянно носит с собой. Такие способы не очень практичны и эффективны. Эдвард Сноуден вместе с известным аппаратным хакером Эндрю "Банни" Хуангом разработали удобную и надёжную альтернативу — похожий на чехол «прибор самоанализа» (introspection engine) для постоянного мониторинга сигналов, которые отправляют встроенные антенны телефона.
Читать полностью »

Control Flow Guard. Принцип работы и методы обхода на примере Adobe Flash Player - 1

Компания Microsoft не оставляет попыток победить в бесконечной войне с эксплоитописателями, раз за разом реализуя новые техники по защите приложений. На сей раз разработчики операционной системы Windows подошли к решению данного вопроса более фундаментально, переведя свой взгляд на корень проблемы. Работа почти каждого эксплоита так или иначе нацелена на перехват потока исполнения приложения, следовательно, не помешало бы "научить" приложения следить за этим моментом.
Концепия Control Flow Integrity (целостность потока исполнения) была описана еще в 2005 году. И вот, 10 лет спустя, разработчики из компании Microsoft представили свою неполную реализацию данного концепта — Control Flow Guard.

Что такое Control Flow Guard

Control Flow Guard (Guard CF, CFG) — относительно новый механизм защиты Windows (exploit mitigation), нацеленный на то, чтобы усложнить процесс эксплуатации бинарных уязвимостей в пользовательских приложениях и приложениях режима ядра. Работа данного механизма заключается в валидации неявных вызовов (indirect calls), предотвращающей перехват потока исполнения злоумышленником (например, посредством перезаписи таблицы виртуальных функций). В сочетании с предыдущими механизмами защиты (SafeSEH, ASLR, DEP и т.д.) являет собой дополнительную головную боль для создателей эксплоитов. Читать полностью »

Теперь игры загружаются в обход привода CD-ROM

DRM-защиту игровой приставки Sega Saturn взломали спустя 20 лет - 1

Опытные геймеры наверняка помнят Sega Saturn — 32-битную игровую приставку от компании Sega. Она начала продаваться 22 ноября 1994 года, на две недели раньше главного конкурента — первой модели Sony Playstation. Это была настоящая бомба. В первый же день фанаты выкупили 170 000 экземпляров новой «Сеги». В 1995 году приставка появилась в продаже в Европе и США, где её тоже ждал успех: на неё портировали Quake, C&C, Tomb Raider, Duke Nukem 3D и другие игры.

На момент выхода архитектура Sega Saturn была гораздо более продвинутой, чем у любой другой игровой приставки. Saturn была очень мощной системой для своего времени: два центральных RISC-процессора (Hitachi SuperH-2 7604), два видеопроцессора (собственной разработки), 32-битный звук (звуковой DSP-процессор Yamaha FH1), CD-привод двойной скорости.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js