 |
Aion 3.0 + L2PHX - Общение и обсуждение Aion - События, информация, вопросы и ответы по Aion |
04.07.2012, 08:20
|
#16
|
|
|
|
Разведчик
|
 Регистрация: 24.02.2011
 Сообщений: 17
 Популярность: 34
 Сказал(а) спасибо: 2
Поблагодарили 15 раз(а) в 6 сообщениях
|
Re: Aion 3.0 + L2PHX
Информация к размышлению.
За последние два дня изучал алгоритм шифрации и вот что могу сказать:
Как это рабоатет:
1) Сервер посылает SM_KEY с ключом
2) Клиент на основе SM_KEY создает ключ дешифрации
3) Каждый пакет /шифруется этим ключом, при этом ключ каждый раз изменяется (вот как раз из-за этого идет "флуд" пакетов, т.е. все пакеты разные)
Функция дешифрования, описанная в первом посте, только формирует первичный ключ для дешифрования.
Код:
private boolean searchKey(byte raw[], com.aionemu.packetsamurai.protocol.protocoltree.PacketFamilly.packetDirection dir)
{
DataPacket packet = new DataPacket(raw, dir, 0L, protocol);
if(dir == com.aionemu.packetsamurai.protocol.protocoltree.PacketFamilly.packetDirection.serverPacket && "SM_KEY".equals(packet.getName()))
{
IntValuePart part = (IntValuePart)packet.getRootNode().getPartByName("key");
if(part == null)
{
PacketSamurai.getUserInterface().log("Check your protocol there is no part called 'key' which is required in packet 0x49 SM_KEY of the GS protocol.");
return false;
}
int key = part.getIntValue();
key -= 0x3ff2cc87;
int xor = 0xcd92e493;
for(int i = 1; i < 25; i++)
{
int chk = (int)(Math.pow(2D, i) - 1.0D) * 64;
if((~key & chk) != chk)
break;
xor ^= (int)Math.pow(2D, i + 6);
}
key ^= xor;
clientPacketkey = new byte[8];
clientPacketkey[0] = (byte)(key & 0xff);
clientPacketkey[1] = (byte)(key >> 8 & 0xff);
clientPacketkey[2] = (byte)(key >> 16 & 0xff);
clientPacketkey[3] = (byte)(key >> 24 & 0xff);
clientPacketkey[4] = -95;
clientPacketkey[5] = 108;
clientPacketkey[6] = 84;
clientPacketkey[7] = -121;
serverPacketkey = new byte[8];
System.arraycopy(clientPacketkey, 0, serverPacketkey, 0, 8);
return true;
} else
{
PacketSamurai.getUserInterface().log("No key found...");
return false;
}
}
Затем при дешифрации каждого пакета, этот ключ меняется по след. алгоритму
Код:
staticKey = "nKO/WctQ0AVLbpzfBkS6NevDYT8ourG5CRlmdjyJ72aswx4EPq1UgZhFMXH?3iI9".getBytes();
public void decode(byte raw[], byte key[])
{
int prev = raw[0];
raw[0] ^= key[0] & 0xff;
for(int i = 1; i < raw.length; i++)
{
int curr = raw[i] & 0xff;
raw[i] = (byte)(curr ^ staticKey[i & 0x3f] & 0xff ^ key[i & 7] & 0xff ^ prev);
prev = curr;
}
long old = ((long)key[0] & 255L) << 0 | ((long)key[1] & 255L) << 8 | ((long)key[2] & 255L) << 16 | ((long)key[3] & 255L) << 24 | ((long)key[4] & 255L) << 32 | ((long)key[5] & 255L) << 40 | ((long)key[6] & 255L) << 48 | ((long)key[7] & 255L) << 56;
old += raw.length;
key[0] = (byte)(int)(old >> 0 & 255L);
key[1] = (byte)(int)(old >> 8 & 255L);
key[2] = (byte)(int)(old >> 16 & 255L);
key[3] = (byte)(int)(old >> 24 & 255L);
key[4] = (byte)(int)(old >> 32 & 255L);
key[5] = (byte)(int)(old >> 40 & 255L);
key[6] = (byte)(int)(old >> 48 & 255L);
key[7] = (byte)(int)(old >> 56 & 255L);
}
Вот как реализовал эти функции я в newxor (пока что все равно не рабоатет  )
SM_KEY дешифрацция SM_KEY
Код:
procedure TXorCoding.InitKey(const XorKey; Interlude: Byte = 0);
var
mykey: UINT;
i: Integer;
chk: UINT;
myxor: UINT;
kkk: UINT;
begin
kkk := UINT(XorKey);
mykey := kkk - $3ff2cc87;
myxor := $cd92e493;
for i := 1 to 24 do
begin
chk := Round((Power(2,i)-1)*64);
if((not mykey and chk) <> chk) then break;
myxor := myxor xor Trunc(Power(2, i + 6));
end;
mykey := mykey xor myxor;
//Move(mykey,GKeyS[0], 4);
GKeyS[0] := byte(mykey and $ff);
GKeyS[1] := byte(mykey and 8 and $ff);
GKeyS[2] := byte(mykey shr 16 and $ff);
GKeyS[3] := byte(mykey shr 24 and $ff);
GKeyS[4] := $A1;
GKeyS[5] := $6C;
GKeyS[6] := $54;
GKeyS[7] := $87;
//Move(mykey,GKeyR[0], 4);
GKeyR[0] := byte(mykey and $ff);
GKeyR[1] := byte(mykey and 8 and $ff);
GKeyR[2] := byte(mykey shr 16 and $ff);
GKeyR[3] := byte(mykey shr 24 and $ff);
GKeyR[4] := $A1;
GKeyR[5] := $6C;
GKeyR[6] := $54;
GKeyR[7] := $87;
end;
Дешифрация пакетов
Код:
procedure TXorCoding.DecryptGP(var Data; var Size: Word);// дешифрование каждого пакета
var
i,k:integer;
prev: Byte;
curr: Byte;
old: LongInt;
pck:array[0..$FFFD] of Byte absolute Data;
staticKey: string;
begin
//server>>PreDecrypt>[DecryptGP]>(PH)>EncryptGP>PostEncrypt>>client
//for k:=size-1 downto 1 do
//pck[k]:=pck[k] xor GKeyR[k and keyLen] xor pck[k-1];
//if size<>0 then pck[0]:=pck[0] xor GKeyR[0];
// Inc(PLongWord(@GKeyR[keyLen-7])^,size);
staticKey := 'nKO/WctQ0AVLbpzfBkS6NevDYT8ourG5CRlmdjyJ72aswx4EPq1UgZhFMXH?3iI9';
prev := pck[0];
pck[0] := GkeyS[0] xor GkeyS[0] and $ff;
for i := 1 to Size-1 do begin
curr := pck[i] and $ff;
pck[i] := curr xor Ord(staticKey[i and $3f]) and $ff xor GkeyS[i and 7] and $ff xor prev;
prev := curr;
end;
//Move(GKeyS[0], old,8);
old := LongInt(GkeyS[0] and 255) shl 0
or LongInt(GkeyS[1] and 255) shl 8
or LongInt(GkeyS[2] and 255) shl 16
or LongInt(GkeyS[3] and 255) shl 24
or LongInt(GkeyS[4] and 255) shl 32
or LongInt(GkeyS[5] and 255) shl 8
or LongInt(GkeyS[6] and 255) shl 16
or LongInt(GkeyS[7] and 255) shl 24;
old := old + Size;
//Move(old,GKeyS[0], 8);
GkeyS[0] :=Byte(Integer( old shr 0 and 255));
GkeyS[1] := Byte(Integer( old shr 8 and 255));
GkeyS[2] := Byte(Integer( old shr 16 and 255));
GkeyS[3] := Byte(Integer( old shr 24 and 255));
GkeyS[4] := Byte(Integer( old shr 32 and 255));
GkeyS[5] := Byte(Integer( old shr 8 and 255));
GkeyS[6] := Byte(Integer( old shr 16 and 255));
GkeyS[7] := Byte(Integer( old shr 24 and 255));
end;
Просьба, тех кто с паскалем знаком, посмотреть код на наличие ошибок.
В пакетсамурае этот алгоритм работает, тестил на 3.0.0.4. Но там все заканчивается дешифрацией, а нам еще нужна шифрация для отправки паетов на сервер. Т.е. надо немного изменить ф-ю DecryptGP
|
|
|
3 пользователя(ей) сказали cпасибо:
|
|
05.07.2012, 11:55
|
#17
|
|
|
|
Разведчик
|
 Регистрация: 24.02.2011
 Сообщений: 17
 Популярность: 34
 Сказал(а) спасибо: 2
