myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
3 страниц V  < 1 2 3 >  
Ответить в данную темуНачать новую тему

> Анализ ответа от PtokaX, Вопрос по сокетам

Теги
Нет тегов для показа
Setuper
сообщение 23.2.2010, 16:22
Сообщение #21


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




http://mydc.ru/topic2989.html


Спасибо сказали:
Go to the top of the page
+Quote Post
Sergey2009
сообщение 23.2.2010, 16:26
Сообщение #22


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




Точно :-) Спасибо Вам, с наступающим (вшим) Праздником.

Ну если будут еще вопросы к вам....то уж пожалуйста стерпите :-)
Go to the top of the page
+Quote Post
Nickolya
сообщение 23.2.2010, 16:27
Сообщение #23


Главный ра******й тут...
*********

Группа: Главные администраторы
Сообщений: 1 727
Регистрация: 18.5.2008
Из: RF, 2la
Пользователь №: 1
Спасибо сказали: 776 раз




Все есть, советую изучить всю тему прежде чем потом задавать вопросы.
Go to the top of the page
+Quote Post
Setuper
сообщение 23.2.2010, 16:32
Сообщение #24


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Только не забудь добавить функцию DCN экранирования (см. последний пост указанной темы).
Go to the top of the page
+Quote Post
Sergey2009
сообщение 24.2.2010, 2:35
Сообщение #25


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




>>Только не забудь добавить функцию DCN экранирования (см. последний пост указанной темы).

Функцию наlock2key С# (данную в топике) дополнил, но все таки что-то не то...Такого шаблона не получается:($Key tСА ° < ключ> бp|). Символы начала и конца последовательности tСА ° и бp| у меня не присутствуют и я даже не могу понять что это за дополнения. Мне кажется. я что-то не то передаю в функцию lock2key. Какой именно код нужно "шифровать", я так полагаю что код в последовательности вида
$Lock EXTENDEDPROTOCOLCVJYYYNNgSg:9J9ubJcBg4KKNhFwin Pk=PtokaX| , такой
EXTENDEDPROTOCOLCVJYYYNNgSg:9J9ubJcBg4KKNhFwin ... или я опять что-то упустил
Go to the top of the page
+Quote Post
Setuper
сообщение 24.2.2010, 12:36
Сообщение #26


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




в функцию lock2key передавать нужно весь параметр команды $Lock
Go to the top of the page
+Quote Post
Sergey2009
сообщение 24.2.2010, 12:40
Сообщение #27


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




Цитата(Setuper @ 24.2.2010, 14:36) *
в функцию lock2key передавать нужно весь параметр команды $Lock


Да я уж по разному пробовал...а эту функцию кто-нибудь проверял?
Go to the top of the page
+Quote Post
Setuper
сообщение 24.2.2010, 12:48
Сообщение #28


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




если в параметре команды $Lock есть подстрока " Pk=", то нужно взять подстроку до " Pk=", в противном случае если есть пробел, то взять подстроку до пробела, иначе взять полностью весь параметр.
Go to the top of the page
+Quote Post
Sergey2009
сообщение 24.2.2010, 13:08
Сообщение #29


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




См. файл
Прикрепленные файлы
Прикрепленный файл  ________.gif ( 16.76 килобайт ) Кол-во скачиваний: 34
 
Go to the top of the page
+Quote Post
Setuper
сообщение 24.2.2010, 13:31
Сообщение #30


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Ну что тут можно сказать... Где-то ты наврал в коде. Ты получаешь неправильный ключ.
Вот я получил по твоему параметру lock правильный ключ.

Прикрепленный файл  1.jpg ( 199.59 килобайт ) Кол-во скачиваний: 39


разбирайся где у тебя там ошибка.
Go to the top of the page
+Quote Post
Sergey2009
сообщение 24.2.2010, 13:36
Сообщение #31


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




Это не я в коде наврал, а функция Lock2Key не возвращает то, что нужно. Я и спрашиваю, функцию Lock2Key на С# кто-нибудь проверял?
Go to the top of the page
+Quote Post
Setuper
сообщение 24.2.2010, 13:40
Сообщение #32


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Я её не проверял. Я надеялся, что Markiz проверил, прежде чем публиковать в теме http://mydc.ru/topic2989.html
Видимо он накосячил с этой функцией.
Go to the top of the page
+Quote Post
Sergey2009
сообщение 24.2.2010, 13:41
Сообщение #33


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




