eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 3 апреля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: Bad_guy, Adler, NoRG, rmn (+5 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Изменение функции в EXE
Посл.ответ Сообщение

Ранг: 0.7 (гость)
Статус: Участник

Создано: 6 февраля 2019 17:08 · Поправил: Xenon New!
Цитата · Личное сообщение · #1

Приветствую

Ситуация следующая:

Занимаюсь портингом игры с консоли Xbox 360 на ПК. Занимаюсь, потому что издатель убил проект на ПК-версии, а именно - нет дополнительного контента (автомобили и трассы). Понял всю механику игры, как работает звук, как работают шейдеры, как происходит наложение текстур и прочее, подробности ни к чему. Столкнулся с такой проблемой: на консоли порядок байтов - BigEndian, на ПК - Little endian.

Но на положение таблиц в файле это не влияет. Меняются местами только первые два байта, потом вторые два байта и т.д. в таблице.

К примеру:

1. Cтроение 3D файла консольной версии. Любой формат трехмерного файла - это таблицы. Таблицы вершин, таблицы полигонов, координаты текстур. И эти таблицы идут по порядку. На консоли: 1-таблица полигонов, 2 - таблица вершин, 3 - таблица текстурных координат.

2. На ПК : 1-таблица текстурных координат, 2 - таблица вершин, 3 - таблица полигонов.

Грубо говоря, файл записан задом наперед и порядок байтов иной

Есть ли возможность изменить функцию чтения этого файла в исполняемом EXE? И как ее найти?

P.S. Игра защищена SecuROM 2010 года

| Сообщение посчитали полезным: kampaster


Ранг: 116.8 (ветеран)
Статус: Участник

Создано: 6 февраля 2019 18:08 New!
Цитата · Личное сообщение · #2

Xenon пишет:
изменить функцию чтения этого файла в исполняемом EXE?

Скорее всего чтение происходит из разных мест и возможны разные хардкорные хаки, тут имхо более грамотным подходом будет сконвертить сами файлы, пройтись скриптом по директроиям игры и пересобрать в "правильном" порядке.

Ранг: 0.7 (гость)
Статус: Участник

Создано: 6 февраля 2019 18:11 · Поправил: Xenon New!
Цитата · Личное сообщение · #3

VOLKOFF пишет:
Скорее всего чтение происходит из разных мест и возможны разные хардкорные хаки, тут имхо более грамотным подходом будет сконвертить сами файлы, пройтись скриптом по директроиям игры и пересобрать в "правильном" порядке.


Я так и сделал, но для обработки одного файла у меня уходит неделя. А файлов всего около 600.

Спасибо за ответ)

Ранг: 116.8 (ветеран)
Статус: Участник

Создано: 6 февраля 2019 18:17 New!
Цитата · Личное сообщение · #4

Xenon пишет:
для обработки одного файла у меня уходит неделя


Вы их руками что ли конвертите?
На xentax-е точно пробегали готовые конверторы иксбоксовских файлов для пк.

Ранг: 0.7 (гость)
Статус: Участник

Создано: 6 февраля 2019 18:29 New!
Цитата · Личное сообщение · #5

VOLKOFF пишет:
Вы их руками что ли конвертите?
На xentax-е точно пробегали готовые конверторы иксбоксовских файлов для пк.


Свапаю байты, и меняю положение. Но смещение таблиц в файле прописывается внутри самого файла и это тоже редактирую. Ну и одна модель автомобиля состоит из 4 файлов - сама модель, текстуры, шейдеры и шейдерные инстансы. А сам автомобиль это двери, крылья, бампера, стеклянные элементы, колеса. И под каждый элемент отдельный шейдер. И это все вместе нужно редактировать. Инфа в hex-редакторе не очевидна и поэтому уходит много времени. Была мысль заморочится и написать на питоне 3d viewer, но пока все смутно)))