Поблагодарили 15 раз(а) в 6 сообщениях
|
Re: Aion 3.0 + L2PHX
еще немного инфы.
пакет выглядят так:
1. длина пакета - 2 байта
2. опкод - 2 байт
3. чексум - 3 байта
4. данные
при чем опкод пакета не обфусцируется, как было в 2.7
порядок байт в пакетах обратный.
Про "полбеды", которые говорил пиксфид: видимо имелось ввиду, что при каждой отправке пакета, нужно как-то учитывать ключ шифрации/дешифрации. Пиксфид намекни про вариант попроще, ты видимо уже все эти грабли прошел.
в коде, приведенном выше, есть небольшие ошибки, так по мелочи.
что сейчас непонятно:
1. Что передается в параметре Data в ф-ю DecryptGP? пакет полностью или пакет без опкода или еще что? возможно ошибка здесь.
2. если в настройках l2ph выбран аион 2.7, то опкоды пакетов деобфусцируются? где это происходит? надо отключить.
Последний раз редактировалось captcher; 06.07.2012 в 09:08.
Причина: уточнил формат пакета
|
|
|
05.07.2012, 22:01
|
#18
|
|
|
|
Пехотинец
|
 Регистрация: 02.09.2009
 Сообщений: 55
 Популярность: 1249
 Сказал(а) спасибо: 7
