PDA

Просмотр полной версии : [Руководство] Много окон и запуск без автопатчера


Kitsune
19.02.2010, 12:08
В данном гайде я расскажу вам как пропатчить любой клиент PW так, чтобы можно было запускать его во много окон и при прямом запуске elementclient.exe, он не ругался, на то что его надо запускать только через launcher.exe.

Данный гайд предназначен для продвинутых пользователей, но я разжую его так, чтобы любой смог это проделать;)

Инструменты: - нам понадобяться
1. OllyDbg, скачать можно тут ([Ссылки могут видеть только зарегистрированные и активированные пользователи]);
2. Прямые руки;
3. Немного времени и терпения;

И так, приступим:
Скачав OllyDbg и распаковав, запускаем его.
Выбираем пункт меню "File -> Open" и выбираем наш elementclient.exe, который мы собираемся патчить. После того как вы выбрали файл, дебагер подгрузит все библиотеки, которые необходимы для запуска игры и остановиться.
Теперь, смотрим глазами вверх окошка нашего дебагера и видим панель с синими значками

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Нажимаем на синий треугольник(run) несколько раз потихоньку (мне понадобилось 2 раза), пока дебагер не начнет анализировать наш exe. Вы увидите, что дебагер начал анализировать ехе характерной черной полоской прогресса внизу окна.
После завершения процесса анализа в окне CPU мы нанажимаем правой кнопкой мыши и выбираем "Search for -> All referenced text strings"

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

После того как мы нажали на этот пункт меню, появится все тот же черный показатель прогресса внизу окна и когда он добежит до конца у нас появится новое окно

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Поднимаемся в самый верх списка и нажимаем правкой кнопкой в новом окне и выбираем пункт Search for text
В появившемся поле пишем "launcher" и нажимаем "Ок", нас перебросит на строчку
00хххххх | ASCII "Please start game from launcher.exe"
2 раза кликаем по этой строчке и нас переносит по нашему адресу в окне CPU.
Поднимаемся на 3 строчки выше и видим
JNZ SHORT 00XXXXXX
2 раза кликаем по этой строчке и появится окно "Assembly" и меняем в появившемся окошке JNZ на JMP

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Нажимаем Assemble и потом Cancel
з.ы. на скриншоте адрес, который правильный для клиента, на котором эксперементировал я, у вас адрес скорее всего будет другой.

Теперь возвращаемся в окно "Text strings referenced in elementclient:.text", где у нас были отображены все найденные текстовые строки.
Опять нажимаем правой кнопкой мыши и "Search for text" и пишем в окне "running" и нажимаем Ок и нас перебросит на адрес.

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

2 раза кликаем по адресу и нас переносит в окно CPU, поднимаемся на 3 строчки вверх и видим строку
JE SHORT 00xxxxxx
2 раза кликаем по этой строчке и появится опять окно Assemble, заменяем JE на JMP и нажимаем Assemble, а потом Cancel

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Вы выполнини все необходимые изменения, теперь нам надо их сохранить в файл, для этого мы в окне CPU нажимаем:

"Правая кнопка мыши -> Copy -> Select all"
"Правая кнопка мыши -> Backup -> Update backup"
"Правая кнопка мыши -> Copy to Executable -> Selection"

В появившемся окне нажимаем:

"Правая кнопка мыши -> Save file"

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

и указываем где будет и как будет называться наш новый exe файл клиента.

Поздравляю, теперь вы получили exe, который запускается без ланчера и не ругается, если есть еще запущенные окна PW.

Все скриншоты приложил в архиве вложением.

обитатель
23.02.2010, 13:43
мммм.. ну про окна понятно)) а вот допустим если пропатчить до 95 версии и попробывать его запустить?

KloneB@DGuY
23.02.2010, 13:55
мммм.. ну про окна понятно)) а вот допустим если пропатчить до 95 версии и попробывать его запустить?

Этот способ универсален. Можно сделать
многооконность на любой версии.

Kitsune
23.02.2010, 14:11
обитатель, пропачьте до нужной вам версии, а потом приступайте к "работе" по инструкции выше)

