IPB

Добро пожаловать, гость ( Вход | Регистрация )

> The Last Express Gold Edition, набор символов шрифта
Siberian GRemlin
Jun 26 2016, 06:32
Сообщение #1


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



«Золотое издание» это старая игра адаптированная под современные системы, к сожалению «ХР» не поддерживается. Возникла проблема с отображением субтитров. Хоть текст изначально закодирован двумя байтами, но игра отбрасывает первый байт и использует только второй. Причём выводит только западноевропейскую латиницу. Проблема в том, что используется системный Arial и это никак нельзя изменить — ЕХЕ проверяет свою целостность, что лицензионная копия, что взломанная. Попробовал сделать грязным способом — добавил нужные коды кириллице, установил шрифт. Он добавился в набор шрифтов, и кириллица стала выводиться вместо доп. латиницы и в игре и в системе, а значит везде. Шрифт теперь можно удалить только из-под другой ОС, что очень плохо.

И, да, я проверил через «Process Monitor» — игра не обращается к arial.ttf напрямую, а через системную API его загружает. В противном случае я ей изменённый шрифт просто в папку положил бы.

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



Сама библиотека. Взломанную игру долго искал и качал пару дней, если нужна, то могу поделиться (на ХР не идёт).

Буду признателен, если кто-нибудь сможет подсказать какой байт исправить с 0 на 1, чтобы изменить набор символов перед вызовом функции. В перспективе это может пригодиться для других игр, например, «Little Big Adventure Enhenced Edition» сделана с использованием этой библиотеки, но эта игра вроде системные шрифты не использует.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
 
Reply to this topicStart new topic
Ответов
-=CHE@TER=-
Jun 28 2016, 15:57
Сообщение #2


Walter Sullivan
***

Группа: Root Admin
Сообщений: 1,353
Регистрация: 4-February 08
Пользователь №: 3
Спасибо сказали: 311 раз(а)



QUOTE
C:\>net helpmsg 299

Запрос ReadProcessMemory или WriteProcessMemory был выполнен только частично.
Хм. Интересно, как он может быть выполнен частично?

У структуры "StartUpInfo" обязательное только поле "cb", остальное можно игнорировать (тем более, что ты флаги заполнил, а связанные с ними структуры - нет и не используешь).

Погуглил на скорую руку с запросом:
CreateProcess CREATE_SUSPENDED readprocessmemory ERROR_PARTIAL_COPY 299

Вот чего нашёл:
_ttps://forum.antichat.ru/threads/97043/

Попробуй добавить флаг отладки при создании процесса (похоже, что под Vista и выше прав нехватает):
..., CREATE_SUSPENDED or DEBUG_PROCESS, ...

Ещё проверь что у тебя VirtualProtectEx() возвращает:

SetErrorCode(0);
if (VirtualProtectEx(...) = false) then writeln('VPE_error: ',GetLastError);

Возможно, как-то ещё придётся себе права поднимать. Пока что попробуй так.
И я так и не получил ответы на свои вопросы выше:
1) Игра в Program Files стоит? Если да - попробуй скопировать исполняемый файл игры и все необходимые ему бибилиотеки в какой-нибудь другой каталог и запусти патч оттуда. Если чтение памяти проканает, значит надо с правами в Program Files разбираться.
2) От имени администратора свой патч пробовал запускать?
3) А в режиме совместимости Windows XP или 98?
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Siberian GRemlin
Jun 28 2016, 16:45
Сообщение #3


Advanced Member
***

Группа: CTPAX-X
Сообщений: 533
Регистрация: 4-February 08
Пользователь №: 2
Спасибо сказали: 221 раз(а)



QUOTE(-=CHE@TER=- @ Jun 28 2016, 22:57) *
Попробуй добавить флаг отладки при создании процесса (похоже, что под Vista и выше прав нехватает):
..., CREATE_SUSPENDED or DEBUG_PROCESS, ...
Ошибка та же, но игра не запускается. То есть сам процесс запускается, но после readln завершается, если верить диспетчеру задач.

QUOTE(-=CHE@TER=- @ Jun 28 2016, 22:57) *
Ещё проверь что у тебя VirtualProtectEx() возвращает:
487.

QUOTE(-=CHE@TER=- @ Jun 28 2016, 22:57) *
1) Игра в Program Files стоит? Если да - попробуй скопировать исполняемый файл игры и все необходимые ему бибилиотеки в какой-нибудь другой каталог и запусти патч оттуда. Если чтение памяти проканает, значит надо с правами в Program Files разбираться.
Никогда не устанавливаю игры в Program Files. Под игры отдельная папка.

QUOTE(-=CHE@TER=- @ Jun 28 2016, 22:57) *
2) От имени администратора свой патч пробовал запускать?
Я и так являюсь администратором. Но запустил через пункт в выпадающем меню от имени админа — ошибки те же.

QUOTE(-=CHE@TER=- @ Jun 28 2016, 22:57) *
3) А в режиме совместимости Windows XP или 98?
У чего и зачем? Игре совместимость не нужна, моей проге тоже.

Кстати, у меня «Windows 7».
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Сообщения в этой теме
Siberian GRemlin   The Last Express Gold Edition   Jun 26 2016, 06:32
-=CHE@TER=-   А какие файлы проверяются на целостность игрой? В ...   Jun 26 2016, 09:20
Siberian GRemlin   libcocos2d.dll не проверяется на целостность. Заче...   Jun 26 2016, 10:18
-=CHE@TER=-   Если не проверяется, то ок. Попробуй, пока что, та...   Jun 26 2016, 11:22
Siberian GRemlin   Печально, но ни один из вариантов не помог. Может ...   Jun 26 2016, 12:12
-=CHE@TER=-   Печально, но ни один из вариантов не помог. Может ...   Jun 26 2016, 13:00
Siberian GRemlin   Никогда не занимался этим. Пункты 1 и 3 сделал. Во...   Jun 26 2016, 16:45
-=CHE@TER=-   Это просто адрес кода. Его можно посмотреть в HIEW...   Jun 26 2016, 18:28
Siberian GRemlin   Не мог понять почему читается левое значение. Сдел...   Jun 27 2016, 06:22
-=CHE@TER=-   Не пробовал свою программу от имени администратора...   Jun 27 2016, 13:02
Siberian GRemlin   Ошибка — 299. var StartUpInfo: TStartUpInfo...   Jun 28 2016, 10:59
-=CHE@TER=-   Хм. Интересно, как он может быть выполнен частично...   Jun 28 2016, 15:57
Siberian GRemlin   Попробуй добавить флаг отладки при создании процес...   Jun 28 2016, 16:45
-=CHE@TER=-   Ошибка та же, но игра не запускается. То есть сам ...   Jun 29 2016, 09:32
Siberian GRemlin   Можешь исполняемый файл игры вместе со всеми необх...   Jul 12 2016, 19:49
-=CHE@TER=-   Ух, ты! Первый раз вижу .EXE файл, который реа...   Jul 13 2016, 10:45
Siberian GRemlin   Если кому-то интересно, ничего из описанного выше ...   Mar 19 2018, 14:52


Reply to this topicStart new topic
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0 -

 



Упрощённая версия Сейчас: 28th March 2024 - 17:52