Появился официальный анонс новой редакции IDA Home:
ESET CrackMe – CONFidence 2o1o
![image](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/getpro/habr/post_images/82c/bff/5f4/82cbff5f493d1df247f4f4ea5dc1ace8.png)
Если вы хотите попробовать свои силы, тогда не читайте информацию подкатом, так как там мы опубликовали описание алгоритма проверки регистрационного кода. Скачать crackme можно здесь.
iDa — навигационная программа для Android
Мини-обзор и скриншоты программы внутри.
Реверс-инжиниринг игры Strike Commander
На создание одной из игр ушло четыре года и больше миллиона человеко-часов: Strike Commander. Знаменитый лётный симулятор имел собственный 3D-движок под названием RealSpace, в котором впервые появились технологии, сегодня воспринимаемые как должное: наложение текстур, затенение по Гуро, изменение уровня детализации и дизеринг цветов.
Мой старой мечтой было поиграть в неё в шлеме виртуальной реальности. Благодаря Oculus Rift эта фантазия стала ещё на один шаг ближе к реальности.
Но, как оказалось, исходный код игры был утерян и никогда не будет выпущен, поэтому я решил выполнить обратную разработку.
На момент публикации этой статьи мой проект ещё не закончен, но я хочу поделиться техниками, позволившими мне сделать из этого:
![](https://webcf.waybackmachine.org/web/20240706034644im_/http://fabiensanglard.net/reverse_engineering_strike_commander/sc_before.png)
вот это:
![](https://webcf.waybackmachine.org/web/20240706034644im_/http://fabiensanglard.net/reverse_engineering_strike_commander/sc_after.png)
… и, возможно, вдохновить кого-нибудь присоединиться к моему приключению.
Убиваем «колокольчик» от Google Chrome в трее
![hackers](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/getpro/habr/post_images/52c/fa8/3a0/52cfa83a009216ccf83cf7f351ab613d.jpg)
С недавних пор в Google Chrome появилась новая фича с названием оповещения. Время от времени, при непонятных обстоятельствах в системном трее появляется колокольчик, и всё. То есть если не настроить его вручную он там просто занимает место не выполняя никаких функций. А чтобы он там появился достаточно например развернуть на полный экран видео в ютубе, убрать его потом нельзя, только закрыть хром. Поиск способов как убрать его правильно успехом не увенчался. Способы вроде и работали но потом колокольчик снова появлялся в трее, и раздражал. В один вечер он сильно достал, и пришлось взяться за тяжёлую артиллерию.
HexRaysPyTools: декомпилируй с удовольствием
В этой статье я собираюсь рассказать о плагине для IDA Pro, который написал прошлым летом, еще находясь на стажировке в нашей компании. В итоге, плагин был представлен на ZeroNights 2016 (Слайды), и с тех пор в нём было исправлено несколько багов и добавлены новые фичи. Хотя на GitHub я постарался описать его как можно подробнее, обычно коллеги и знакомые начинают пользоваться им только после проведения небольшого воркшопа. Кроме того, опущены некоторые детали внутренней работы, которые позволили бы лучше понять и использовать возможности плагина. Поэтому хотелось бы попытаться на примере объяснить, как с ним работать, а также рассказать о некоторых проблемах и тонкостях.
Взлом Age of Mythology: отключение тумана войны
Введение
Age of Mythology — это стратегическая игра в реальном времени, в которой игрок стремится построить свою цивилизацию и победить всех врагов. В стандартном режиме игрок начинает игру на карте, полностью закрашенной чёрным, что обозначает неизвестную и неисследованную территорию.
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/getpro/habr/post_images/35e/91f/3d4/35e91f3d40cc9ce1579d0cf328674d86.png)
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/getpro/habr/post_images/fdb/b81/e63/fdbb81e639a960f2f17099f162a8d064.png)
В процессе игры пользователь исследует карту, и на исследованных областях появляются обозначения рельефа, ресурсов, вражеских построек, на которые накладывается «туман войны», обозначающий исследованную территорию, которую игрок не видит.
Ломаем хаКс полностью. Читаем машинные коды как открытую книгу
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/web/fe0/b84/852/fe0b8485240f46f3aea4d043ee430bba.png)
Но всё не так уж плохо. Даже при отключенной поддержке сценариев (HXCPP_SCRIPTABLE) в файле можно обнаружить строки с названиями методов и полей. Разбираем, как можно размотать этот клубок, сопоставить имена методов с их адресами и смещениями в таблице виртуальных методов.
Мини-исследование, улучшение и бот для игры Shadow Worlds
![Картинка для привлечения](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/getpro/habr/post_images/dfd/cb2/c2a/dfdcb2c2a653c3534404229ca01ce86e.jpg)
Реверс-инжениринг протокола китайского USB ИК трансивера
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/webt/sg/j9/ah/sgj9ahqc4l8hihq4jzjz_uap1ia.png)
Попался мне китайский MicroUSB ИК трансивер, и возникло желание подключить его к компу с Windows. Трансивер представляет собой весьма компактный девайс с разъемом Micro USB. Единственный «официальный» вариант работы с ним — через Android приложение под названием ZaZaRemote.
При подключении к компу через переходник девайс определился как HID-совместимое устройство USB\VID_10C4&PID_8468. Гугление по этому ID не дало никаких результатов, и пришлось заняться реверсингом протокола.
Что нам стоит patch построить, нарисуем будем жить
Сказ о суровых российских инженерах.
1. С чего все началось…
Ангелы и демоны кружили надо мной
Рассекали тернии и Млечные Пути
Origa — Inner Universe
В одном, не очень отечественном САПР, есть возможность конвертировать чертежи сразу в PDF. Но то ли программисты не очень понимают, как их САПР используется, то ли просто забыли добавить возможность сохранения настроек. В итоге, САПР, при экспорте в PDF, всегда конвертирует только "текущий лист", если не забраться в параметры и принудительно не выбрать "Все листы". В нашем инженерном деле, документы из одного листа крайне редки, народ страдает и продолжает из раза в раз выкладывать, отправлять, генерировать и просто тратить процессорные мощности на однолистные PDF'ки. Томным, пятничным вечером, потягивая купажированный виски и покуривая сигару, я задумался — можно ли с этим что-нибудь сделать?
- Помните, внесение изменений в программное обеспечение может нарушать лицензионный договор. Все дальнейшие совпадения случайны. Статья носит исключительно развлекательный характер.
- Автор не является программистом и тестировщиком, а работает скромным инженером-проектировщиком всяких аббревиатурных систем типа АСУ ТП, САУ ВО\ДГ и прочих промышленных систем. Из-за этого в статье могут содержаться неточности, ошибочные утверждения и бредовые предположения.
Рисунок 1. Окно настроек PDF.
Реверс-инжиниринг ПО начала 2000-х
Предыстория
В этой серии статей я рассказываю о системе лицензирования ПО, использовавшейся в проприетарном программном приложении 2004 года. Это ПО также имеет пробный режим без регистрации, но с ограниченными функциями. Бесплатную лицензию можно было получить, зарегистрировавшись онлайн на сайте поставщика ПО. Примерно в 2009 году приложение перешло в статус abandonware и его перестали распространять. Хотя двоичный файл ПО был архивирован, пока не предпринимались попытки восстановления функциональности, которую можно было получить благодаря бесплатной лицензии.
Дизассемблируем двоичный файл
В одном из предыдущих постов о другом проекте реверс-инжиниринга я использовал в качестве дизассемблера IDA Free. Позже Агентство национальной безопасности США выпустило свой инструмент для реверс-инжиниринга Ghidra как ПО с open source. Его я и буду использовать в этом проекте.
По сравнению с IDA, Ghidra требует больше усилий для правильного дизассемблирования двоичного файла ПО. Например, рассмотрим, следующий дизассемблированный Ghidra код:
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/getpro/habr/post_images/7ec/41b/db3/7ec41bdb38e4c684818f962d709f43e2.png)
IDA автоматически идентифицирует функцию как 0x4f64dc, но Ghidra её не определяет. Как оказалось, именно эта функция и нужна будет в нашем анализе. Ghidra может выполнять более подробный анализ через Analysis → One Shot → Aggressive Instruction Finder, но результат всё равно будет неполным.
Из метаданных двоичного файла ПО мы знаем, что сборка была создана в Delphi 7 (выпущенном в 2002 году).
How to Start Reverse Engineering in 2021
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/r/w1560/getpro/habr/upload_files/ee7/e85/f88/ee7e85f88c104913bf4a63543bf7f46f.png)
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?
Исправляем кривой запуск первого Mass Effect
![image](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/getpro/habr/post_images/f44/7f2/c7a/f447f2c7a3b5d1b269369af5861a90c1.png)
Часть 1
В последнее время я работал над собственным форком ME3Explorer [неофициальный редактор игр серии Mass Effect], содержащим множество важных улучшений и даже новые инструменты. Также я поработал над Mod Manager 5.1, который имеет удобные новые функции импорта сторонних модов, однако был отодвинут на второй план, пока я работал над новым фронтендом установщика ALOT.
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/getpro/habr/post_images/f5e/b98/eaf/f5eb98eaf3df3754d47beb00b9ef4996.png)
Для его реализации я сотрудничал с CreeperLava и Aquadran; он должен упростить жизнь конечным пользователям, устанавливающим ALOT и его аддон (сторонние текстуры). Одна из моих проблем заключалась в том, что Origin не запускал игру после установки ALOT, если не запустить его с правами администратора. И поскольку запуск Origin при загрузке невозможно выполнить с правами админа, это очень раздражает. К тому же это влияет на мод MEUITM. Поэтому я начал разбираться, почему это происходит. Дело оказалось в идеальном сочетании реализации защиты, плохого кода и желания упростить жизнь других людей.
Давайте посмотрим, как работает Mass Effect с Origin в неизменённом состоянии под Windows 10.
Реверс-инжиниринг Fantastic Dizzy
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/getpro/habr/post_images/466/2bd/953/4662bd9537c41cceb388a841523b8669.png)
Я написал несколько простых инструментов для извлечения, просмотра и запаковки ресурсов оригинальной игры. Инструменты выложены на GitHub.
Распаковка EXE
Двоичный файл PCDIZZY.EXE упакован в формат Microsoft EXEPack. Хотя есть множество инструментов для Linux, способных распаковывать такие исполняемые файлы, ни один из них, похоже, не поддерживает версию, использованную для Fantastic Dizzy. Поэтому для распаковки исполняемого файла я воспользовался DOS-версией UNP. После распаковки исполняемого файла его можно было загрузить в IDA. Удобно то, что распакованная версия двоичного файла по-прежнему хорошо работала, поэтому её отладку можно было выполнять с помощью дебаггера DOSBox.
Портабелизация IDA
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/webt/5m/6b/p7/5m6bp7ili800mrldo3mhhpy_a7o.gif)
Совсем небольшое сообщение.
По ряду личных причин я люблю таскать свой инструментарий на флешке или внешнем жёстком диске. Одним из инструментов является IDA 6.8.
После работы с системами я не люблю, когда остаются какие-то хвосты в реестре или в виде файлов. И к сожалению, IDA и её модули (в частности, BinnDiff) этим грешны.
Ну и возникло желание получить полностью портабельный комплекс.
IDA Pro: 11 советов, которые вы (может быть) не знали
Как скопировать псевдокод в ассемблерный листинг? Как правильно выровнять структуры? Как лучше всего сделать экспорт куска данных для использования в скрипте? В этой статье я покажу компиляцию полезных, как мне кажется, советов для IDA Pro, честно украденных позаимствованных из разных источников и своего опыта.
Погружение в драйвер: общий принцип реверса на примере задания NeoQUEST-2019
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/webt/ql/w3/1t/qlw31t-4mz--bhpo4qa81o_ptse.gif)
Как и все программисты, ты любишь код. Вы с ним — лучшие друзья. Но рано или поздно в жизни наступит такой момент, когда кода с тобой не будет. Да, в это сложно поверить, но между вами будет огромная пропасть: ты снаружи, а он — глубоко внутри. От безысходности тебе, как и всем, придется перейти на другую сторону. На сторону обратной разработки.
На примере задания №2 из online-этапа NeoQUEST-2019 разберем общий принцип реверса драйвера Windows. Конечно, пример является довольно упрощенным, но суть процесса от этого не меняется — вопрос только в объеме кода, который нужно просмотреть. Вооружившись опытом и удачей, приступим!
Flare-On 2019 write-up
![](https://webcf.waybackmachine.org/web/20240706034644im_/https://habrastorage.org/webt/bz/4g/sb/bz4gsbxbvka4sjtartbqmxccw6q.png)
-0x01 — Intro
Данная статья посвящена разбору всех заданий Flare-On 2019 — ежегодного соревнования по реверс-инжинирингу от FireEye. В данных соревнованиях я принимаю участие уже второй раз. В предыдущем году мне удалось попасть на 11-ое место по времени сдачи, решив все задачи примерно за 13 суток. В этом году набор тасков был проще, и я уложился в 54 часа, заняв при этом 3 место по времени сдачи.
В данной статье я старался описать те моменты, которые вызвали у меня наибольший интерес, поэтому в разборе не будет описания рутиной работы в IDA, понимания алгоритмов каждой функции и других не самых интересных моментов. Надеюсь, прочитав это, Вы найдете для себя что-то новое и полезное. С разборами задач от авторов, а также с некоторой статистикой и призами для победителей Вы можете ознакомиться тут.
Если вас заинтересовало, то добро пожаловать под кат!