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

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 31.12.2012, 04:41   #21
Новичок
 
Аватар для zAvaTARz
 
Регистрация: 06.02.2011
Сообщений: 17
Сказал Спасибо: 2
Имеет 7 спасибок в 7 сообщенях
zAvaTARz пока неопределено
По умолчанию

Вот теперь наткнулся на проблему с шифрацией, в общем как всегда перед приятным процессом, мучался 3 или 4 дня и тут уже дошел до отправки первого пакета, тут проблема:

у меня в конце должно выводиться
Код:
2A 00 07 85 1D 5E 6D 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 6A 85 1D 5E 00 00 00 00 00 00 00 00 00 00 
1C FC
Потом оно должно идти в BlowFish.Encode, потом записываться в банки отделяться от 2- и 2-х последних символов и отправляться на сервер...

Но вот в чем проблема, на сервер должно отправляться

Код:
2A 00 07 85 1D 5E 6D 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 6A 85 1D 5E 00 00 00 00 00 00 00 00 
00 00 1C FC
с двумя непонятными последними байтами, так вот вопрос откуда они берутся? откуда их брать? я так понимаю это шифрация каких то символов размер чего то там...

А у меня пакет такой
Код:
2A 00 07 85 1D 5E 6D 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 6A 85 1D 5E 00 00 
00 00 00 00 00 00 00 00 00 00
Я то могу, зашифровать 2 последних символа, через GetByte но ведь дальше то пойут тоже отправки данных, там уже нужны будут 22 00 и.т.д...

Я так понимаю все самое ложное в начале)

Добавлено через 57 минут
да и вообще какойто бред с функцией BlowFish.Encode

создал функцию которая ХЕКС переводит в байты

Отправил эту функцию:
Код:
07 AB 98 43 76 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 71 AB 
98 43 00 00 00 00 00 00 00 00 00 00 00 00 1C FC
Ответ оказался таким...

Код:
68 1C 6E 65 1E EE B7 8F 46 D6 A1 9B 80 85 47 46 46 D6 A1 9B 80 85 47 46 03 DE 2A 41 9D 6D 11 ED 46 D6 A1 9B 80 85 47 46 1C FC
И чето 2 последних знака знакомы очень...

Хотя ответ должен быть таким:
Код:
0x0000| 00 00 04 73 C7 45 1A 74 6D 05 DC E2 0F DC B4 32 
0x0010| 49 B1 DC E2 0F DC B4 32 49 B1 29 FE 6C 86 44 E4 
0x0020| 51 D0 DC E2 0F DC B4 32 49 B1
Проверяю через la2_client_emu.
Уже че и делать не знаю...

Последний раз редактировалось zAvaTARz, 31.12.2012 в 04:41. Причина: Добавлено сообщение
zAvaTARz вне форума   Ответить с цитированием
Старый 31.12.2012, 11:13   #22
Местный
 
Регистрация: 08.03.2011
Сообщений: 236
Сказал Спасибо: 31
Имеет 73 спасибок в 30 сообщенях
lamo386 пока неопределено
По умолчанию

тему что я давал читал ? там на яве есть все что нужно.
а вообще берешь клиентом со снифером заходишь на нужный сервер и пытаешся повторить пакеты.
lamo386 вне форума   Ответить с цитированием
Старый 31.12.2012, 16:38   #23
Новичок
 
Аватар для zAvaTARz
 
Регистрация: 06.02.2011
Сообщений: 17
Сказал Спасибо: 2
Имеет 7 спасибок в 7 сообщенях
zAvaTARz пока неопределено
По умолчанию

Цитата:
Сообщение от lamo386 Посмотреть сообщение
тему что я давал читал ? там на яве есть все что нужно.
а вообще берешь клиентом со снифером заходишь на нужный сервер и пытаешься повторить пакеты.
Да конечно! я по ней только и делал! Но вот говорю все пакеты которые расшифруються клиентом, у меня правильные, каждый пакет, но вот под конец там где идёт BlowFish.Encode уже проблема! что делать не знаю, все функции переписаны, но вот почему то не то...

Вот пакеты которые идут

Код:
START

