Pull to refresh

Анонсирована новая редакция IDA: Home

Reading time1 min
Views7.6K

Появился официальный анонс новой редакции IDA Home:



IDA Home

Реверс-инжиниринг игры Strike Commander

Reading time10 min
Views9.8K
В начале 90-х на переднем крае прогресса PC-гейминга находилась одна компания: Origin Systems. Её слоганом был «Мы создаём миры» и, чёрт возьми, они ему соответствовали: серии Ultima, Crusader и Wing Commander потрясли воображение игроков.

На создание одной из игр ушло четыре года и больше миллиона человеко-часов: Strike Commander. Знаменитый лётный симулятор имел собственный 3D-движок под названием RealSpace, в котором впервые появились технологии, сегодня воспринимаемые как должное: наложение текстур, затенение по Гуро, изменение уровня детализации и дизеринг цветов.

Мой старой мечтой было поиграть в неё в шлеме виртуальной реальности. Благодаря Oculus Rift эта фантазия стала ещё на один шаг ближе к реальности.

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

На момент публикации этой статьи мой проект ещё не закончен, но я хочу поделиться техниками, позволившими мне сделать из этого:



вот это:



… и, возможно, вдохновить кого-нибудь присоединиться к моему приключению.

«Хакер»: Используем отладчик для анализа 64-разрядных программ в Windows

Level of difficultyMedium
Reading time12 min
Views9.8K

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

Читать далее

Реверс инжиниринг для самых маленьких на практике

Reading time11 min
Views50K

Скомпилированное приложение является «чёрным ящиком». Чтобы туда заглянуть, восстановить алгоритм работы применяется реверс‑инжиниринг. Это непростой навык с высоким порогом входа. В статье мы попробуем взять дизассемблер, несложную задачку и пойдём в бой. Материал будет полезен тем, кому хочется с чего-то начать и погрузиться в тему реверса.

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

Читать далее

Встраиваемые функции в Go

Reading time4 min
Views9.3K

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

Flare-On 2019 write-up

Reading time37 min
Views5.3K


-0x01 — Intro


Данная статья посвящена разбору всех заданий Flare-On 2019 — ежегодного соревнования по реверс-инжинирингу от FireEye. В данных соревнованиях я принимаю участие уже второй раз. В предыдущем году мне удалось попасть на 11-ое место по времени сдачи, решив все задачи примерно за 13 суток. В этом году набор тасков был проще, и я уложился в 54 часа, заняв при этом 3 место по времени сдачи.


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


Если вас заинтересовало, то добро пожаловать под кат!

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

iDa — навигационная программа для Android

Reading time2 min
Views1.7K
На днях «Вобис Компьютер» и Intrinsyc сообщили о выпуске навигационной системы iДа на базе движка программы Destinator и навигационных карт Navteq. Программа предоставляется всем желающим в 30 дневном полнофункциональном демо-режиме. Почему бы и не попробовать, имея на руках Samsung i5700?!
Мини-обзор и скриншоты программы внутри.
Читать дальше →

How to Start Reverse Engineering in 2021

Reading time4 min
Views59K

Reverse engineering might seem so complex, that not everyone has the bravery required to tackle it. But is it really that hard? Today we are gonna dive into the process of learning how to reverse engineer.

First of all, try to answer yourself, what are you hoping to achieve with reverse engineering? Because reverse engineering is a tool. And you should choose the right tool for your task. So when reverse engineering might be useful?

Read more

Что нам стоит patch построить, нарисуем будем жить

Reading time13 min
Views2.5K

Сказ о суровых российских инженерах.


1. С чего все началось…


Ангелы и демоны кружили надо мной
Рассекали тернии и Млечные Пути

Origa — Inner Universe

В одном, не очень отечественном САПР, есть возможность конвертировать чертежи сразу в PDF. Но то ли программисты не очень понимают, как их САПР используется, то ли просто забыли добавить возможность сохранения настроек. В итоге, САПР, при экспорте в PDF, всегда конвертирует только "текущий лист", если не забраться в параметры и принудительно не выбрать "Все листы". В нашем инженерном деле, документы из одного листа крайне редки, народ страдает и продолжает из раза в раз выкладывать, отправлять, генерировать и просто тратить процессорные мощности на однолистные PDF'ки. Томным, пятничным вечером, потягивая купажированный виски и покуривая сигару, я задумался — можно ли с этим что-нибудь сделать?