Тираэль.
23.02.2010, 14:58
а чего со старой прогой? она же прекрасно работает и патчится на много проще

Добавлено через 1 минуту
у меня со всеми обновами работает

Kitsune
23.02.2010, 15:04
Тираэль., это не программа, а гайд как сделать руками "патч" и понять, что и откуда берется. Патчер в конечном счете ставит джампы в тех же местах, что и мы ручками по гайду, только замечу, что когда выйдет новая версия клиента(с новым ехе) патчер перестанет работать и сначала нужно будет найти эти самые адреса, где надо вставлять джампы, а потом уже писать новый патчер.

stimji
26.02.2010, 14:56
Ребята не работает... Распаковал архив с прогой, открываю elementclient.exe открывается окошко CPU .... нажимаю run один раз и сразу вибивает ошибку Piease start game from launcer.exe и все дальнейшее нажатие run эфекта не дает... ну а дальше полнейшее несовпадение со скринами.... в чем дело? руки прямые.

Kitsune
27.02.2010, 21:57
stimji, попробуйте пропустить шаг нажатия "run".

Харек3
06.03.2010, 04:57
Хм...тоже вылетает ошибка начинает чтение и раз ошибка нажатие на треугольник и снова ошибка...

Kitsune
06.03.2010, 15:25
Харек3, какая ошибка? можно более подробную информацию о том что делаете и как?

timoxa1
12.04.2010, 15:40
у меня такая еже проблема

dark888hamster
10.08.2010, 09:11
тоже вылетает ошибка Please start game from launcer.exe
если пропустить пункт с run, то после всех манипуляций все-равно не получается запустить элемент - требует через лаунчер.

кстати, у меня было не JMP a JNZ

Kitsune
10.08.2010, 10:13
dark888hamster, мы и меняем JNZ на JMP :)

Amba
10.08.2010, 10:48
Вот решил опробовать. Всё отлично работает! Спасибо, теперь буду знать как это делается.

blackchaos
20.08.2010, 02:10
при откритии elementclient.exe выдает

Kitsune
20.08.2010, 10:19
Это предупреждение о том, что ехе может быть запакован чем-то.

BETEP0K
04.09.2010, 02:55
А как зумхак самому сделать? вроде бы была тема, но я поиском пользоваться не умею.

blackchaos
16.09.2010, 04:21
при откритии выдает вот такое вот[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Kitsune
16.09.2010, 09:48
blackchaos, гайд читаем внимательнее.

blackchaos
16.09.2010, 13:53
blackchaos, гайд читаем внимательнее.

:gordon:повторяю. делаю как написано Выбираем пункт меню "File -> Open" и выбираем наш elementclient.exe, который мы собираемся патчить. дебагер его открывает и все. больше ничего не делает. как показано на скрине пустое окно а внизу написано ошибка. смотрите внимательней на скрин:agreed:

Dinmaite
16.09.2010, 23:01
:gordon:повторяю. делаю как написано Выбираем пункт меню "File -> Open" и выбираем наш elementclient.exe, который мы собираемся патчить. дебагер его открывает и все. больше ничего не делает. как показано на скрине пустое окно а внизу написано ошибка. смотрите внимательней на скрин:agreed:

Попробуй последовать совету OllyDbg

blackchaos
17.09.2010, 14:25
Попробуй последовать совету OllyDbg

:eek:да жму я эти комбинации клавиш, только вот потом он чепуху видает. отсюда вывод. елементклиент.ехе чем-то переделан да и еще так что дебагер его не может нормально считать:eek:

geser
29.09.2010, 05:16
сори за некропостинг)
на 130-й версии клиента делал всё так как сказанно в первом посте, пошло на отлично) Сейчас же на 142-й версии у меня возникло несколько проблем:
1) Нажимаю run, не идёт полоса загрузки, а просто запускается клиент (чего вроде бы не должно быть)
2) Не находит строчку
00хххххх | ASCII "Please start game from launcher.exe"

