Обновить
129.42

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

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

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

СУБД ЛИНТЕР Бастион успешно протестирована на ReactOS

Время на прочтение2 мин
Охват и читатели21K
Добрый пятничный вечер, уважаемые читатели Хабра!

Коллектив разработчиков ReactOS представляет вашему вниманию свой первый совместный пресс-релиз с компанией ЗАО НПП «РЕЛЭКС».

Специалистами ЗАО НПП «РЕЛЭКС» успешно завершены работы по тестированию СУБД ЛИНТЕР Бастион на операционной системе ReactOS.

Замеры показали, что Линтер под управлением ReactOS дает прирост производительности на 10-15% по сравнению с Windows XP на идентичной аппаратной конфигурации. В ходе работ были выявлены недостатки в ОС, которые были оперативно устранены сообществом разработчиков при непосредственном и активном участии российского фонда ReactOS.
Читать дальше →

Steam Protocol v2

Время на прочтение17 мин
Охват и читатели23K
Steam Logo

Завершающая статья цикла, самая интересная и самая объемная:


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


В очередной раз напомню, что рассматриваемые протоколы устарели и в настоящее время не используются (за исключением GDS и Config — для совместимости).

Все алгоритмы представлены в моем репозитории.
Читать дальше →

Что там у ReactOS?

Время на прочтение2 мин
Охват и читатели33K
Спешим поделиться нашим прогрессом в разработке, в режиме ассорти.



Поддержка дополнительных файловых систем понравится человекам


Появилась поддержка разделов жестких дисков с FS Ext2, Ext3 и Ext4.
Просмотр раздела HDD-диска с файловой системой ext3 в reactos. Спасибо Peter Hater и Thomas Faber за их работу!


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

Steam Files. Часть 2 — BLOB, CDR, VDF, PAK, VPK

Время на прочтение9 мин
Охват и читатели17K
Steam Logo

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

В данной статье я затрону оставшиеся форматы файлов:
  • BLOB — устаревший формат данных, служащий контейнером для двоичных данных. Содержал в себе базовые параметры (IP-адреса серверов, CRD-запись и еще много чего);
  • CDR (Content Description Record) — бинарный файл, содержащий данные о приложениях и их файлах кеша. На данный момент не используется;
  • VDF — бинарный/текстовый файл, содержащий множество данных и имеющий структуру, зависящую от конкретного применения. Разработан как замена BLOB и CDR;
  • PAK — ранее использовался в Half-Life 1, великое наследие Quake 1, уже не используется;
  • VPK — новый формат игровых архивов внутри самих игр, активно используется на данный момент. Подробное описание файла имеется на официальном ресурсе. В статье описана только первая версия формата.

Статья представлена только для ознакомления, поскольку актуальной информации здесь относительно мало, а примеров алгоритмов почти нет — всё можно просмотреть в упомянутом ранее репозитории.
Читать дальше →

Добавление нового семейства процессоров в IDA pro

Время на прочтение8 мин
Охват и читатели16K
Пришлось не так давно потрошить прошивку от M16C (Mitsubishi/Renesas). С удивлением обнаружил, что оказывается IDA v6.1.xxx не «держит» данное семейство контроллеров, увы. Впрочем, SDK есть в наличии, значит, не страшно – будем исправлять ситуацию. Как показала практика, ничего сверх сложного в написании своего модуля нет (не rocket science, чай).
Читать дальше →

Эксплоит на миллион

Время на прочтение3 мин
Охват и читатели29K
Вчера в сети появилась информация, что независимые торговцы эксплоитами в программном обеспечении назначили награду в один миллион долларов США тому, кто предоставит информацию о рабочей уязвимости «нулевого дня» в iOS 9.

image

Награду для специалистов в области безопасности и хакеров, которые смогут найти 0day-уязвимость, объявил стартап Zerodium в этот понедельник.

Zerodium заплатит один миллион долларов США ($ 1,000,000.00) каждому специалисту или команде, которые предоставят нам эксклюзивную информацию об уязвимости на основе браузера или непривязанного джейлбрейка в последней операционной системе компании Apple — iOS 9.