Блин ((
Go to the top of the page
+Quote Post
Setuper
сообщение 24.2.2010, 13:45
Сообщение #34


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Ща я попробую написать её под С#, хоть и не владею синтаксисом данного языка.
Go to the top of the page
+Quote Post
Sergey2009
сообщение 24.2.2010, 13:52
Сообщение #35


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




Я могу с экранами переслать тебе

Вот это отсутвует в функции C#:

for(i = 0; i < len; ++i) key[i] = ((key[i]<<4) & 0xF0) | ((key[i]>>4) & 0x0F); char *newkey = (char *)calloc(1, len + 100);

Это смещение как я понял


<<4 - это сдвиг влево поразрядно, в Шарпе аналогичная операция
& 0x0F - фактически это и есть кодировка, в Шарпе так же
Go to the top of the page
+Quote Post
Setuper
сообщение 24.2.2010, 13:59
Сообщение #36


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Код
private string lock2key(string lock)
{
  int len = lock.Length;
  byte[] key = new byte[len];
  int i;
  for(i = 1; i < len; ++i)
    key[i] = (byte)(lock[i] ^ lock[i - 1]);
  key[0] = (byte)(lock[0] ^ lock[len - 1] ^ lock[len - 2] ^ 5);

  for(i = 1; i < len; ++i)
    key[i] = (byte)((key[i]<<4) & 0xF0) | ((key[i]>>4) & 0x0F);

  // тут ещё нужно сделать DCN экранирование

  return Encoding.ASCII.GetString(key);
}


По поводу DCN экранирования.

Экранируемые коды(символы): 0 (\0), 5(\5), 36($), 96(`), 124(|), 126(~)

То есть, вместо каждого нулевого символа в ключ нужно вставить строку "/%DCN000%/"
Вместо 5-го ANSI символа нужно вставить строку "/%DCN005%/"
Символ $ в ключе заменяем на "/%DCN036%/"
Символ ` в ключе заменяем на "/%DCN096%/"
Символ | в ключе заменяем на "/%DCN124%/"
Символ ~ в ключе заменяем на "/%DCN126%/"

Не знаю как в шарпе ты это будешь делать, в с/c++ это можно было сделать, например, функцией sprintf.
Go to the top of the page
+Quote Post
Sergey2009
сообщение 24.2.2010, 14:20
Сообщение #37


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




Экран у меня сделан, сейчас допроверю ответ функции

Вот тут поправит нужно:

for(i = 1; i < len; ++i)
key[i] = ((key[i]<<4) & 0xF0) | ((key[i]>>4) & 0x0F);


На

for(i = 0; i < len; ++i)
key[i] = (byte)(((key[i]<<4) & 0xF0) | ((key[i]>>4) & 0x0F));

хмм...чего-то не хватает
Go to the top of the page
+Quote Post
Setuper
сообщение 24.2.2010, 14:40
Сообщение #38


RusHub team lead
**************

Группа: Модераторы
Сообщений: 4 030
Регистрация: 20.6.2008
Из: г. Королёв (Моск. обл.)
Пользователь №: 46
Спасибо сказали: 1708 раз




Чего не хватает?
Go to the top of the page
+Quote Post
Sergey2009
сообщение 24.2.2010, 14:49
Сообщение #39


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




Цитата(Setuper @ 24.2.2010, 16:40) *
Чего не хватает?

Видишь в чем дело, мне кажется теряются разряды при явном преобразовании в размерный тип (byte) ... функция все равно возвращает не верное значение
Go to the top of the page
+Quote Post
Sergey2009
сообщение 24.2.2010, 16:33
Сообщение #40


Начинающий
*

Группа: Пользователи
Сообщений: 20
Регистрация: 23.2.2010
Пользователь №: 6 163
Спасибо сказали: 0 раз




Все ОК, проблемма в кодировке была (не ASCII, Маркизу нужно стукнуть по голове :-)). Выкладываю рабочую функцию...могу сделать отдельным классом.



CODE
//
// Функция lock2key (влючает экранирование)
// принимает строку $Lock
//
// Cимволы команд $Lock и $Key с кодами 0, 5, 36, 96, 124 и 126 должны быть заменены,
// соответственно, на /%DCN000%/, /%DCN005%/, /%DCN036%/, /%DCN096%/, /%DCN124%/ и /%DCN126%/
// Экранируемые коды(символы):
// 0 (\0), 5(\5), 36($), 96(`), 124(|), 126(~)
// 0x0 0x5 0x24 0x60 0x7C 0x7E
private string lock2key(string str_lock)
{


byte[] arr_key = new byte[str_lock.Length];
int sL = str_lock.Length;
for (int i = 1; i < sL; ++i)
arr_key[i] = (byte)(str_lock[i] ^ str_lock[i - 1]);
arr_key[0] = (byte)(str_lock[0] ^ str_lock[sL - 1] ^ str_lock[sL - 2] ^ 5);

for (int i = 0; i < sL; ++i)
arr_key[i] = (byte)(((arr_key[i] << 4) & 0xF0) | ((arr_key[i] >> 4) & 0x0F));

string arr_keyTemp = Encoding.Default.GetString(arr_key);
for (int i = 0; i < sL; i++)
{
if (arr_keyTemp[i] == 0x0) { arr_keyTemp = arr_keyTemp.Substring(0, i) + "/%DCN000%/" + arr_keyTemp.Substring(i + 1, (arr_keyTemp.Length - (i + 1))); }
if (arr_keyTemp[i] == 0x5) { arr_keyTemp = arr_keyTemp.Substring(0, i) + "/%DCN005%/" + arr_keyTemp.Substring(i + 1, (arr_keyTemp.Length - (i + 1))); }
if (arr_keyTemp[i] == 0x24) { arr_keyTemp = arr_keyTemp.Substring(0, i) + "/%DCN036%/" + arr_keyTemp.Substring(i + 1, (arr_keyTemp.Length - (i + 1))); }
if (arr_keyTemp[i] == 0x60) { arr_keyTemp = arr_keyTemp.Substring(0, i) + "/%DCN096%/" + arr_keyTemp.Substring(i + 1, (arr_keyTemp.Length - (i + 1))); }
if (arr_keyTemp[i] == 0x7C) { arr_keyTemp = arr_keyTemp.Substring(0, i) + "/%DCN124%/" + arr_keyTemp.Substring(i + 1, (arr_keyTemp.Length - ( i+ 1))); }
if (arr_keyTemp[i] == 0x7E) { arr_keyTemp = arr_keyTemp.Substring(0, i) + "/%DCN126%/" + arr_keyTemp.Substring(i + 1, (arr_keyTemp.Length - (i + 1))); }
}

return arr_keyTemp;

}


Эм, чего-то не читабельно получилось

Всем спасибо еще раз, на хаб заходит...ник появляется и все ОК вообщем big_smile.gif
Go to the top of the page
+Quote Post

3 страниц V  < 1 2 3 >
Ответить в данную темуНачать новую тему
9 чел. читают эту тему (гостей: 9, скрытых пользователей: 0)
Пользователей: 0

Collapse

> Похожие темы

  Тема Ответов Автор Просмотров Последнее сообщение
No New Posts Перехват выполнения бана(ов) PtokaX
Возможно ли?
0 MIKHAIL 1 216 1.8.2022, 10:31 Посл. сообщение: MIKHAIL
No new Topic has attachmentsУстановка хаба PtokaX 0.5.2.2 на роутер под прошивкой LEDE 2017
DC++ сервер в роутере
15 мамин_парень 18 268 29.1.2021, 8:02 Посл. сообщение: мамин_парень
No new ВАЖНО: Topic has attachmentsPtokaX 0.5.0.1 Mod
Модификация PtokaX от alex82
112 alex82 108 406 13.9.2019, 17:57 Посл. сообщение: CyberGhost404
No new Topic has attachmentsPtokaX 0.5.2.1 Mod
Модификация PtokaX от alex82
17 alex82 22 291 22.8.2019, 12:27 Посл. сообщение: SergSat
No New Posts Ptokax 0.5.0.2
Crash-14.11.2014-01.11.48.log
8 Drakula 13 401 6.6.2019, 15:09 Посл. сообщение: avalon
No New Posts Topic has attachmentsПрошивка LEDE 17.01.4 для 740n v4,v5 c PtokaX 0.5.0.1
Готовая прошивка с поддержкой сервера DC++, все влезло в 4мб ))
1 мамин_парень 6 397 10.3.2018, 15:29 Посл. сообщение: мамин_парень
No New Posts Ptokax, opendchub (DC++) - Сборка пакета для OpenWRT, LEDE 2017
Пакеты хабов для прошивки роутера
0 мамин_парень 5 573 29.8.2017, 7:00 Посл. сообщение: мамин_парень
No new Topic has attachmentsАнтиреклама для PtokaX
API1, API2 | Скрипт антирекламы для чата и лички
39 Damaks 56 810 9.8.2017, 14:26 Посл. сообщение: Ksan
No new ВАЖНО: Topic has attachmentsPtokaX
Описание. Публикация новых версий
94 Svyat 186 362 11.4.2017, 23:08 Посл. сообщение: Alexey
No new Topic has attachmentsPtokaX в OpenWrt (Linux)
Ребята как собрать под эту систему?
21 мамин_парень 29 584 10.4.2017, 15:19 Посл. сообщение: мамин_парень
No New Posts Автозапуск PtokaX на Rassberry Pi?
Не могу запустить
13 Sezam 15 652 7.11.2016, 9:14 Посл. сообщение: Saymon21
No New Posts Доска обьявлений для Ptokax 0.5.0.x
3 NightmareUA 8 487 11.8.2016, 16:22 Посл. сообщение: Ksan
No New Posts FreeBSD 11.0 & PtokaX
Проблема подключения в клиенте PtokaX по имени
5 nsd7 8 978 22.4.2016, 3:47 Посл. сообщение: Saymon21
No New Posts От: PtokaX 0.5.2.1 Mod
От темы с ID: 5784
0 Alexey 4 534 21.4.2016, 18:16 Посл. сообщение: Alexey
No New Posts Перенос базы пользователей с RusHub на PtokaX
3 Angel_D 8 905 5.12.2015, 2:11 Посл. сообщение: Saymon21

 



RSS Сейчас: 23.11.2024, 14:23