Сообщения

Сообщения за сентябрь, 2016

Steam и фриварная японская говногама [Часть 2].

Изображение
Вторым глобальным этапом у нас будет отвязка от Steam . Откроем дамп в CFF Explorer 'e и посмотрим на директорию импорта ( Import Directory ); Конкретно нас интересует модуль steam_api.dll . Здесь из него вызывается всего 5 функций, суть которых я постараюсь описать. SteamAPI_RunCallbacks - функция, которая обращается непосредственно к самому клиенту Steam и получает от него ответ (колбэк); SteamApps - функция, которая получает список приложений(игр), которые зарегистрированы на конкретный аккаунт, под которым пользователь авторизован через клиент Steam . SteamAPI_Init - инициализация Steam , фактически главная функция, которая проверяет запущенность клиента и определяет дальнейшие действия.После ее вызова Steam клиент будет считать, что приложение (игра) запущено. SteamAPI_Shutdown - функция финализации, вызывается по завершению процесса и является сигналом клиенту Steam о том, что приложение (игра) завершено. SteamUser - функция, которая получает и

Steam и фриварная японская говногама [Часть 1].

Изображение
"Romance of the Three Kingdoms Maker" . Эта игра добавляется в виде бесплатной лицензии на аккаунт, поэтому, если она Вам нахуй не всралась, то и нехуй ее добавлять. Сразу уточню несколько важных моментов: Игра накрыта последней (или од ной и з последних) версией Steam stub , которая шифрует игровой код + steam api для внутристимовых нужд; Имеет топорный антидамп в виде неебически большого значения virtual size секции .data ; В качестве антиотладки юзаются IsDebuggerPresent + NtSetInformationThread ; Примечание: Steam stub никогда не портит импорт, что равняет принцип его работы с древними пакерами конца 90-х - начала 00-х годов. Приступаем. Забрасываем в отладчик файл Launch.exe и оказываемся на точке входа упаковщика. Если мы запустим игру под отладчиком, то нам будет выплюнута ошибка, которая означает, что код игры не был распакован из-за обнаружения отладчика, соответственно и Steam не получил управления над процессом. Поставим

Быстрый анализ игрового датафайла

Изображение
Хуй знает, что меня побудило на написание этой статьи. Ни для кого не секрет, что во многих играх используются кастомные бинарные форматы для хранения множества файлов в первичном или сжатом виде.Естественно, что во время загрузки любой игры из этих бинарных файлов происходит считывание и выгрузка в оперативную память всего необходимого. Но как быть, если файл неизвестного формата настолько, что в нем нельзя найти ни TOC, ни форматные сигнатуры ни в начале, ни в конце ?  А очень просто. Любой зашифрованный или сжатый файл проходит предварительную расшифровку/разжатие в оперативной памяти.Это происходит благодаря вызовам определенного числа функций в самом исполняемом файле или игровом скрипте, но мы не будет реверсить исполняемый файл.Достаточно будет анализа бинарного формата в конкретном случае. Возьмем демоверсию игры "X - Beyond The Frontier", вышедшей в свет в далеком 1999 году. Дропнем в мой любимый hex-редактор файл 01.DAT Сразу же можно заметить,