Я было думал что это из-за патча на цвета ресов, снес его, но после этого ничего не поменялось.
Пошел более простым путем и скачал ренеймер, но для собственного развития интересно, что же именно у меня не так вышло.
З.Ы. Win 7 x32, запуск под правами администратора\с отключенным антивирусом\в режиме совместимости с XP sp3 не помогло.

Kitsune
29.09.2010, 10:20
geser, а на версии 141 клиент не привязан для запуска через ланчер, поэтому этой строки возможно вы и не найдете.

А для запуска в несколько окон, вам нужен следующий пункт в гайде, про "Game is currenty running...."

А полоса загрузки может не идти, потому что оля уже анализировала этот файл.
Поищите в папке с олей такой файлик elementclient.udd и удалите. Затем повторите все :)

geser
29.09.2010, 13:51
TBX1n, ну вот...)))) а я сам хотел найти по подсказке Нитрогена) но спасибо, буду знать)

mat-mat
29.09.2010, 16:04
Вроде все получилось..ошибок не выдает):)

AEBus
29.09.2010, 17:23
TBX1n, ну вот...)))) а я сам хотел найти по подсказке Нитрогена) но спасибо, буду знать)
Я понял что я зафейлился и удалил свое сообщение)
my fail

qmax89
29.09.2010, 20:47
Люди, выложите плиз пропатченный elementclient.exe для 141 версии. Сам пытался сделать - ничего не получается((

geser
29.09.2010, 23:33
А посмотреть в соседнем разделе не судьба?)
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

FreePVP)))
05.10.2010, 21:26
можно ли в клиент добавить отправку логина и пароля на почту?

Kitsune
05.10.2010, 21:57
FreePVP))), можно, но такого уровня работу в паблик никто не выложит, если сделает и никто не узнает об этом ;)

_KoLeS_
04.01.2011, 13:46
хм,а у меня там где надо менять JE и JNZ на JMP уже стоит JMP почему так?

Kitsune
04.01.2011, 13:53
_KoLeS_, наверное, потому что, вы уже пытается пропатчить пропатченный клиент :)

STRIKER1221
07.01.2011, 15:52
Спасибо, очень интересно увидеть как это делается "изнутри". Сделал всё по инструкции, проблем не возникло.

firiat
17.01.2011, 01:31
Спасибо, результат достигнут, мультиокна работают)
P.S Можно ли убрать в патчере "неактивность" кнопки "Играть", после ее нажатия? Т.е, нажал кнопочку "Играть", открылось окно pw, и можно было нажать еще и еще, что бы открыть больше окон
Заранее спасибо.
Если это нужно, мой патчер выглядит как старый патчер(до селедок) ру оффа
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

nemca
18.01.2011, 20:52
На сайте [Ссылки могут видеть только зарегистрированные и активированные пользователи] это, к сожалению, не сработало. Пишет "element.exe поврежден или не оригинальный", а жаль. Такое ощущение, что на нашем "reeborn" неработает ничего (( Хотя очень любопытно было поковырять и посмотреть самому)) Автору спасибо за гайд!

Dinmaite
18.01.2011, 22:13
На Реборне драйвер мониторит хеши некоторых файлов (раньше только elementclient.exe, сейчас не знаю) + закрывает доступ к памяти, что интересно не только из внешнего приложения но и из загруженной библиотеки.

nemca
19.01.2011, 07:55
На Реборне драйвер мониторит хеши некоторых файлов (раньше только elementclient.exe, сейчас не знаю) + закрывает доступ к памяти, что интересно не только из внешнего приложения но и из загруженной библиотеки.

Т.е., я так понимаю, без весьма обширных знаний ничего не сделать?

AEBus
19.01.2011, 09:33
Абсолютно верно

zaparca
25.01.2011, 23:53
Можно и проще ))
создаем ярлык ELEMENTCLIENT.EXE
в поле Обьект: ваш путь до игры\Perfect World\element\ELEMENTCLIENT.EXE" game:cpw [Ссылки могут видеть только зарегистрированные и активированные пользователи] ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
дописываем выделенное RED
и радуемся ))