Поблагодарили 191 раз(а) в 37 сообщениях
|
Re: Aion 3.0 + L2PHX
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
16.07.2012, 07:13
|
#19
|
|
|
|
Старший сержант
|
 Регистрация: 26.09.2011
 Сообщений: 187
 Популярность: 1932
 Сказал(а) спасибо: 123
Поблагодарили 109 раз(а) в 55 сообщениях
|
Re: Aion 3.0 + L2PHX
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
Пользователь сказал cпасибо:
|
|
16.07.2012, 11:28
|
#20
|
|
|
|
Разведчик
|
 Регистрация: 24.03.2012
 Сообщений: 24
 Популярность: 12
 Сказал(а) спасибо: 11
Поблагодарили 1 раз в 1 сообщении
|
Re: Aion 3.0 + L2PHX
|
|
|
16.07.2012, 12:04
|
#21
|
|
|
|
Разведчик
|
 Регистрация: 21.11.2010
 Сообщений: 38
 Популярность: 12
 Сказал(а) спасибо: 6
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Aion 3.0 + L2PHX
Последний раз редактировалось sguaj; 16.07.2012 в 12:17.
|
|
|
16.07.2012, 12:31
|
#22
|
|
|
|
Разведчик
|
 Регистрация: 13.07.2010
 Сообщений: 33
 Популярность: -557
 Сказал(а) спасибо: 3
Поблагодарили 11 раз(а) в 9 сообщениях
|
Re: Aion 3.0 + L2PHX
________________
Не флуди Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Ваша лучшая благодарность автору - кнопка спасибо
|
|
|
16.07.2012, 12:32
|
#23
|
|
|
|
Старший сержант
|
 Регистрация: 26.09.2011
 Сообщений: 187
 Популярность: 1932
 Сказал(а) спасибо: 123
Поблагодарили 109 раз(а) в 55 сообщениях
|
Re: Aion 3.0 + L2PHX
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось plain1710; 16.07.2012 в 12:37.
|
|
|
Пользователь сказал cпасибо:
|
|
17.07.2012, 14:53
|
#24
|
|
|
|
Пехотинец
|
 Регистрация: 08.05.2012
 Сообщений: 92
 Популярность: 1203
 Сказал(а) спасибо: 50