Предложение действует до 31 октября 2015 года, 18:00 по времени восточного побережья. Программу могут закрыть досрочно, если сумма выплат превысит выделенный на нее бюджет в $ 3,000,000.00 США.
Читать дальше →

Создание нативного iOS плагина для Unity3d. Недокументированные возможности

Время на прочтение6 мин
Охват и читатели8.7K
В Unity3d существует возможность подключения нативных плагинов к приложению. На официальном сайте Unity3d есть документация по взаимодействию с нативным кодом на iOS. Данная документация ограничивается описанием того, как вызвать ту или иную функцию из плагина, который вы собрали сами и как сделать обратный вызов. В документации описано каким правилам должна соответствовать описываемая функция и немного о том, как передать в нее параметры. В конце статьи с документацией есть ссылка, по которой можно скачать пример под названием Bonjour.

К сожалению в документации не описано, что делать в случае если вашему плагину необходимо перехватить событие о том, что пользователь подписался на Push Notification или приложение перешло в бэкграунд (AppDidEnterBackgound), тогда как доступ к этим событием бывает необходим для некоторых плагинов, которые вы возможно захотите написать.
Читать дальше →

Практическое руководство по взлому (и защите) игр на Unity

Время на прочтение7 мин
Охват и читатели228K


Когда речь идёт о программном обеспечении, термин «взлом» зачастую ассоциируют с пиратством и нарушением авторских прав. Данная статья не об этом; напротив, я решительно не одобряю любые действия, которые прямо или косвенно могут навредить другим разработчикам. Тем не менее, эта статья всё же является практическим руководством по взлому. Используя инструменты и методы о которых далее пойдёт речь, вы сможете проверить защиту собственной Unity игры и узнаете, как обезопасить её от взлома и кражи ресурсов.
Читать дальше →

Реверс-инжиниринг полёта Бэтмена

Время на прочтение8 мин
Охват и читатели95K


Этим летом вышла очередная игра из серии Batman Arkham, в ПК версии которой оказалось столько багов, что было принято беспрецедентное решение снять её с продаж. Я решил посмотреть, что же там такого ужасного.

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

На скриншоте изображён этот момент: вместо того, чтобы лететь вперёд, Бэтмен повернулся вниз головой, демонстрируя полнейшее пренебрежение к происходящему. Аналогичный баг был в предыдущей игре (Arkham Origins), и он до сих пор не исправлен. Видимо тот же самый кривой код был перенесён в новую игру. Попробуем найти, какие ошибки делают программисты в играх такого уровня, и исправить их.
Читать дальше →

ReactOS-Хакфест или еще один вариант про… кодить последний месяц лета

Время на прочтение4 мин
Охват и читатели10K
Представляем вниманию аудитории Хабра отчет о том, чем же занимался коллектив проекта ReactOS в последний месяц лета 2015 года. Главным событием этого месяца естественно стал Хакфест.

День минус первый (5 августа)


Алексей приехал задолго до начала Хакфеста и, чтобы не терять времени зря, Колин показал город Ахен во всей красе в жаркий летний день: кафедральный собор, минеральные источники, рестораны, кафе и, конечно, здания Рейнско-Вестфальского Технического Университета (РВТУ) разбросанные по всему городу.
Наиболее важным из них для нас оказалось вовсе не здание университетской клиники (в которой все инженерные коммуникации сделаны снаружи здания), а временное здание для проведения семинаров, в котором было выделено большое помещение для проведения нашего Хакфеста. Внутри это здание оказалось очень чистым и оснащённым современным оборудованием. Но оно на самом деле временное: его снесут как только будет достроено постоянное здание. Так что, использовать хакикостыли и подпорки не чуждо и немцам :)

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

Как мы проводили конкурс hardware hack на Chaos Constructions 2015

Время на прочтение7 мин
Охват и читатели6.8K
Всем привет!

На этих выходных в Санкт-Петербурге прошёл очередной фестиваль Chaos Constructions, на котором собрались фанаты, программисты и разработчики, чтобы посоревноваться в мастерстве создания demo.

