|
Пиратские игры в целом Обсуждение игр про пиратов, создаем голосования и темы, которые затрагивают более чем одну игру морской тематики... |
|
|
Опции темы | Опции просмотра |
|
01.07.2015, 14:21 | #1 |
Салага
|
Мультизагрузчик аддонов #2
Предыдущая [Для просмотра данной ссылки нужно зарегистрироваться] закрыта, продолжим здесь.
Здравствуйте, господа. Меня заинтересовала данная тема. Решил написать такой загрузчик. Сейчас есть работающий прототип, протестированный на ГПК и ТДМ. Работа игр осталась "стабильно нестабильной", как и была до этого. Идея загрузчика - замена файла stormext.dll. Оригинальный файл stormext.dll в играх, которых он есть, является т.н. "dll-proxy", т.е. посредник между приложением и файлом kernel32.dll с перехватом и изменением поведения необходимых функций (в оригинале это открытие и чтение закрытых исходников скриптовых файлов). Поэтому там, где этот файл используется игрой, никаких дополнительных действий производить не нужно. Начну с недостатков: 1. Если игра не использует файл stormext.dll (ТДМ, например), необходимо патчить ENGINE.EXE, а именно заменить KERNEL32.DLL (именно в таком виде будет в exe-файле) на stormext.dll. 2. Видео не будет воспроизводиться, кроме случая, когда лежит в корне диска с игрой. 3. Звука не будет, пока не пропатчить fmodex.dll как в п.1 (есть в архиве). 4. Мне не хочется делать GUI, поэтому придётся править всё руками. Почему нельзя переименовать файл stormext.dll в kernel32.dll и ничего не патчить в версиях игры, где этого файла нет? Потому что файл kernel32.dll является системной библиотекой и операционная система не даст законными методами загрузить свою. Достоинство такого метода: файлы от игры могут находиться в любом месте. Например, необходимая база для модов по своему пути установки, моды к ней в своих директориях. Как написано выше, работает без необходимости патча с ГПК. Для ТДМ уже необходимо патчить ехе-файл. Теоретически, может работать с играми, у которых следующие версии файла stormext.dll: 1. версия 1.9.7.73 (из ГПК), размер файла для справки 148992 байт; 2. версия 1.9.4.60 (из ВМЛ), размер файла 118784 байт. Есть ли другие версии? Как безопасно протестировать (на примере ГПК). Это первая, сырая альфа-версия загрузчика, многие проверки убраны, не испытывайте её на прочность, указывайте корректные значения. 1. Переименовываем файл stormext.dll на, например, stormext1.dll 2. Переименовываем файл fmodex.dll на, например, fmodex1.dll 3. Переименовываем папку resource на resource1 4. Копируем файлы stormext.dll, fmodex.dll и stormext.ini в корневую директорию с игрой. 5. Редактируем stormext.ini, при необходимости. Там немного расписал параметры. 6. Запускаем игру и смотрим вывод файла stormext.log. Если кого заинтересует, буду расписывать подробнее. Ссылка на скачивание: [Для просмотра данной ссылки нужно зарегистрироваться] или вложение. Последний раз редактировалось reverse engineer; 14.07.2015 в 13:42. |
Пользователь сказал cпасибо: | Королёв (05.07.2015) |
Реклама | |
Реклама | |
Зарегистрированным пользователям показывается меньше рекламы! |
05.07.2015, 08:23 | #3 |
Старожил
Лейтенант
Бермудский модмейкер
|
Re: Мультизагрузчик аддонов #2
У меня нет возможности это проверить, но если оно работает, то это круто.
__________________
Every day and every night When it gets dark niggas get outta sight At Madison Square I shot a fair one Спойлер: |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|