Страница 1 из 1 [ Сообщений: 13 ] Версия для печати [+] |
Здравствуйте ! Посоветуйте пожалуйста, какую программу можно использовать для решения следующей задачи:
Есть 2 exe-файла, при этом первый екзешник (launcher) запускает второй (исполняемый файл). Если же исполняемый файл переименовать, то естественно launcher выдаст ошибку, так как не найдет запускаемую программу. А если попробывать запустить второй экзешник без помощи лаунчера, то получаем другую ошибку. Вопрос №1: Как же все таки запустить программу с переименованным исполняемым файлом ? Как я понимаю, тут есть 2 способа: 1) Отредактировать в лаунчере имя запускаемого файла. 2) Попытаться запустить исполняемый файл без участия лаунчера, вручную прописав все необходимые параметры коммандной строки. Тут возникает еще несколько вопросов: 1) Каким из этих способов лучше пойти ? 2) Какой софт использовать для редактирования лаунчера ? 3) Как узнать список параметров командной строки исполняемого файла? Заранее признателен за помощь ! |
1. Запускаете программу лаунчером;
2. Берёте программу ProcessExplorer и запускаете её; 3. В ProcessExplorer находите интересующую вас программу в списке запущенных процессов и дважды кликаете её. Появляется информационное окошко; 4. Там смотрите значение Command Line. Это и есть интересующие вас параметры командной строки. Если вас же интересует именно редактирование лаунчера, то могу тоже подсказать, как это делать. Но проще ИМХО ограничиться вытягиванием параметров командной строки и созданием просто ярлыка с ними. |
zhe, спасибо большое ! Сейчас попробую
Подскажите пожалуйста, если не сложно, чтоб знал на будущее. |
sprata, нужно просто найти строку с путём к файлу в екзешнике.
Идеальный вариант — это если длина новой строки будет совпадать с длиной старой. Тогда просто заменяете новое на старое. Если новая строка короче старой, то забиваете оставшиеся символы нулевыми байтами. Но ни в коем случае не сдвигаете. Если новая строка длине старой — то все гораздо сложнее. Нужно дизасемблировать программу и смотреть, куда можно вставить лишние байты. Сдвигать нельзя. Поэтому лучше переименовывайте так, чтобы были первые 2 варианта. Чтобы заменить строки в екзешнике, пробуйте любой HEX Editor. WinHex рулит, например. |
Только что попробовал запускать Resient Evil 5. У меня Current Directory процесса "RE5DX9.EXE" — "C:\Windows\". А у вас, судя по скрину — папка с игрой. Попробуйте прописать в ярлыке рабочую папку C:\Windows\.
Просто забыл сказать, что в ярлыке нужно прописать не только правильные параметры командной строки, но и рабочую директорию. ПС. однако вы любитель поплясать с бубном А просто через Catalyst Control Center форсировать сглаживание не работает? |
К сожалению, нет |
Хм, только что попробовал запустить через ярлык с прописанной папкой C:\Windows. Всё равно не работет. Может быть точно проверяется родительский процесс. Ещё хуже, если эти 2 процесса по консольному выводу обмениваются между собой какими-нибудь ключами.
|
Угу А теоретически вообще возможно отследить переменные, которые были созданы процессом ? Или легче редактировать лаунчер?) |
В ProcessExplorer можно посмотреть какие именованные каналы и хендлы открыты этими процессами. Пробовать перехватывать сообщения Windows и т. д. Они могут общаться между собой кучей разных способов. Тут уже надо обладать познаниями в программировании. Но чисто чтоб поржать попробуйте скомпилировать простейший лаунчер, который будет запускать переименованный екзешник РЕ5. Чем чёрт не шутит, можно оно проверяет просто имя парент-процесса. |
Не прокатило void __fastcall TForm1::Button1Click(TObject *Sender) zhe, спасибо большое, в RE5 все получилось, WinHex действительно рулит ! В Бэтмене как раз так и получается, так что надеюсь что все сработает Последний раз редактировалось sprata 18:24 20.09.2009, всего редактировалось 1 раз. |
Хм, вызов написан правильно. Значит там взаимодействие посложнее. Видать чем-то ещё обмениваются между собой. Рад был помочь
|
|
Новая тема Ответить | Страница 1 из 1 |
[ Сообщений: 13 ] |
Кто сейчас на конференции |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0 |
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения |