Вернуться   CoderX :: Forums > Основные форумы > Курилка
Войти через OpenID

Курилка Флудим и шутим тут!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 30.07.2009, 22:09   #1
Пользователь
 
Аватар для mOBSCENE
 
Регистрация: 07.01.2008
Сообщений: 39
Сказал Спасибо: 11
Имеет 3 спасибок в 3 сообщенях
mOBSCENE
Печаль L2Walker NoVerify

Кто нибудь отучивал волкер от верификации?
Я решил попробовать сделать как в WSS но чего то не хватает, не пойму чего.

Для волкера 10.9.1 я взял из patcher.ini (WSS) запись:
[L2Walker 10.9.1]
Offset1=$004168CA
Offset2=$00626B54


По адресу Offset1 находится:
Код:
004168C0  |.  B8 60806100   MOV EAX,618060
004168C5  |.  E8 F6F40100   CALL 00435DC0                            ;  L2Walker.00435DC0
004168CA  |.  83F8 01       CMP EAX,1
004168CD  |.  75 22         JNZ SHORT 004168F1                       ;  L2Walker.004168F1
004168CF  |.  C783 84000000>MOV DWORD PTR DS:[EBX+84],3
Тут я понял патчить нужно так:
Код:
004168C0  |.  B8 60806100   MOV EAX,618060
004168C5  |.  E8 F6F40100   CALL 00435DC0                            ;  L2Walker.00435DC0
004168CA      B8 01000000   MOV EAX,1
004168CF  |.  C783 84000000>MOV DWORD PTR DS:[EBX+84],3
Или как делал xkor для WCorrector:
Код:
004168C0  |.  B8 60806100   MOV EAX,618060
004168C5  |.  E8 F6F40100   CALL 00435DC0                            ;  L2Walker.00435DC0
004168CA      B0 01         MOV AL,1
004168CC      90            NOP
004168CD      90            NOP
004168CE      90            NOP
004168CF  |.  C783 84000000>MOV DWORD PTR DS:[EBX+84],3
По адресу Offset2 находится нечто похожее на структуру для:
delphi Код:
DWORD(Pointer(Offset2)^) := DWORD(inet_addr(PAnsiChar(LoginServerIP))); //LoginServerIP:String WORD(Pointer(Integer(Offset2)+4)^) := WORD(LoginServerPort); //LoginServerPort:Integer WORD(Pointer(Integer(Offset2)+8)^) := WORD(ProtocolVersion); //ProtocolVersion:Integer  
Извиняюсь за код выше, по другому не дочухал как можно оформить.

Вот для наглядности этот же Offset2:
00626B54 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 - LoginServerIP
00 00 - LoginServerPort
00 00 - ProtocolVersion

Не ясно, что ему не хватает, бот ловит первый пакет, успешно его расшифровывает, после короткое время тупит и высыпает 3 ошибки без деталей и благополучно дохнет...
Кто может делал, что то подобное, может знает что ему не хватает то.(
__________________
Блекджек же без шлюх практически безопасен.
mOBSCENE вне форума   Ответить с цитированием
Старый 03.08.2009, 16:24   #2
Admin!
 
Аватар для xkor
 
Регистрация: 04.08.2007
Сообщений: 2,360
Сказал Спасибо: 113
Имеет 1,566 спасибок в 651 сообщенях
xkor на пути к лучшему
По умолчанию

mOBSCENE, а ты думаешь WSS или мой корректор валкера только патчат чтобы он нормально коннектился?)
от патча отключается верификация, но вместе с ней еще что то отвечающее за шифрование, в результате бот то ли вообще разучивается авторизоваться по ревизии с РСА то ли хз как этот вид авторизации меняется, а вот старый тип авторизации в общем то не сильно меняется, просто пакеты шифруются не только блоуфишем (кстати ключ если не изменяет память используется как при авторизации по РСА), но и под ним еще XOR'ом, как первый пакет от сервера при РСА авторизации, но тут валкер ожидает ВСЕ пакеты с ксором и сам выдаёт тоже с ним.., короче надо перешифровывать все пакеты чтобы сервак понял бота и наоборот)
__________________
Я здесь практически не появляюсь!, Skype - ikskor
xkor вне форума   Ответить с цитированием
Старый 16.09.2009, 20:15   #3
Пользователь
 
Аватар для mOBSCENE
 
Регистрация: 07.01.2008
Сообщений: 39
Сказал Спасибо: 11
Имеет 3 спасибок в 3 сообщенях
mOBSCENE
По умолчанию

Цитата:
Сообщение от xkor Посмотреть сообщение
mOBSCENE, а ты думаешь WSS или мой корректор валкера только патчат чтобы он нормально коннектился?)
Было такое мнение..)

Цитата:
Сообщение от xkor Посмотреть сообщение
от патча отключается верификация, но вместе с ней еще что то отвечающее за шифрование, в результате бот то ли вообще разучивается авторизоваться по ревизии с РСА то ли хз как этот вид авторизации меняется, а вот старый тип авторизации в общем то не сильно меняется, просто пакеты шифруются не только блоуфишем (кстати ключ если не изменяет память используется как при авторизации по РСА), но и под ним еще XOR'ом, как первый пакет от сервера при РСА авторизации, но тут валкер ожидает ВСЕ пакеты с ксором и сам выдаёт тоже с ним.., короче надо перешифровывать все пакеты чтобы сервак понял бота и наоборот)
На самом деле все оказывается повеселей блин.(

>>но и под ним еще XOR'ом, как первый пакет от сервера при РСА авторизации

А при первом пакете от сервера он должен быть 2 раза XOR'ом зашифрован под BF ?

Кстати не у кого не завалялась та сама функция что по XOR зашифровывает? а то в наличии есть только для расшифровки "AntiXOR" зовут вроде в la2_client_emu ..)
__________________
Блекджек же без шлюх практически безопасен.
mOBSCENE вне форума   Ответить с цитированием
Старый 16.09.2009, 20:34   #4
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

(111 xor 222) xor 222 = 111
не так ли ?
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 17.09.2009, 06:00   #5
Рыцарь
 
Аватар для dmitry501
 
Регистрация: 01.10.2007
Сообщений: 293
Сказал Спасибо: 42
Имеет 50 спасибок в 37 сообщенях
dmitry501 пока неопределено
По умолчанию

Вот держи
delphi Код:
function TPacket.doXORdec(data: PChar; const data_len: cardinal): cardinal; var   pos: integer;   edx, ecx: cardinal; begin   ecx := PCardinal(@data[data_len - 8])^;   pos := data_len - 12;   while pos >= 4 do begin     edx := PCardinal(@data[pos])^;     edx := ecx xor edx;     ecx := ecx - edx;     PCardinal(@data[pos])^ := edx;     dec(pos, 4);   end;   Result:=ecx; end; function TPacket.doXORenc(data: PChar; const data_len, key: cardinal): cardinal; var   pos, edx, ecx: cardinal; begin   ecx := PCardinal(@key)^;   pos := 4;   while pos < data_len - 8 do begin     edx := PCardinal(@data[pos])^;     ecx := ecx + edx;     edx := edx xor ecx;     PCardinal(@data[pos])^ := edx;     inc(pos, 4);   end;   PCardinal(@data[pos])^ := ecx; // вписываем новый ключ   Result := ecx; end;

(с) Sh00rGo wss 2.7

Последний раз редактировалось dmitry501, 17.09.2009 в 06:03.
dmitry501 вне форума   Ответить с цитированием
За это сообщение dmitry501 нажился 2 спасибками от:
Ответ

  CoderX :: Forums > Основные форумы > Курилка



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 07:14.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!