Вернуться   CoderX :: Forums > Lineage II > L2PacketHack
Войти через OpenID

L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Обсуждение багов Lineage ЗАПРЕЩЕНО!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 30.03.2009, 19:42   #1
Новичок
 
Регистрация: 28.12.2008
Сообщений: 22
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
kargo пока неопределено
По умолчанию AzureL2

Hello guys, i just tried run l2px on azurel2, everything works well, but.. decrypt packets is wrong, i mean first char of evry packets is fine, but the rest not.

I think (i'm not sure) that azure have modified decrypt/encrypt system, if i'm not wrong its modified XOR key, i tried find it for 4 days, but i didn't. I dont know asm, if i know i'll debugg theirs dll's. Can anybody tell me, what can it be ? My theory about XOR is possible ? Thx for any answers

P.S - http://www.azuregaming.net/

Russian - Translated by Translator :P

Этот текст был переведен online переводчиком и я надеюсь он правильно

Привет парни, я только пробовал управляемый l2px на azurel2, все работает хорошо, но .. расшифровывают пакеты, неправильно, я подразумеваю, что первая случайная работа evry пакетов прекрасна, но остальные нет.

Я думаю (я не уверен), что голубой изменили, расшифровывают/зашифруют систему, если я не неправилен ее измененный ключ XOR, я пробовал, находят это в течение 4 дней, но я не сделал. Я не знаю asm, если я знаю, что я буду debugg их dll's. Любой может сказать мне, каково это может быть? Моя теория о XOR возможна? Thx для любых ответов

P.S - http: // www.azuregaming.net/


Добавлено через 4 часа 28 минут
Anyone know how to obtain XOR key from known Pck ?

For eg.

Любой знает, как получить ключ XOR от известного Pck?

Например


Clean pck atfer BF : Чистите pck после BlowFish
Код:
E8 55 F5 85 38 7B 82 5F 8F D6 2F A3 FB FD 5C
I got pck after XOR : Pck после XOR со стандартным ключом
Код:
38 C3 ED 75 1C 2F AD 5A 00 27 B4 89 F9 6A F5
It should be : Это должно быть
Код:
38 3A 00 29 00 3A 00 29 00 00 00 00 00 00 00
And now, how to find this XOR Key?

For the first time i was trying sth like this :


И теперь, как находить этот Ключ XOR?

Впервые я пробовал кое-что как это:


Код:
if not FirstPckWas then begin  //Enter World
    txt := '';
      for i:=0 to SizeC do txt := txt + inttohex(ord(PakiecikC[i]), 2)+' ';
      l2form.Memo9.Lines.Add('PakiecikC, size :'+inttostr(SizeC)+' = '+txt);

    AfterCharSel := false;
          for z := 0 to 15 do Pakiecik[z] := Thread[id].xorC.GKeyS[z];
          for z := 0 to 15 do Thread[id].xorC.GKeyS[z] := $00;
          for z := 0 to 15 do begin
            v := 15-z;            
            for y:=0 to 255 do begin
              for x:=0 to 15 do begin
                i := 15 -x;
                if v > x then Thread[id].xorC.GKeyS[i] := KeyC[i];
              end;
              for x:=0 to SizeC do PckTmpC[x] := PakiecikC[x];
              Thread[id].xorC.GKeyS[v] := y;
              Thread[id].xorC.GKeyR[v] := y;
              EnterCriticalSection(_cs);
              Thread[id].xorC.DecryptGP(PckTmpC, SizeC);
              LeaveCriticalSection(_cs);
             (* if v = 15 then
                if ord(PckTmpC[16]) = $00 then begin
                  KeyC[15] := y;
                  break;
                end;  *)
              if v = 14 then
                if ord(PckTmpC[14]) = $00 then begin
                  KeyC[14] := y;
                  break;
                end;
              if v = 13 then
                if ord(PckTmpC[13]) = $00 then begin
                  KeyC[13] := y;
                  break;
                end;
              if v = 12 then
                if ord(PckTmpC[12]) = $00 then begin
                  KeyC[12] := y;
                  break;
                end;
              if v = 11 then
                if ord(PckTmpC[11]) = $00 then begin
                  KeyC[11] := y;
                  break;
                end;
              if v = 10 then
                if ord(PckTmpC[10]) = $00 then begin
                  KeyC[10] := y;
                  break;
                end;
              if v = 9 then
                if ord(PckTmpC[9]) = $00 then begin
                  KeyC[9] := y;
                  break;
                end;
              if v = 8 then
                if ord(PckTmpC[8]) = $00 then begin
                  KeyC[8] := y;
                  break;
                end;
              if v = 7 then
                if ord(PckTmpC[7]) = $29 then begin
                  KeyC[7] := y;
                  break;
                end;
              if v = 6 then
                if ord(PckTmpC[6]) = $00 then begin
                  KeyC[6] := y;
                  break;
                end;
              if v = 5 then
                if ord(PckTmpC[5]) = $3A then begin
                  KeyC[5] := y;
                  break;
                end;
              if v = 4 then
                if ord(PckTmpC[4]) = $00 then begin
                  KeyC[4] := y;
                  break;
                end;
              if v = 3 then
                if ord(PckTmpC[3]) = $29 then begin
                  KeyC[3] := y;
                  break;
                end;
              if v = 2 then
                if ord(PckTmpC[2]) = $00 then begin
                  KeyC[2] := y;
                  break;
                end;
              if v = 1 then
                if ord(PckTmpC[1]) = $3A then begin
                  KeyC[1] := y;
                  break;
                end;

              if v = 0 then
              if ord(PckTmpC[0]) = $38 then begin
                  KeyC[0] := y;
              l2form.memo9.lines.add('Klucz[0] = ' + inttohex(Thread[id].xorC.GKeyS[v],2));
              txt := '';
                for i:=0 to SizeC do txt := txt + inttohex(ord(PckTmpC[i]), 2)+' ';
                l2form.Memo9.Lines.Add('PakiecikC 0 - 15 ['+inttostr(v)+'][ '+inttostr(y)+' ] : '+txt);
              txt := '';
                for i:=0 to 15 do txt := txt + inttohex(KeyC[i], 2) + ' ';
                l2form.Memo9.Lines.Add('Klucz XoR : '+txt);
              txt := '';
                for i:=0 to 15 do txt := txt + inttohex(Thread[id].xorC.GKeyS[i], 2) + ' ';
                l2form.Memo9.Lines.Add('Serious Klucz XoR : '+txt);
                break;
              end;
            end;
          end;

          for z := 0 to 15 do begin
            Thread[id].xorC.GKeyS[z] := Pakiecik[z];
            Thread[id].xorC.GKeyR[z] := Pakiecik[z];
          end;
          for z := 0 to 15 do Thread[id].xorC.GKeyS[z] := $00;
          
          for z := 0 to 15 do begin
            for y:=0 to 255 do begin
             v := 255-y;
              for x:=0 to SizeC do PckTmpC[x] := PakiecikC[x];
              Thread[id].xorC.GKeyS[z] := v;
              Thread[id].xorC.GKeyR[z] := v;
              EnterCriticalSection(_cs);
              Thread[id].xorC.DecryptGP(PckTmpC, SizeC);
              LeaveCriticalSection(_cs);
              if z = 15 then
                if ord(PckTmpC[15]) = $00 then break;
              if z = 14 then
                if ord(PckTmpC[14]) = $00 then break;
              if z = 13 then
                if ord(PckTmpC[13]) = $00 then break;
              if z = 12 then
                if ord(PckTmpC[12]) = $00 then break;
              if z = 11 then
                if ord(PckTmpC[11]) = $00 then break;
              if z = 10 then
                if ord(PckTmpC[10]) = $00 then break;
              if z = 9 then
                if ord(PckTmpC[9]) = $00 then break;
              if z = 8 then
                if ord(PckTmpC[8]) = $00 then break;
              if z = 7 then
                if ord(PckTmpC[7]) = $29 then break;
              if z = 6 then
                if ord(PckTmpC[6]) = $00 then break;
              if z = 5 then
                if ord(PckTmpC[5]) = $3A then break;
              if z = 4 then
                if ord(PckTmpC[4]) = $00 then break;
              if z = 3 then
                if ord(PckTmpC[3]) = $29 then break;
              if z = 2 then
                if ord(PckTmpC[2]) = $00 then break;
              if z = 1 then
                if ord(PckTmpC[1]) = $3A then break;

              if z = 0 then
              if ord(PckTmpC[0]) = $38 then begin
              txt := '';
                for i:=0 to SizeC do txt := txt + inttohex(ord(PckTmpC[i]), 2)+' ';
                l2form.Memo9.Lines.Add('PakiecikC 15 - 0 ['+inttostr(v)+'][ '+inttostr(y)+' ] : '+txt);
              txt := '';
                for i:=0 to 15 do txt := txt + inttohex(Thread[id].xorC.GKeyS[i], 2) + ' ';
                l2form.Memo9.Lines.Add('Klucz XoR : '+txt);
              end;
            end;
          end;
          for z := 0 to 15 do begin
            Thread[id].xorC.GKeyS[z] := Pakiecik[z];
            Thread[id].xorC.GKeyR[z] := Pakiecik[z];
          end;
      FirstPckWas := true;
      WasWrite := false;
    end;
When i tried it on server without protection etc. then i got correct parts of Key ( but just parts ), now i dont know what i'm doing wrong, or this procedure is not good ?

Когда я пробовал это на сервере без защиты и т.д. тогда, я получил правильные части Ключа (но только части), теперь я не знаю то, что я делаю неправильно, или эта процедура не хороша?

Последний раз редактировалось kargo, 30.03.2009 в 23:40. Причина: Добавлено сообщение
kargo вне форума   Ответить с цитированием
Старый 31.03.2009, 11:01   #2
Местный
 
Регистрация: 18.02.2008
Сообщений: 141
Сказал Спасибо: 16
Имеет 66 спасибок в 30 сообщенях
ratvier
По умолчанию

Цитата:
Сообщение от kargo Посмотреть сообщение
Clean pck atfer BF
Here u say about game server packet, but BlowFish encryption uses only in communication with login server. O_o

So, as I understand is it c5 server? Do u try use l2phx option "Обход смены XOR ключа"?
ratvier вне форума   Ответить с цитированием
Старый 31.03.2009, 17:34   #3
Новичок
 
Регистрация: 28.12.2008
Сообщений: 22
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
kargo пока неопределено
По умолчанию

Цитата:
Сообщение от ratvier Посмотреть сообщение
So, as I understand is it c5 server? Do u try use l2phx option "Обход смены XOR ключа"?
Yes i'm using this option, but it's not normal server, they have good protection thats why i'm talking about changing xor or sth like this. I tested it on normal c5 server and it works fine, but not on Azure.
kargo вне форума   Ответить с цитированием
Старый 31.03.2009, 19:21   #4
Местный
 
Регистрация: 18.02.2008
Сообщений: 141
Сказал Спасибо: 16
Имеет 66 спасибок в 30 сообщенях
ratvier
По умолчанию

kargo, see at this subforum:
http://coderx.ru/forumdisplay.php?f=31
Here discuss similar problems.
ratvier вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack


Опции темы
Опции просмотра

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

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


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

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

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