Поблагодарили 22 раз(а) в 21 сообщениях
|
Re: Aion 3.0 + L2PHX
Ага убрать сылку, молодец, сам скачал теперь можно и убрать? Эгоист..
пы.сы. А как же обход? где кто проверял этот лпх?
________________
Подпись Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Hikomori; 17.07.2012 в 15:13.
|
|
|
17.07.2012, 15:57
|
#25
|
|
|
|
Разведчик
|
 Регистрация: 07.03.2011
 Сообщений: 19
 Популярность: 14
 Сказал(а) спасибо: 3
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Aion 3.0 + L2PHX
|
|
|
17.07.2012, 16:04
|
#26
|
|
|
|
Разведчик
|
 Регистрация: 02.04.2012
 Сообщений: 39
 Популярность: 18
 Сказал(а) спасибо: 90
Поблагодарили 4 раз(а) в 4 сообщениях
|
Re: Aion 3.0 + L2PHX
|
|
|
17.07.2012, 19:49
|
#27
|
|
|
|
Пехотинец
|
 Регистрация: 08.05.2012
 Сообщений: 92
 Популярность: 1203
 Сказал(а) спасибо: 50
Поблагодарили 22 раз(а) в 21 сообщениях
|
Re: Aion 3.0 + L2PHX
Пробовал морозилку процес хакером, раньше как только античт этот новый поставили можно было обойти подобным способом, но теперь после кнопки принять вылитает.
________________
Подпись Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
22.07.2012, 00:08
|
#28
|
|
|
|
Старший сержант
|
 Регистрация: 05.12.2010
 Сообщений: 178
 Популярность: 2655
 Сказал(а) спасибо: 113
Поблагодарили 311 раз(а) в 106 сообщениях
|
Re: Aion 3.0 + L2PHX
Пакеты (первые 10 - 15) одни и теже при перезаходе идут? Что-то мне кажется не совсем правильно расшифровываем трафик.
Добавлено через 3 минуты
captcher, будь любезен сделай лог пакетов из packetsamurai и пакетхаком aion30_test2 (первые 15 пакетов) чтобы сравнить.
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни
Последний раз редактировалось RemoteAccess; 22.07.2012 в 00:13.
Причина: Добавлено сообщение
|
|
|
22.07.2012, 16:17
|
#29
|
|
|
|
Разведчик
|
 Регистрация: 01.04.2011
 Сообщений: 34
 Популярность: 14
 Сказал(а) спасибо: 15
Поблагодарили 2 раз(а) в 2 сообщениях
|
Re: Aion 3.0 + L2PHX
22.07.2012 16:12:50 Библиотека D:\Aion-Free Client 2.6\л2\inject.dll успешно загружена
22.07.2012 16:12:50 Стартует L2ph v6.1.7600.16385
22.07.2012 16:12:50 Не удалось зарегистрировать локальный сервер на порт 7788, возможно этот порт занят другим приложением
22.07.2012 16:13:00 Надёжно пропатчен новый клиент aion.bin (14072)
Вот что выдаёт при заходе на сервер
как решить данную проблему?
|
|
|
22.07.2012, 17:37
|
#30
|
|
|
|
Разведчик
|
 Регистрация: 24.02.2011
 Сообщений: 17
 Популярность: 34
 Сказал(а) спасибо: 2
Поблагодарили 15 раз(а) в 6 сообщениях
|
Re: Aion 3.0 + L2PHX
Последний раз редактировалось captcher; 22.07.2012 в 18:06.
Причина: добавлен пакетсамурай
|
|
|
2 пользователя(ей) сказали cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Похожие темы
|
Тема |
Автор |
Раздел |
Ответов |
Последнее сообщение |
l2phx на aion rulez
|
Jeffre's |
Общение и обсуждение Aion |
6 |
15.08.2012 11:30 |
[Помогите!] L2phx на Aion-Free PvP
|
LoLka^^ |
Общение и обсуждение Aion |
12 |
14.06.2012 14:13 |
[Помогите!] l2phx New-Aion
|
Hamlet111 |
Общение и обсуждение Aion |
2 |
05.04.2012 10:49 |
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 13:56.
|
 |