BA 00 D3 1F 34 69 FA BB 98 91 FB D2 78 94 40 AF 
25 BA BC 31 AD C4 A8 5F 5F 08 DD D4 7B 44 17 A7 
1E 2D DC C6 DA B6 05 78 2E 7C 6B 7C A1 2A 60 70 
42 D4 CC 51 CF F9 19 8D 40 1D 32 F6 0D B9 60 A3 
A4 AC 33 F5 A2 3D 18 88 0C 78 53 6E 46 56 7A 7D 
7E 99 2C ED FC 53 58 F1 DF F4 28 0C 79 51 B7 54
0F 7B A3 5B A0 30 26 82 6C B8 5B 8E A7 3C 22 42 
A5 77 F3 35 81 28 5B 0D 7C 26 C5 11 93 2D 72 84 
D1 17 CB 2A 87 1E D5 F3 B7 8E 4C FD 84 B2 C0 55
BD 23 4B E7 19 B2 48 D6 3B BB 82 2F 24 C8 9A FC 
84 83 63 8B BF 5F 93 5E E7 F4 4C CD 23 5E 35 3F 
5C AF F7 D6 FB F4 ED 49 60 EF

TEMP

D3 1F 34 69 FA BB 98 91 FB D2 78 94 40 AF 25 BA 
BC 31 AD C4 A8 5F 5F 08 DD D4 7B 44 17 A7 1E 2D 
DC C6 DA B6 05 78 2E 7C 6B 7C A1 2A 60 70 42 D4 
CC 51 CF F9 19 8D 40 1D 32 F6 0D B9 60 A3 A4 AC 
33 F5 A2 3D 18 88 0C 78 53 6E 46 56 7A 7D 7E 99 2C
ED FC 53 58 F1 DF F4 28 0C 79 51 B7 54 0F 7B A3 5B 
A0 30 26 82 6C B8 5B 8E A7 3C 22 42 A5 77 F3 35 81 
28 5B 0D 7C 26 C5 11 93 2D 72 84 D1 17 CB 2A 87 1E 
D5 F3 B7 8E 4C FD 84 B2 C0 55 BD 23 4B E7 19 B2 48 
D6 3B BB 82 2F 24 C8 9A FC 84 83 63 8B BF 5F 93 5E 
E7 F4 4C CD 23 5E 35 3F 5C AF F7 D6 FB F4 ED 49 60 
EF 00 00

Decode

00 85 1D 5E A2 B8 CE 44 CF E9 18 C4 51 5A 6D 13 92 
B8 A0 B0 0E 5A 5C 68 70 BC B1 2D 6D 22 F8 ED 85 92 
A5 4C 5D 24 EC 04 C9 85 BF B9 F9 4A 58 E9 A2 EB CC 
0D 81 61 A5 52 3C AB 2B F6 39 E7 04 70 D6 84 39 D8 
DC 77 D5 29 69 C6 BC 1F 8A 1F 4A 21 54 D2 3E 5D 0A 
58 B1 12 24 AA CF 17 FA 86 BA E4 85 A7 61 CB 8D 04 
39 FD 7E B9 5B C6 F1 E0 8E 45 B7 79 C9 7D E8 24 D3 
B9 D1 78 0E 7C CD 28 E0 3D DD 77 9A 20 52 71 60 81 
41 4D 52 43 D9 03 FF A1 10 00 AC BD 69 E0 1B 70 02 
E8 0D D2 07 89 77 87 3A 73 12 D3 9B 68 BD BE 5E 61 
23 7B 2D A3 B6 CC 6D 86 07 29 CB 2B AE 04 00 00

AntiXor

BA 00 00 85 1D 5E 6D 21 C6 00 00 3C 4A C9 C3 C2 0D 
63 60 11 63 E7 BE D9 ED 8B ED 5D 06 77 E8 B0 A5 59 
50 49 36 4F E4 A6 BC 73 8E B3 77 61 5B 1E 6C 1C DD 
4B 6E DC 8D F6 81 C4 1B 8A D7 39 8B 63 1C D8 1A 88 
14 3F 8B 35 7E 37 1F C2 8A C0 DE AD AB 63 A2 95 6F 
AF 2E 0E 74 1C D2 2F B5 4C 87 18 E5 DD F6 5C 89 49 
AF 7D 6E 3F AF 26 26 03 98 A6 49 50 EF 9D 07 34 59 
E3 22 3A 94 5F 2E 7F F6 42 7A DD F3 86 45 A0 13 C4 
51 40 86 4E 95 DD 29 FC 9C C3 77 20 B6 AD 97 F7 E0 
BD 07 6F 59 AB F1 A5 99 57 A3 2B 97 85 21 08 5C B4 
73 00 75 38 40 25 B1 E5 6D 86 07 29 CB 2B AE 04