О том, что такое demo, можно почитать на сайте организаторов. А если вкратце, то участникам даётся задача сделать что-то впечатляющее на spectrum'е или аналогичном ретро-железе, и при этом ставятся ограничения на размер программ и длительность демки. Например, меня очень впечатлила вот эта на Spectrum'е, которая уместилась всего в 256 байт! Да, демка выводится на большой экран с отличным звуком, поэтому зрелище впечатляет!

Наша компания выступила спонсором фестиваля, а мы с коллегами организовали и провели конкурс hardware hack, целью которого стало определить архитекутуру процессора, имея минимум знаний о ней и скромный набор инструментов.



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

Анализ защиты Sony PlayStation 4

Время на прочтение25 мин
Охват и читатели105K
image

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

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

Если вы плохо знакомы с применением эксплойтов, вам cледует сначала прочитать мою прошлую статью про взлом игр DS с помощью уязвимости целостности стека (stack smash) в файлах сохранений.

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

Атака на архиваторы. Скрываемся в одном архиве от трех программ

Время на прочтение4 мин
Охват и читатели40K
Статья показывает, как можно обхитрить внимательного пользователя, знакомого с азами социальной инженерии, следящего даже за расширениями файлов и ни в коей мере не призывает к использованию данной информации в незаконных целях. Цель – запустить исполняемый файл, выдав его за текстовый документ в zip-архиве, а если запустить вряд ли получится, то не дать распаковать или скрыть файл.
Читать дальше →

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

Расковыриваем сжатие ресурсов в Might and Magic III

Время на прочтение7 мин
Охват и читатели27K
Не очень хорошо помню, как я оказался в дебаггере DOSBox, и почему я ковырялся в 16-битном ассемблере, восстанавливая функцию распаковки ресурсных файлов MM3.CC – но это было здорово. Игра у меня появилась на какой-то из последних распродаж humble bundle, а потом в сети я наткнулся на страницу Джеффа Людвига, где описывались проблемы с модификацией игры, связанные с компрессией в MM3.CC. В частности, там было написано следующее:
Оказалось, что этот алгоритм довольно сложно взломать, и пока ещё никто не научился распаковывать эти данные.

Вызов был принят. В его статье расписано, как он пытался бороться с алгоритмом. Я же распишу, как это делал я сам, и в конце дам ссылку на утилиту с открытым кодом, которая умеет не только распаковывать, но и запаковывать файл MM3.CC file.

DOS Packer


Посмотрев на MM3.EXE, я обнаружил, что это сжатый исполняемый файл DOS, с неким несжатым оверлеем, в начале которого стоит FBOV. Я ничего не знал про ДОСовские компрессоры, но я подсмотрел у Джеффа Людвига, что он использует вещь под названием “Universal Program Cracker” v1.11. Я нашёл версию 1.10 (выпущенную 25 июня 1997 года) и распаковал ехе. И мне удалось даже правильно обработать данные оверлея. И всё равно мне хотелось узнать название паковщика. Мне подсказали, что нужно использовать программу Detect It Easy, и действительно – она выдала:

EXECUTRIX-COMPRESSOR(-)[by Knowledge Dynamics Corp]
Borland TLINK(2.0)[-]


Для любителей истории могу рекомендовать старые ветки обсуждений, касающихся этого софта – от 1991 и 1995 годов:

https://groups.google.com/forum/#!topic/comp.os.msdos.programmer/QsjHLY6Kb4s
https://groups.google.com/forum/#!topic/comp.compression/IAj2-VHbtl4
Читать дальше →

ReactOS Hackfest начался

Время на прочтение2 мин
Охват и читатели13K
И так, дорогие друзья, обещанный три недели назад ReactOS Hackfest начался! Мероприятие проходит с 7 по 12 августа 2015 года в городе А́хен (Германия). Если вы волей судьбы оказались поблизости, то обязательно заглядывайте в гости! Всю информацию, как попасть на мероприятие можно получить на Всю информацию о событии можно получить на специальной вики-страничке.



Ну а если географически вы не так близко, то добро пожаловать под кат этого поста. И еще, на сегодня запланировано 2 прямые трансляции, ссылки будут ниже.
Читать дальше →

О сколько нам открытий чудных готовит Office Microsoft

Время на прочтение5 мин
Охват и читатели116K


