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

Разработка Раздел для совместной разработки/доработки программы

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 14.02.2012, 23:41   #1
Пользователь
 
Регистрация: 29.01.2012
Адрес: г. Минск
Сообщений: 64
Сказал Спасибо: 10
Имеет 5 спасибок в 5 сообщенях
Tin-moon пока неопределено
По умолчанию

To Kilatif:
Прикол, решил сравнить инициализацию блоуфиша:
Приходящий на 1 и тот же входящий пакет Init, получаются разные значения PArray.
Прикол в следующем:
Java и C# дают следующий результат (одинаковый):
Код:
* -		PArray	{long[18]}	long[]
		[0]	-11504476527	long
		[1]	818284978	long
		[2]	5389473844	long
		[3]	5277480315	long
		[4]	2258027768	long
		[5]	1971259599	long
		[6]	-10807336962	long
		[7]	15922993650	long
		[8]	-1570502760	long
		[9]	-13871540854	long
		[10]	7461419269	long
		[11]	15931572012	long
		[12]	-4834315440	long
		[13]	6949642799	long
		[14]	13899931484	long
		[15]	11387598665	long
		[16]	14253408890	long
		[17]	11324059052	long
а вот реализация на Delphi немного другой ( совпало только первые два):
Код:
(1380425361, 818284978, 3744654971, 1864113960, 3479827321, 2874253665, 3288700621, 2149712101, 776530621, 3122561990, 1920928410, 1485135872, 2882331372, 1270005868, 4088379872, 3643499899, 4185267842, 196570026)
Это нормально????
Tin-moon вне форума   Ответить с цитированием
Старый 15.02.2012, 00:33   #2
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Tin-moon, так у тебя блоуфиш до сих пор не работает? Ты возьми в Delphi и в java объяви по блоуфишку, инициализируй их одинаковым ключем и посмотри как они кодируют и декодируют одинаковые данные (это необязательно должен быть пакет, любой свой массив).
Kilatif вне форума   Ответить с цитированием
Старый 15.02.2012, 00:37   #3
Пользователь
 
Регистрация: 29.01.2012
Адрес: г. Минск
Сообщений: 64
Сказал Спасибо: 10
Имеет 5 спасибок в 5 сообщенях
Tin-moon пока неопределено
По умолчанию

Код:
data:=((key[j] and $FF)shl 24) or
     ((key[(j+1) mod Size] and $FF)shl 16) or 
     ((key[(j+2) mod Size] and $FF)shl 8)  or
      (key[(j+3) mod Size] and $FF);