Disclaimer
  • Помните, внесение изменений в программное обеспечение может нарушать лицензионный договор. Все дальнейшие совпадения случайны. Статья носит исключительно развлекательный характер.
  • Автор не является программистом и тестировщиком, а работает скромным инженером-проектировщиком всяких аббревиатурных систем типа АСУ ТП, САУ ВО\ДГ и прочих промышленных систем. Из-за этого в статье могут содержаться неточности, ошибочные утверждения и бредовые предположения.



Рисунок 1. Окно настроек PDF.

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

Разбираем по кусочкам lincrackme3

Reading time3 min
Views3.2K
В отличие от Windows среда Linux не может похвастаться большим количеством разных трюков против отладки. Opensource и всё такое сыграли свою долю в этом. Среди дебаггеров
есть  gdb, но он очень легко обнаруживается простейшими техниками анти-отладки.

Соответственно не много известно протекторов способных сильно затруднить отладку бинарника, среди них можно вспомнить разве что 'shiva', но она уже давно «умерла».

Игрушкой сегодня для нас будет служить программка lincrackme3 с crackmes.de, она – не сложна и при этом,  в ней имеется несколько анти-отладочных трюков. Мы будем использовать  только дисассемблер – никаких отладчиков, ltracer-ов и тем более патчинга бинарника. Дисассемблером будет служить IDAPro 5.5.
Читать дальше →

Реверс-инжениринг протокола китайского USB ИК трансивера

Reading time12 min
Views16K

Попался мне китайский MicroUSB ИК трансивер, и возникло желание подключить его к компу с Windows. Трансивер представляет собой весьма компактный девайс с разъемом Micro USB. Единственный «официальный» вариант работы с ним — через Android приложение под названием ZaZaRemote.

При подключении к компу через переходник девайс определился как HID-совместимое устройство USB\VID_10C4&PID_8468. Гугление по этому ID не дало никаких результатов, и пришлось заняться реверсингом протокола.
Читать дальше →

Epic Fail от IDA и Eset

Reading time5 min
Views57K
image

Всем привет!

Сегодня, буквально часы назад пролетела новость — в паблике появился весь комплект давнего лакомого кусочка хакеров, кардеров и крякеров — последняя версия интерактивного дизассемблера IDA со всем прилагающимся инструментарием.

Конкретно, зарелизили:
Hex-Rays.IDA.Pro.Advanced.v6.1.Windows.incl.Hex-Rays.x86.Decompiler.v1.5.READ.NFO-RDW
Hex-Rays.IDA.Pro.Advanced.SDK.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.FLAIR.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.IDS.Utilities.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.LOADINT.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.TILIB.v6.1-RDW
Hex-Rays.IDA.Pro.Advanced.v6.1.TVision.v2009b.Source-RDW


Количество ссылок в сети сейчас растёт с геометрической прогрессией.

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

HexRaysPyTools: декомпилируй с удовольствием

Reading time10 min
Views55K


В этой статье я собираюсь рассказать о плагине для IDA Pro, который написал прошлым летом, еще находясь на стажировке в нашей компании. В итоге, плагин был представлен на ZeroNights 2016 (Слайды), и с тех пор в нём было исправлено несколько багов и добавлены новые фичи. Хотя на GitHub я постарался описать его как можно подробнее, обычно коллеги и знакомые начинают пользоваться им только после проведения небольшого воркшопа. Кроме того, опущены некоторые детали внутренней работы, которые позволили бы лучше понять и использовать возможности плагина. Поэтому хотелось бы попытаться на примере объяснить, как с ним работать, а также рассказать о некоторых проблемах и тонкостях.

Взлом Age of Mythology: отключение тумана войны

Reading time16 min
Views15K

Введение


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





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

Исправляем кривой запуск первого Mass Effect

Reading time18 min
Views20K
image

Часть 1


В последнее время я работал над собственным форком ME3Explorer [неофициальный редактор игр серии Mass Effect], содержащим множество важных улучшений и даже новые инструменты. Также я поработал над Mod Manager 5.1, который имеет удобные новые функции импорта сторонних модов, однако был отодвинут на второй план, пока я работал над новым фронтендом установщика ALOT.

ALOT Installer с манифестом 2017 года