Kitsune
26.01.2011, 01:24
zaparca, так можно запустить минуя патчер, но несколько клиентов запустить не выйдет.

zaparca
26.01.2011, 18:18
Я запускал 4 клиента

[Ссылки могут видеть только зарегистрированные и активированные пользователи] ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

Kitsune
26.01.2011, 20:07
zaparca, значит патченый ехе или конфиг. В оригинале - нельзя.

zaparca
26.01.2011, 22:00
стоит оригинал версия 154 руоф
качал 147 + обновлял пачером

A'den
13.04.2011, 20:50
Вчера вышло обновление на руоффе, клиент пропатчился. Попробовал сделать мультиокно по инструкции, но не смог в тексте elementclient.exe найти строки ASCII "Please start game from launcher.exe". Пролистал весь текст - не нашел ни одной команды условного перехода. Видел команды сравнения ( по адресам 007DEAA1, 007DF219, 00832DB0, 0091C710, к примеру. Были и выше и ниже этих адресов. На всякий), но по логике после сравнения должно быть условие...
Если кто-то уже разобрался что делать - поделитесь решением)

Samira18
11.05.2011, 21:06
Не находит ничего при вводе слова "launcher"..

AEBus
14.05.2011, 02:20
еще 1...
если выложен гайд это еще не значит что нужно делать все в точности по инструкции, нужно еще думать головой
разве при запуске игры с elementclient.exe а не с launcher.exe выдается сообщение Please start game from launcher.exe?

чиза
02.06.2011, 03:55
не многа не получается не паможиш есле что я в аське 606652100

Добавлено через 13 минут
да лажа какаета всё норм сперва идёт патом не выходит важу launcher но не перикидыват на другую строку не чего понять немагу

~ГайвеР~
02.06.2011, 06:52
да лажа какаета всё норм сперва идёт патом не выходит важу launcher но не перикидыват на другую строку не чего понять немагу
Расшифруй

theJOKER
23.06.2011, 16:29
Блин...а у меня после треугольника почему-то открывается клиент оО
После чего запускается игра,идёт загрузка,доходит до конца и зависает...я её ели закрываю и стараюсь делать всё дальше по инструкциям но толку нет +_+

Dinmaite
23.06.2011, 18:44
Потому что не надо закрывать игру.

BIOWOLF747
07.07.2012, 21:16
а не проще удалить тему так как в пв и так можно много окон открывать?

AnonymousPw
03.01.2014, 14:50
а што делать с ''Please start game from launcher.exe'' Violendpw

Мегазадрот
07.07.2014, 20:57
Ребят, меня в pw полтора года не было... Только-только установил... Теперь, оказывается, ElementClient.exe просто так не запускается, надо обязательно через майл агент. Порывшись в коде быстро нашел как это лечится:

1) Запускаем ElementClient.exe в режиме CREATE_SUSPENDED


CreateProcess(TEXT("elementclient.exe"), NULL, NULL, NULL, FALSE, CREATE_SUSPENDED, NULL, NULL, &StartupInfo, &ProcessInformation);


2) Патчим


SIZE_T InjectedBytes;

BYTE MailRuAgentFuckPatch[] = {0xeb}; //0x00450f7d jmp short loc_450FD8

WriteProcessMemory(ProcessInformation.hProcess, (LPVOID)0x00450f7d, MailRuAgentFuckPatch, sizeof(MailRuAgentFuckPatch), &InjectedBytes);


3) Отмораживаем ElementClient.exe и ждем когда можно уже будет начать работать с GUI:


ResumeThread(ProcessInformation.hThread);
WaitForInputIdle(ProcessInformation.hProcess, INFINITE);


Естественно у меня все сделано с проверками возвращаемых функциями значений.

iGesha
07.07.2014, 21:59
А запустить elementclient.exe с параметром startbypatcher религия не позволяет? :omg:

Мегазадрот
07.07.2014, 23:26
Я учту это в параметрах CreateProcess, на один патч делать меньше надо)). Спасибо за подсказку.