мне кажется, что это неправильно переписали.. как работает key[(j+3) mod Size?

Добавлено через 2 минуты
Цитата:
Сообщение от Kilatif Посмотреть сообщение
Tin-moon, так у тебя блоуфиш до сих пор не работает? Ты возьми в Delphi и в java объяви по блоуфишку, инициализируй их одинаковым ключем и посмотри как они кодируют и декодируют одинаковые данные (это необязательно должен быть пакет, любой свой массив).
Понимаешь проблема не в кодировать декодировать а в самом ините, там уже разные данные получаются.
Например, после этого кода
Код:
	for i:=0 to 17 do begin
    data:=((key[j] and $FF)shl 24)or((key[(j+1) mod Size] and $FF)shl 16)or((key[(j+2) mod Size] and $FF)shl 8)or(key[(j+3) mod Size] and $FF);
		PArray[i] := PArray[i] xor data ;
		j := (j + 4) mod Size ;
	end;
На яве совпало только то что с +
/*
(1331667411+, 124622946+, 3744654971, 1864113960+, 3479827321, 2874253665,
3288700621, 2149712101, 776530621+, 3122561990, 1920928410+, 1485135872+,
2882331372, 1270005868+, 4088379872, 3643499899, 4185267842, 196570026+)
*/

Сори малек затупил это часть верно (пора ложиться спать наверно), не верные данные вот от сюда:
Код:
	datal := 0 ;
	datar := 0 ;
	for i:=0 to 8 do begin
		Blowfish_encipher (datal, datar) ;
		PArray[i*2] := datal ;
		PArray[i*2 + 1] := datar ;
	end;
Наверно мне нужно разобрать что я там с Blowfish_encipher натупил.

Последний раз редактировалось Tin-moon, 15.02.2012 в 01:55. Причина: Добавлено сообщение
Tin-moon вне форума   Ответить с цитированием
За это сообщение Tin-moon нажился спасибкой от:
Старый 15.02.2012, 02:20   #4
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

key[(j+3) mod Size] - нуу, берет из ключа key элемент (j+3) mod Size, где mod - Это операция для вычисления от деления на Size
Kilatif вне форума   Ответить с цитированием
Старый 15.02.2012, 12:40   #5
Пользователь
 
Регистрация: 29.01.2012
Адрес: г. Минск
Сообщений: 64
Сказал Спасибо: 10
Имеет 5 спасибок в 5 сообщенях
Tin-moon пока неопределено
По умолчанию

To Kilatif

Вроде отладил BlowFish. Нашел вроде где у меня ошибка.
Код:
    if temp[0]=#0 then begin
      SetLength(s,Len-2);
      for i:=0 to Len-3 do s[i+1]:=temp[i];
      for i:=0 to Len-3 do temp2[i+1]:=temp1[i];
      s:=AntiXor(s);
      for i:=0 to Len-3 do temp[i]:=s[i+1];
    end;
Вот этот кусок проблемный. Там зачем-то перегнали в массив char, сняли хор и вернули. Конкретно проблема с правильной инициализацией s наверно. Выкинь прлз этот кусок(это в procedure LS_parser). Ну и чтобы наверняка и AntiXor(s); -- ее вроде проверил на куске байт переводит верно, но навсякий случай.
Tin-moon вне форума   Ответить с цитированием
Старый 15.02.2012, 13:06   #6
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Tin-moon, у меня это сделано в другом классе вот таким образом:
Код:
private byte[] DecryptLoginServer(byte[] packet, int packetSize)
        {
            byte[] result = (byte[])Funcs.DeepClone(packet);

            result = blowfish.Decode(packet);
            if (packet[0] == 0)
            {
                result = Funcs.AntiXor(result);
            }

            return result;
        }
AntiXor я кидал страницами ранее
Kilatif вне форума   Ответить с цитированием
Старый 15.02.2012, 13:10   #7
Пользователь
 
Регистрация: 29.01.2012
Адрес: г. Минск
Сообщений: 64
Сказал Спасибо: 10
Имеет 5 спасибок в 5 сообщенях
Tin-moon пока неопределено
По умолчанию

Как ты заполняешь byte[] packet ?? Из того пакета который пришел.
Цитата:
Сообщение от Kilatif Посмотреть сообщение
Tin-moon, у меня это сделано в другом классе вот таким образом:
Код:
private byte[] DecryptLoginServer(byte[] packet, int packetSize)
        {
            byte[] result = (byte[])Funcs.DeepClone(packet);

            result = blowfish.Decode(packet);
            if (packet[0] == 0)
            {
                result = Funcs.AntiXor(result);
            }

            return result;
        }

AntiXor я кидал страницами ранее
Tin-moon вне форума   Ответить с цитированием
Старый 15.02.2012, 19:07   #8
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Tin-moon, packet - это пакет, который только-только пришел от сервера и с убранными двумя байтами размера
Kilatif вне форума   Ответить с цитированием
Старый 16.02.2012, 00:49   #9
Новичок
 
Регистрация: 12.02.2012
Сообщений: 27
Сказал Спасибо: 8
Имеет 0 спасибок в 0 сообщенях
ErgoZ пока неопределено
По умолчанию

Tin, не поделишься ф-циями по блоуфишу и антиксору для явы, а то у меня бред получается (((
ErgoZ вне форума   Ответить с цитированием
Старый 16.02.2012, 01:31   #10
Местный
 
Регистрация: 23.02.2009
Сообщений: 319
Сказал Спасибо: 72
Имеет 60 спасибок в 45 сообщенях
Kilatif пока неопределено
По умолчанию

Tin-moon
Во вложении 2 файла, те ф-ции, которые ты просил + левый скачанный с инета класс по работе с большими числами, который я использовал в RSAEncrypt.
Вложения
Тип файла: rar Archive.rar (19.2 Кб, 50 просмотров)
Kilatif вне форума   Ответить с цитированием
За это сообщение Kilatif нажился спасибкой от:
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Разработка



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

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


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

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

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