Вернуться   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 вне форума   Ответить с цитированием
 

  CoderX :: Forums > Lineage II > L2PacketHack



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

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


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

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

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