RSA Key changed : 61 3C 4A C9 C3 C2 0D 63 60 11 63 
E7 BE D9 ED 8B ED 5D 06 77 E8 B0 A5 59 50 49 36 4F 
E4 A6 BC 73 8E B3 77 61 5B 1E 6C 1C DD 4B 6E DC 8D 
F6 81 C4 1B 8A D7 39 8B 63 1C D8 1A 88 14 3F 8B 35 
7E 37 1F C2 8A C0 DE AD AB 63 A2 95 6F AF 2E 0E 74 
1C D2 2F B5 4C 87 18 E5 DD F6 5C 89 49 AF 7D 6E 3F 
AF 26 26 03 98 A6 49 50 EF 9D 07 34 59 E3 22 3A 94 
5F 2E 7F F6 42 7A DD F3 86 45 A0 13 C4 51 40

BlowFish key changed : 
00 6F 59 AB F1 A5 99 57 A3 2B 97 85 21 08 5C B4

SendPkt : 
2A 00 07 85 1D 5E 6D 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 6A 85 1D 5E 00 00
00 00 00 00 00 00 00 00 1C FC

что идёт после неё

//Запись в банк всеми символами их всего 42
Array.Copy(send_buff, 0, temp_buff, 0, Len);	
//Декорируем	
BlowFish.Encode(temp_buff,Len);
//И записываем где было со второго символа и без последних 2-х...

как в la2_client_emu
Array.Copy(temp_buff, 0, send_buff, 2, Len-2);	

//В итоге получаем бред какото...
SEND PTK ENDEND : 
2A 00 75 4A FA C4 BA B7 E4 D9 DA 8E BD 99 7A 
09 C0 2A DA 8E BD 99 7A 09 C0 2A 04 C7 91 9B 
62 11 E6 1A DA 8E BD 99 7A 09 C0 2A
Люди добрые че делать)

Добавлено через 4 минуты
Заметил одну такую хрень, что там добавляеться ещё 4 Символа, а по 4 символа ходят только в AddCheckSumme

Тоесть сам банк с данными приходит с этими уже байтами
вот они
Код HTML:
1C FC 0C 00 BA 00
больше нету

Код:
    public static byte[] AddCheckSumm(byte[] Data, int len) {
        if(Data.Length < len + 4){
            return null;	
        }
		
        byte[] t = new byte[4];
        
        int chksum = 0;
        int ecx = 0;
		//string ecx = ";
        int i = 0;
        
        while (i < len){
            t[0] = Data[i];
            t[1] = Data[i+1];
            t[2] = Data[i+2];
            t[3] = Data[i+3];
            try {
				Debug.Log("ACS " + BitConverter.ToString(t));
				ecx =  BitConverter.ToInt32(t,0) ;
                chksum ^= ecx;
                i += 4;
            } catch (Exception ex) {
				Debug.Log("Error " + ex.Message);
            }
        }
		
		
		
        Array.Copy(BitConverter.GetBytes(chksum), 0, t, 0, 4);
		
		//Возвращаем
        Data[len+1] = t[0];
        Data[len+2] = t[1];
        Data[len+3] = t[2];
		Data[len+4] = t[3];
		return Data ;
    }
Посмотрите функция правильная? мне только возвращается мои символы, до 40, а дальше пусто, этот код на C#

Последний раз редактировалось zAvaTARz, 31.12.2012 в 16:38. Причина: Добавлено сообщение
zAvaTARz вне форума   Ответить с цитированием
Старый 31.12.2012, 19:16   #24
Местный
 
Регистрация: 08.03.2011
Сообщений: 236
Сказал Спасибо: 31
Имеет 73 спасибок в 30 сообщенях
lamo386 пока неопределено
По умолчанию

Цитата:
SendPkt :
2A 00 07 85 1D 5E 6D 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 6A 85 1D 5E 00 00
00 00 00 00 00 00 00 00 1C FC
это я так полнимаю ты соснифал у клиента ?
Цитата:
что идёт после неё

//Запись в банк всеми символами их всего 42
Array.Copy(send_buff, 0, temp_buff, 0, Len);
//Декорируем
BlowFish.Encode(temp_buff,Len);
//И записываем где было со второго символа и без последних 2-х...
первые 2 байта это размер пакета они не шифруются именно поэтому Array.Copy(temp_buff, 0, send_buff, 2, Len-2); //пропускаем 2 байта и длинну уменьшаем -2
БФ он блочный поэтому если шифровать "не с того" символа получится не то что надо...

