IPB

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

 
Reply to this topicStart new topic
> Программы запуска
Siberian GRemlin
May 28 2018, 09:14
Сообщение #1


Advanced Member
***

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



Кто-нибудь знает как работают программы запуска, присутствующие в некоторых играх?

Обычно есть game.exe и launcher.exe, где первый это сама игра, а второй это оболочка с настройками и прочим, из которой можно запустить игру, и зачастую нужно только из неё запускать, так как запуск game.exe ни к чему не приводит. Это вызывает трудности, когда нужно изменить строки в тексте игры по такому принципу, то есть в памяти, а не в самом файле, так как может проверяться его целостность.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
May 28 2018, 10:16
Сообщение #2


Walter Sullivan
***

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



Из того, что я видел - по степени убывания частоты использования:
1) Зачастую launcher передаёт game определённый параметр командной строки. Ловится очень просто - заменяешь game свой программой, которая сообщает с какими ключами её запустили.
2) Пару раз видел как launcher создавал ключ в реестре, запускал game, та проверяла ключ, если он есть - запускалась, если нет - выходила. Уже не помню подробностей, кто именно удалял ключ после запуска - game или launcher. Ловится такое дело через RegMon.
3) Ещё было - создавался/изменялся файл настроек с определённым значением. Это можно отследить через FileMon.
4) Какая-то программа была, которая запускала свой основной модуль в спящем режиме, что-то там расшифровывала в уже загруженном в памяти процессе, и только потом делала ResumeThread(). При обычном запуске там то ли точка входа другая была, то ли команды по адресу точки входа были обычным завершением работы, так что без launcher сама game тупо без всяких сообщений сразу выходила.
5) Также попадалось совсем дикое, но это под DOS - launcher перехватывал прерывания, на них садились сервисные функции игры, а уже потом запускался game, который проверял есть ли на этих прерываниях нужный сервис.
Может, что-то ещё забыл, но это основное.


Спасибо сказали:
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
-=CHE@TER=-
Jan 11 2022, 20:49
Сообщение #3


Walter Sullivan
***

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



В копилку: попросили поглядеть TMNT (2007) и там было такое - игра говорила запустите через запускалку, а запускала не давала запустить игру из-за того не могла определить тип процессора (слишком новый). Глянул код главного исполняемого файла - он пытался создать Mutex с именем "TMNTLauncher" (вроде так, пишу по памяти) и, если он успешно создавался (т.е. запускалка не запущена и его ещё не создала, ибо два мутекса с одинаковым именем в системе нельзя сделать), то программа выходила. Как оказалось достаточно было запустить и оставить запускалку в покое, после чего можно было стартовать игру напрямую.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

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

 



Упрощённая версия Сейчас: 31st October 2024 - 09:35