Для его реализации я сотрудничал с CreeperLava и Aquadran; он должен упростить жизнь конечным пользователям, устанавливающим ALOT и его аддон (сторонние текстуры). Одна из моих проблем заключалась в том, что Origin не запускал игру после установки ALOT, если не запустить его с правами администратора. И поскольку запуск Origin при загрузке невозможно выполнить с правами админа, это очень раздражает. К тому же это влияет на мод MEUITM. Поэтому я начал разбираться, почему это происходит. Дело оказалось в идеальном сочетании реализации защиты, плохого кода и желания упростить жизнь других людей.

Давайте посмотрим, как работает Mass Effect с Origin в неизменённом состоянии под Windows 10.
Читать дальше →

Ломаем хаКс полностью. Читаем машинные коды как открытую книгу

Reading time9 min
Views11K
Если haXe оттранслирован в C++, а из него — в машинные коды, это может показаться безнадёжным, тем более, на первый взгляд этот код пестрит вызовами виртуальных методов, которые, не запуская отладчик, трудно соотнести с адресами тел методов.

Но всё не так уж плохо. Даже при отключенной поддержке сценариев (HXCPP_SCRIPTABLE) в файле можно обнаружить строки с названиями методов и полей. Разбираем, как можно размотать этот клубок, сопоставить имена методов с их адресами и смещениями в таблице виртуальных методов.

Исследуем защиту на основе сертификатов (utm5)

Reading time4 min
Views4.2K
Эта статья не повествует о том как сделать кряк или кейген. Здесь будет простое исследование защиты достаточно дорогого программного продукта.

Так сложилось, что выбор пал на utm5.
Целью являлось понять какой метод защиты использует данный программный продукт, тем более что этот комплекс программ есть как под windows так и под linux/freebsd.
Читать дальше →

Skype 5.5 расшифрован для реверс-инженеринга

Reading time1 min
Views1.6K
image
25 марта был опубликован расшифрованный бинарный файл Skype v. 5.5. Теперь появилась возможность запускать Skype в отладчике, чего нельзя было делать раньше, так как оригинальная версия сильно обфусцирована и имела защиту от отладки. Цель проекта — создать Skype с открытым исходным кодом.

Сообщение об этом появилось в блоге Ефима Бушманова, который год назад расшифровал протокол Skype версии 1.x/3.x/4.x и опубликовал рабочую версию программы.
Читать дальше →

Реверс-инжиниринг ПО начала 2000-х

Reading time6 min
Views10K

Предыстория


В этой серии статей я рассказываю о системе лицензирования ПО, использовавшейся в проприетарном программном приложении 2004 года. Это ПО также имеет пробный режим без регистрации, но с ограниченными функциями. Бесплатную лицензию можно было получить, зарегистрировавшись онлайн на сайте поставщика ПО. Примерно в 2009 году приложение перешло в статус abandonware и его перестали распространять. Хотя двоичный файл ПО был архивирован, пока не предпринимались попытки восстановления функциональности, которую можно было получить благодаря бесплатной лицензии.

Дизассемблируем двоичный файл


В одном из предыдущих постов о другом проекте реверс-инжиниринга я использовал в качестве дизассемблера IDA Free. Позже Агентство национальной безопасности США выпустило свой инструмент для реверс-инжиниринга Ghidra как ПО с open source. Его я и буду использовать в этом проекте.

По сравнению с IDA, Ghidra требует больше усилий для правильного дизассемблирования двоичного файла ПО. Например, рассмотрим, следующий дизассемблированный Ghidra код:


IDA автоматически идентифицирует функцию как 0x4f64dc, но Ghidra её не определяет. Как оказалось, именно эта функция и нужна будет в нашем анализе. Ghidra может выполнять более подробный анализ через AnalysisOne ShotAggressive Instruction Finder, но результат всё равно будет неполным.

Из метаданных двоичного файла ПО мы знаем, что сборка была создана в Delphi 7 (выпущенном в 2002 году).
Читать дальше →

ESET CrackMe – CONFidence 2o1o

Reading time3 min
Views14K
Компания Eset уже на протяжении нескольких лет выступает спонсором конференции, посвящённой практическим аспектам информационной безопасности — CONFidence. И каждый год мы предлагаем задание в виде crackme, за быстрое решение которого выдаются ценные призы. В этом году наш польский офис, официальное открытие которого состоялось в начале года, подготовил весьма оригинальное задание. Ведь конференция проходила в их родном городе, в Кракове.

image

Если вы хотите попробовать свои силы, тогда не читайте информацию подкатом, так как там мы опубликовали описание алгоритма проверки регистрационного кода. Скачать crackme можно здесь.
Читать дальше →