Последний раз редактировалось lamo386, 31.12.2012 в 19:23.
lamo386 вне форума   Ответить с цитированием
Старый 31.12.2012, 20:51   #25
Новичок
 
Аватар для zAvaTARz
 
Регистрация: 06.02.2011
Сообщений: 17
Сказал Спасибо: 2
Имеет 7 спасибок в 7 сообщенях
zAvaTARz пока неопределено
По умолчанию

Цитата:
Сообщение от lamo386 Посмотреть сообщение
это я так полнимаю ты соснифал у клиента ?

первые 2 байта это размер пакета они не шифруются именно поэтому Array.Copy(temp_buff, 0, send_buff, 2, Len-2); //пропускаем 2 байта и длинну уменьшаем -2
БФ он блочный поэтому если шифровать "не с того" символа получится не то что надо...
И весь остальной код, неправельный это из за того что последних 2 символа не те?

Добавлено через 6 минут
так в том то и дело что те символы я отправляю

Добавлено через 17 минут
В чем вопрос откуда берутся этих 2 последних символа?

И откуда их брать мне, потому что сейчас тут уже B8 00

Последний раз редактировалось zAvaTARz, 31.12.2012 в 20:51. Причина: Добавлено сообщение
zAvaTARz вне форума   Ответить с цитированием
Старый 31.12.2012, 21:46   #26
Местный
 
Регистрация: 08.03.2011
Сообщений: 236
Сказал Спасибо: 31
Имеет 73 спасибок в 30 сообщенях
lamo386 пока неопределено
По умолчанию

Цитата:
Сообщение от zAvaTARz Посмотреть сообщение

SendPkt :
2A 00 07 85 1D 5E 6D 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 6A 85 1D 5E 00 00
00 00 00 00 00 00 00 00 1C FC
этот пакет ты взял из Пх ? так вот это расшифрованный пакет.

из сылки которую постил ты же
Цитата:
RequestGGAuth

Формат:
22 00 // Длина
07 // Тип
XX XX XX XX // ID сессии
23 92 90 4d
18 30 b5 7c
96 61 41 47
05 07 96 fb
00 00 00
f2 12 ba a9 // чексумма
00 00 00 00
если по русски то пакет(42байта) состоит из 2 байта размер, 36 байт дата (1 байт ид пакета, 4 байта сесион ид, 3 по 4 байта это для ГГ, 4 байта ноль), 4байта чек сумма.
сначало собирается пакет потом этот пакет без размера (помни длинна пакета -2) отдается блоуфишу.
lamo386 вне форума   Ответить с цитированием
Старый 31.12.2012, 22:34   #27
Новичок
 
Аватар для zAvaTARz
 
Регистрация: 06.02.2011
Сообщений: 17
Сказал Спасибо: 2
Имеет 7 спасибок в 7 сообщенях
zAvaTARz пока неопределено
По умолчанию

Цитата:
Сообщение от lamo386 Посмотреть сообщение
этот пакет ты взял из Пх ? так вот это расшифрованный пакет.

из сылки которую постил ты же


если по русски то пакет(42байта) состоит из 2 байта размер, 36 байт дата (1 байт ид пакета, 4 байта сесион ид, 3 по 4 байта это для ГГ, 4 байта ноль), 4байта чек сумма.
сначало собирается пакет потом этот пакет без размера (помни длинна пакета -2) отдается блоуфишу.
Этот пакет который должен быть , а это пакет который я собрал

Код:
2A 00 07 85 1D 5E 6D 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 6A 85 1D 5E 00 00
00 00 00 00 00 00 00 00 00 00
вся проблема в том что я не знаю где брать последние 2 байта у меня 00 00 а должно быть 1C FC но оно почему то постоянно меняется, я не знаю почему, и откуда брать эти 2 последних байта...

Ты меня не совсем понимаешь) я делаю перевожу с la2_client_emu (Исходник авторизации на Delphi) вся проблема в том что там откуда не возьмись берутся нужные байты...

Во вторых я посылаю на функцию Encode

Вот скрипт функции
Код:
        public static byte[] Encode(byte[] data, int _len)
        {
            int i, len;
            byte[] DBuff = new byte[8];
			
			len = _len ;
			
            for (i = 0; i < len / 8; i++)
            {
                Array.Copy(data, i * 8, DBuff, 0, 8);
                DBuff = EncodeBlock(DBuff);
				
				//Debug.Log("Encode : " + BitConverter.ToString(DBuff).Replace("-"," ")) ;
				
                Array.Copy(DBuff, 0, data, i * 8, 8);
            }
			
            return data;
        }
Код:
        private static byte[] EncodeBlock(byte[] __data)
        {
            long xrd, xld;

            xld = BitConverter.ToInt32(__data, 0);
            xrd = BitConverter.ToInt32(__data, 4);

			//Debug.Log("xld "+BitConverter.ToString(BitConverter.GetBytes(xld)) + " xrd" + BitConverter.ToString(BitConverter.GetBytes(xrd))) ;
			
            Blowfish_encipher(ref xld, ref xrd);

            Array.Copy(BitConverter.GetBytes((Int32)xld), 0, __data, 0, 4);
            Array.Copy(BitConverter.GetBytes((Int32)xrd), 0, __data, 4, 4);
			

            return __data;
        }
Код:
Код:
        public static void Blowfish_encipher(ref long xl, ref long xr)
        {
            long xl2, xr2;

            xl2 = xl;
            xr2 = xr;
            xl2 = (xl2 ^ PArray[0]);

            RoundMy(ref xr2, ref xl2, 1); RoundMy(ref xl2, ref xr2, 2);
            RoundMy(ref xr2, ref xl2, 3); RoundMy(ref xl2, ref xr2, 4);
            RoundMy(ref xr2, ref xl2, 5); RoundMy(ref xl2, ref xr2, 6);
            RoundMy(ref xr2, ref xl2, 7); RoundMy(ref xl2, ref xr2, 8);
            RoundMy(ref xr2, ref xl2, 9); RoundMy(ref xl2, ref xr2, 10);
            RoundMy(ref xr2, ref xl2, 11); RoundMy(ref xl2, ref xr2, 12);
            RoundMy(ref xr2, ref xl2, 13); RoundMy(ref xl2, ref xr2, 14);
            RoundMy(ref xr2, ref xl2, 15); RoundMy(ref xl2, ref xr2, 16);

            xr2 = (xr2 ^ PArray[17]);
            xr = xl2;
            xl = xr2;
        }
Вот какое данные отправляю туда данные

1 - й этой мой пакетик готовый

Не трогаем - 2A 00

0x0000| 2A 00 07 93 55 3A 08 00 00 00 00 00 00 00 00 00
0x0010| 00 00 00 00 00 00 00 00 00 00 0F 93 55 3A 00 00
0x0020| 00 00 00 00 00 00 00 00 00 00

что делается дальше

Функция
Move(buff[0],send_buff[2],Len-2);

Как видно что уже на конце опять же B8 00 откуда оно вылезло

07 93 это размер он дается в начале...

Client MSG, Length: 42 (0x2A)
-------------------------------------------------------
0x0000| 07 93 55 3A 08 00 00 00 00 00 00 00 00 00 00 00
0x0010| 00 00 00 00 00 00 00 00 0F 93 55 3A 00 00 00 00
0x0020| 00 00 00 00 00 00 00 00 B8 00

и вот это уже отправляется на расшифрацию.

Ведь это все правильно да?

Далее посылаю в блоуфиш, функцию которую я описал ввыше

Вот ответ

с функцией
Код:
Move(temp_buff[0],send_buff[2],Len-2);
Код:
2A 00 85 DE 5B 3B 36 8F FF EA 1A 02 A4 D3 50 64 C8 50 1A 02 A4 D3 50 64 C8 50 DB 7F 8C 39 34 3D 06 12 1A 02 A4 D3 50 64 C8 50
Он вообще не соответствует тому что я записываю, и вывожу через la2_client_emu

Может быть я ошибаюсь и этот пакет верный я не знаю, но вот я показал что отправляется и что я получаю...

Вся проблема в 2-х последних байтах и наверно не правильном ответе, при дешировке Блоуфиша Encode

Надеюсь я понятно описал))

Добавлено через 7 минут
Сори вот ещё забыл, вот какой должен быть правильный ответ

тут тоже использовалась функция
Код:
Move(temp_buff[0],send_buff[2],Len-2);
Но это не сильно важно, даже если и использовать её, много не измениться...


Код:
0x0000| 07 93 9B 70 C3 4F B1 0B FC 51 68 D0 7E 60 DA E2 
0x0010| 6F B6 68 D0 7E 60 DA E2 6F B6 2D 29 A9 9F 3F A2 
0x0020| A9 31 68 D0 7E 60 DA E2 6F B6

Последний раз редактировалось zAvaTARz, 31.12.2012 в 22:36. Причина: Добавлено сообщение
zAvaTARz вне форума   Ответить с цитированием
Старый 01.01.2013, 01:11   #28
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

мож я чот не понял, но так он ж написал - чек сумма размер и чек сумма это несколько разные вещи. размер - по сути длинна, а чек сумма это что-то типа срс у файла. она нужна на случай повреждения информации. типа пакет пришел, размер совпадает те-же 5 символов к примеру, но к примеру четвертый символ пришел не верный - пришла двойка вместо тройки из-за глюка где-то в сети. вот чек сумма и должна этот момент проверить, типа на случай если пакет битый - то попросить прислать этот пакет еще раз.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Старый 01.01.2013, 01:22   #29
Новичок
 
Аватар для zAvaTARz
 
Регистрация: 06.02.2011
Сообщений: 17
Сказал Спасибо: 2
Имеет 7 спасибок в 7 сообщенях
zAvaTARz пока неопределено
По умолчанию

Может это из-за инцилизации неверной?

Вот скрипт
Код:
		//Стартовый ключ инцилизации
		bf_key = HexToStr("6B60CB5B82CE90B1CC2B6C556C6C6C6C");
		//Инцилизируем ключ
		BlowFish.Init(bf_key) ;

	//Хекс преобразуем в байты, а байты это строки
	public string HexToStr (string s) {
		int i;
		
		result = "" ;
		
		Debug.Log("hex " + s + " " + s.Length) ;
		
		//for i:=1 to (Length(s) div 2) do begin
		for (i=0; i < (s.Length/2); i++) {
			//Преобразуем символы
			result = result + Convert.ToChar(Convert.ToInt32("" + s[i*2] + s[(i*2)+1],16)) ;
		}

		//Debug.Log("MyFunc : " + result);
	i = 0 ;
	return result;

	}
Код:
        public static void Init(string Key1)
        {
            long i, j;
            long data, datal, datar;
            long Size;
            byte[] Key = new byte[Key1.Length];
            
            //Key = BitConverter.GetBytes(Key1);//(byte[])Funcs.DeepClone(Key1);
			
			//for i:=0 to Size-1 do key[i]:=Ord(key1[i+1]);
			
            Size = Key1.Length;
			
            for (int _i = 0; _i < Size; _i++)
            {
				Key[_i] = Convert.ToByte(Key1[_i]) ;
			}

            for (i = 0; i < 18; i++)
                PArray[i] = BlowFishConsts.bf_P[i];
        
            for (i = 0; i < 4; i++)
            {
                for (j = 0; j < 256; j++)
                {
                    SBoxes[i, j] = BlowFishConsts.bf_S[i, j];
                }
            }

            j = 0;
            for (i = 0; i < 18; i++)
            {
                data = ((Key[j] & 0xFF) << 24) | ((Key[(j+1) % Size] & 0xFF) << 16) | ((Key[(j+2) % Size] & 0xFF) << 8) | (Key[(j+3) % Size] & 0xFF);
                PArray[i] = PArray[i] ^ data;
                j = (j + 4) % Size;
            }

            datal = 0;
            datar = 0;
            for (i = 0; i < 9; i++)
            {
                Blowfish_encipher(ref datal, ref datar);
                PArray[i*2] = datal;
                PArray[i*2 + 1] = datar;
            }

            for (i = 0; i < 4; i++)
                for (j = 0; j < 128; j++)
                {
                    Blowfish_encipher(ref datal, ref datar);
                    SBoxes[i, j*2] = datal;
                    SBoxes[i, j*2 + 1] = datar;
                }
				
			
        }
Не знаю что может такое и быть, не знал что с конечной шифрайцией будут такие проблемы...

Пакет верный, почему не шифрует так как надо, есть у кого скрипты на C#?
zAvaTARz вне форума   Ответить с цитированием
Старый 01.01.2013, 02:07   #30
Местный
 
Регистрация: 08.03.2011
Сообщений: 236
Сказал Спасибо: 31
Имеет 73 спасибок в 30 сообщенях
lamo386 пока неопределено
По умолчанию

ни яву ни с шарп не знаю =) разбиратся сейчас лень, но пакет 36 байт дата + 4 байта чек сумма первые 2 байта 2A 00 и не как иначе
lamo386 вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Основные форумы > Программинг



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

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


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

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

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