Ребята, я в тупике. Сидел, 3 вечера ковырялся в лончере и ничего интересного не нашел. А хотелось бы сделать менеджер окон полноценный :)
Тут наверняка есть более опытные в плане дебага и Themida люди, подскажите чего-нибудь, плз?
Что расковырял:
Лончер отлично запускается дебаггером (OllyDbg) и дебажится прям вместе с запуском игры
Лончеру достаточно кукисов для того, чтобы залогинить перса. Печеньки хранятся в открытую в папке с лончером. На этом можно простенький авто-запускатель окон сделать, кстати, мб замусь.
Лончер делает CreateProcessW с набором параметров:
lpApplicationName = 0
lpCommandLine = &<строка запуска, с адресом и параметром про локаль, юникодная>
lpProcessAttributes = 0
LPSECURITY_ATTRIBUTES = 0
bInheritHandles = False
dwCreationFlags = 0x24 (CREATE_SUSPENDED | 0x20)
lpEnvironment = 0
lpCurrentDirectory = 0
lpStartupInfo = <структура, с указанным размером (0x44). Остальное нули>
lpProcessInformation = <указатель на нули>
После этого он разблокирует окно, которое вернулось в lpProcessInformation.hThread (никаких полезных операций между этими событиями нет)
Если остановиться тут, то игра запускается, но не логинится
Если заморозить все треды лончера кроме того, что запускает процесс - игра запускается
Затем крутит GetMessage-TranslateMessage-DispatchMessage
Если сделать ровно ту же последовательность действий из своего процесса - игра говорит, что хочет лончер :)
Лончер ничего не меняет в памяти процесса игры ни до разморозки треда, ни после.
Размораживает именно тот тред, который вернулся из CreateProcessW
Задачу залогиниться пока даже не ставил - открыть бы окно игры вообще =//
Собственно, какие у меня вопросы по этому счастью:
Как узнать, не лезет ли игра в память родительского процесса?
Что я пропустил в своих исследованиях, но на что стоит обратить внимание?
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
Под дебаггером брякай функции, которыми это может осуществляться. Или юзай какой-нибудь Api-монитор, чтобы упростить задачу.
Хотел ткнуть ответить, а ткнул спасибо. Ладно, лишним не будет.
Я все еще не могу подцепить дебаггер к самой игре, только к лончеру => проследить, что она делает не выходит :(
По крайней мере Ollydbg не ловит отдельный запущенный процесс, только треды
Хотел ткнуть ответить, а ткнул спасибо. Ладно, лишним не будет.
Я все еще не могу подцепить дебаггер к самой игре, только к лончеру => проследить, что она делает не выходит :(
По крайней мере Ollydbg не ловит отдельный запущенный процесс, только треды
да вигре все что угодно может проверяться, пиды родительского процесса, названия окон, так же через пайпы и шаред мемори может передаваться какая либо инфа.
да вигре все что угодно может проверяться, пиды родительского процесса, названия окон, так же через пайпы и шаред мемори может передаваться какая либо инфа.
Названия окон пробовал подсунуть
PID им там читать бестолку (его ОС определяет => полезной инфы в нем не должно быть). По крайней мере на сколько я знаю теорию
Пайпы - тоже мимо: игра создается со стандартным потоком ввода и переопределения потока нет. + после создания процесса игры, лончер никуда ничего не пишет.
Эзернет - аналогично, лончер ничего не пишет после создания игры, а до создания - нет листенера
Шаред мемори - собственно, возможно, в том и вопрос: как бы узнать об этом)
Я не пойму почему этот лаунчер такой слоупочный. После ввода пароля там полоса загрузки идет секунд 5, это из за украшательств на флеше или он что-то проверяет? Можно ли убрать анимацию?
Я не пойму почему этот лаунчер такой слоупочный. После ввода пароля там полоса загрузки идет секунд 5, это из за украшательств на флеше или он что-то проверяет? Можно ли убрать анимацию?
Весь интерфейс лончера, который ты видишь, сделан на флеше и качается с сайта. Саму ссылку даже могу скинуть вечером.
Или можешь сам посмотреть: в папке с лончером есть Properties, чтоль, файлик.. и в нем урл в самом начале :)
Я не оказываю услуги гаранта!
База данных кидал: blacklist.rf-cheats.ru
Обязательно проверяйте человека через чёрный список прежде чем совершать с ним сделку.
Многооконнку или что? Просто я сейчас посмотрел, там без шаманств прекрасно грузятся два окна. Или свой ланчер хочешь заделать?
Два окна загрузить не проблема (муторно туда-сюда лончер тыкать, но и это обойти можно)
Хочется свой лончер сделать, чтобы:
1) Можно было пустить через разные proxy и с разным hwid-ом
2) Не грузить этот ужасающе долгий дефолтный
3) Таки иметь менеджер, который надежно знает, какие акки уже запущены и по даблклику умеет между ними переключаться/загружать новый
Да и вообще разобраться хочется: впервые решился попробовать что-то расковырять :)