На xentax`e много полезной инфы, оттуда и почерпнул знания)))

Ранг: 36.1 (посетитель)
Статус: Участник

Создано: 6 февраля 2019 18:29 · Поправил: Jonny New!
Цитата · Личное сообщение · #6

Xenon пишет:
P.S. Игра защищена SecuROM 2010 года


Ты программу не распаковал что ли?

Xenon пишет:
Есть ли возможность изменить функцию чтения этого файла в исполняемом EXE? И как ее найти?

Если распаковал, ищещь в дизассемблере эту функцию, запоминаешь ее адрес, создаешь свою функцию чтения под сигнатуру подменяемой функции, собираешь в длл либо blob, связываешь свой код с exe, чтобы вместо той функции вызывалась твоя. Связать свой код можно как минимум двумя способами -
статическое - добавляешь в exe новую секцию, заливаешь в секцию свой блоб, пренаправляешь подменяемую функцию на твою с помощью jmp.
динамическое - подгрузка своего кода во время выполнения.

Ранг: 0.7 (гость)
Статус: Участник

Создано: 6 февраля 2019 18:40 · Поправил: Xenon New!
Цитата · Личное сообщение · #7

Jonny пишет:
Ты программу не распаковал что ли?


Нет. На просторах интернета лежит две кряктуные версии:

1. Такой же размер исполняемого файла, что и у лицензионного, но вызывается изменная dll
2. Размер исполняемого файла уменьшен на 7мб (думаю удален секуромовский мусор и прочее, что запутывает взлом) и вызывается изменная dll

Добавлено спустя 5 минут
Jonny пишет:
Ты программу не распаковал что ли?


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

Хекс вид во вложении


{ Атач доступен только для участников форума } - Снимок.JPG

Ранг: 77.0 (постоянный)
Статус: Участник

Создано: 6 февраля 2019 19:06 New!
Цитата · Личное сообщение · #8

Xenon, не занимайтесь ерундой, пишите конвертер файлов.
А ломать функцию чтения файлов внутри бинаря очень странная затея, тем более, по ощущениям, навыков недостаточно у вас.
Написать конвертер на питоне или любом другом удобном языке будет куда проще, если итак уже известна структура.


Ранг: 169.5 (ветеран)
Статус: Участник

Создано: 6 февраля 2019 19:28 New!
Цитата · Личное сообщение · #9

Xenon пишет:
Я так и сделал, но для обработки одного файла у меня уходит неделя. А файлов всего около 600.

Страшно представить на чем и как ты этот конвертер написал.

Ранг: 116.8 (ветеран)
Статус: Участник

Создано: 6 февраля 2019 19:32 New!
Цитата · Личное сообщение · #10

f13nd пишет:
Страшно представить на чем и как ты этот конвертер написал

Xenon пишет:
Инфа в hex-редакторе не очевидна и поэтому уходит много времени

здесь наши полномочия все
По структуре и сигам пишется скрипт и минут за 10-20 все готово. И даже это избыточно, если уже готовые инструменты есть.

Ранг: 0.7 (гость)
Статус: Участник

Создано: 6 февраля 2019 19:34 New!
Цитата · Личное сообщение · #11

f13nd пишет:
Страшно представить на чем и как ты этот конвертер написал.


в хекс редакторе переставлял данные и правил. Ничего не писал

Единственное что я сделал с экзешником, это заставил его читать файлы с жестого диска. То есть, лежал файл в сжатом архиве (чтобы такие как я не модифицировали игру) я его распаковывал в папку с экзешником и уже прописывал в экзешнике путь к этому файлу. Но это совсем просто


Ранг: 169.5 (ветеран)
Статус: Участник

Создано: 6 февраля 2019 20:06 New!
Цитата · Личное сообщение · #12

Xenon пишет:
в хекс редакторе переставлял данные и правил. Ничего не писал

Понятно. Починка кода в программе это всегда кот в мешке. Никогда нельзя заранее знать чем окажется то, что представляется как "функция чтения структур файла", сколько времени займет все копание в программе и переделка. Рациональней всего вообще туда не лезть и таки сделать конвертер.
 eXeL@B —› Вопросы новичков —› Изменение функции в EXE

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS