Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
TL.exe
#1
Доброго времени суток.
Кто-нибудь разбирался с TL.exe? Не могу информацию по нему найти.
Сам поковырялся и выяснил только, что:
1. Чтобы не было ошибки "Can't find SSNL", надо у лаунчера присваивать класс "EME.LauncherWnd" и TL запускать через ShellExecute с хэндлом самого лаунчера, а не с NULL.
2. Потом TL.exe передает лаунчеру сообщения, предварительно выяснив его хэндл.

По ходу сообщения следующего содержания:
Hello!! = 0x0DBADB0A
slsurl = 2
gamestr = 3
last_svr = 5
char_cnt = 6
csPopup = 0
ticket = 8

там ещё списочек, но с ними надо ковыряться.
Вопрос то в следующем: передает он через
Код:
    COPYDATASTRUCT cs;
    cs.dwData = 0X0DBADB0A;
    cs.cbData = длина команды учитывая ноль в конце;
    cs.lpData = ссыль на команду;

    HRESULT rs1 = SendMessage(FindWindow("EME.LauncherWnd", NULL), WM_COPYDATA, (WPARAM)hMain, (LPARAM)&cs);
    if (rs1 != NULL)
    {
        MessageBox(NULL, "ok", ":)", MB_OK);
    }
но как получает ответ. Пока не понятно.

p.s.: клиент USA офф.
Ответ
#2
Все общение идет через WM_COPY_DATA. Получаем winapi'шным GetMessage/PeekMessage отправляем по SendMessage.

http://msdn.microsoft.com/en-us/library/...85%29.aspx

Там около десятка MessageId с различным назначением. После того как они влепили встроенный webview в игре добавились функции проксирования http запросов на сервер через launcher (не смотрел детально).
Правильно эмулируя общение можно делать кастомный лаунчер на любой вкус и цвет (немного допилив напильником под нужный клиент)

Примеры:
http://puu.sh/cjTIk.jpg
http://puu.sh/cjUyO.jpg
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Ответ
#3
А есть более подробный разбор общения? Или сорцы лаунчера. На ragezone может лежит, но при регистрации или восстановлении пароля не приходит почта. Не могу посмотреть, что там уже сделали.

Добавлено через 2 часа 57 минут
Разобрался с ответами. Просто запросы передавал не правильно. Пока отловил следующие:
Код:
Send: 0x0DBADB0A Hello!!
Recv: cb:8   dw: dbadb0a  lp : 43c6f0  wp : f0556 str : Hello!!

Send: 0x00000002 slsurl
Recv: cb:34   dw:2  lp:c8c970  wp:f0556 str:[url]http://sls.service.enmasse.com:8080/servers/list.en[/url]

Send: 0x00000003 gamestr
cb:11d   dw:3  lp:47c6b0  wp:f0556 str:{"last_connected_server_id":4009,"chars_per_server":{},"account_bits":"0x00000000","ticket":"символы","result-message":"OK","result-code":200,"user_permission":0,"game_account_name":"TERA","access_level":0,"master_account_name":"JDKTHYJJ3Y"}

Send: 0x00000005 last_svr
пусто

Send: 0x00000006 char_cnt
cb:ab   dw:6  lp:69e030  wp:f0556 str:{"chars_per_server":{},"account_bits":"0x00000000","result-message":"OK","result-code":200,"game_account_name":"TERA","access_level":0,"master_account_name":"букавки"}

Send: 0x00000008 ticket
cb:7c   dw:8  lp:b8e010  wp:f0556 str:{"result-message":"OK","result-code":200,"ticket":"символы","user_permission":0}


Send: 0x00000000 endPopup(%s)
273 - похоже на сбой при передаче.
Ответ
#4
Нифига понять не могу. Все останавливается на slsurl и ни туды, ни сюды.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)