По сообщениям в комментариях к статье про блокнот, во всех версиях Microsoft Excel, начиная по крайней мере с '97 и до самых новых, в имени листа не всегда можно ввести большую букву Ж. Данная проблема обсуждается в сети уже давно, например на этом форуме забавно наблюдать, как некоторые утверждают, что у них проблемы нет, а у других есть, но не всегда, и никто не понимает, почему так. На первый взгляд можно подумать, что это просто недоработка программистов: они хотели не дать пользователю ввести символ ':', и просто не подумали о том, что Ж находится на той же кнопке.

На деле оказалось всё гораздо хуже. Описать нормальными словами то, что происходит в excel, когда вы просто нажимаете кнопку 'Ж', практически невозможно. Поэтому я попытаюсь обрисовать в целом процесс исследования, сократив его где возможно, и не слишком перегружая статью ассемблерным кодом. В итоге мы узнаем, почему получается так, что не любые символы можно ввести, и как это можно исправить.
Читать дальше →

Многострадальный notepad: ошибка, которую не исправляют уже 13 лет

Время на прочтение6 мин
Охват и читатели146K


В стандартном блокноте для всех версий Windows, начиная примерно с 2001 года, имеется ошибка, про которую практически все знают, но никто не собирается её исправлять. И это понятно, ведь это не критическая уязвимость, ничьей безопасности она не угрожает. Да и пользуется ли кто блокнотом вообще?

Тем не менее, сам факт довольно странный, поэтому мы попробуем найти эту ошибку в коде 64-битного и 32-битного notepad.exe от windows 7, исправим её, и выясним наконец, почему же она возникла. Заключается ошибка в следующем:

Если в блокноте включена опция «перенос по словам» (word wrap), то после сохранения файла начинаются всевозможные глюки: строки начинают разъезжаться, курсор улетает, текст вводится не туда, куда вы ожидаете, и так далее.
Читать дальше →

Как же работает этот загадочный HTC Dot View?

Время на прочтение10 мин
Охват и читатели53K
В мире HTC существует такая штука, как Dot View. HTC Dot View — это весьма оригинальный чехол, который позволяет пользователям передовых моделей от HTC(линейки One) использовать свой девайс весьма нестандартным образом. Данный аксессуар был призван принести еще большую славу компании, и, кажется, со своей задачей он успешно справляется: многие люди делают свой выбор в пользу HTC One * и благодаря чехлу Dot View.

Подобные аксессуары привлекают не только пользователей делать их многочисленные обзоры, но и мобильных разработчиков создавать нестандартные приложения, которые задействуют эти прикольные фичи. Стандартный набор возможностей Dot View от производителя(HTC) довольно богат: удобный плеер с промоткой треков, вывод всевозможных уведомлений «на точки» чехла и даже простые игры, напоминающие своими «большими пикселями» ушедшую «восьмибитную эпоху». Но проблема вот только в том, что официальный разработчик не предоставил не только API для использования, но даже ни малейшей инструкции на тему того, как же работает его детище Dot View. Это привело к тому, что энтузиастам пришлось разбираться самостоятельно в механизмах сопряжения чехла с девайсом, а исследователям — исследовать.

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



Ну, и как же?

Исследование Oracle Form при помощи Java Development API(JDAPI)

Время на прочтение2 мин
Охват и читатели8.4K
Для поиска зависимости форма от обьектов базы данных мне нужно было разобрать файл Oracle Form(в дальнейшем — fmb файл).
Fmb — это псевдотекстовый файл, если очень нужно, PL/SQL код можно увидеть и искать как используются обьекты БД там, но все равно трудно понять тип триггера или программы и к какому элементу формы он относится. Можно использовать конвертацию в FMT, но не думаю, что разбор fmt файла легче чем использование API, который дает Оракл.
Тем более, что вся остальная часть моей программы была написана в Java Swing, логичней было использовать JDAPI, который позволяет разобрать форм по полочкам и видеть весь код PL/SQL и properties, которые меня интересовали.
Читать дальше →

Поддержка службы печати в ReactOS — совсем скоро

Время на прочтение1 мин
Охват и читатели16K
image
ReactOS научится работать с принтерами и печатать документы.
Читать дальше →

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