не уверен, что закон на стороне автора
Реверс инжинеринг не запрещен. Давить, автор, права не имеет. А вот, по человечески, попросить прекратить - вполне. Что видимо и произошло...
Модератор: Модераторы
не уверен, что закон на стороне автора

Здравствуйте.
Лицензионное соглашение предусматривает подключение клиента коммфорта только
к программе CommFort server. Еще очевидно незаконное использование торговой
марки.
Более того, сам протокол тоже охраняется законом (и авторское право на него
принадлежит мне, хоть и патента на руках не имею).
Я бы очень попросил не делать ничего подобного. Сами понимаете, стоимость
клиентской части включена в серверную, около 80% расходов приходится именно
на клиентскую часть. Так что в случае появления подобных продуктов без суда
никак не обойдемся.
Протокол третьей версии имеет немало недостатков. Его анализ - трата времени
пустая, потому что в протоколе четвертой версии не будет практически ничего
общего со старым.
С наилучшими пожеланиями,
Миргородский Максим
http://www.commfort.com
maxim@commfort.com
Chief писал(а):Протокол третьей версии имеет немало недостатков. Его анализ - трата времени пустая, потому что в протоколе четвертой версии не будет практически ничего общего со старым.
Ну вот... Что и следует из моего предыдущего поста.
Chief писал(а):А вообще, т. к. это никого не заинтересовало, опять же тратить свое время не собираюсь по пусту.
Chief писал(а):Все любят готовое, вот и все...

Attid писал(а):тоже глупости. я вообще первый раз об этом сервере слышу, но если ты уверяешь что он крут и все его юзают кто может, тогда реализации и 3 протокола хватит с головой, для идеи в первом сообщении дальше его поддерживать и не стоит, типа реализация того чего можно, а потом как раз выбор у пользователя или бесплатная версия с протоколом 3 или платная с протоколом 4, а потом уже развиваешь как хотишь.
Attid писал(а):сказок начитался? думал что начнешь проэкт и к тебе мульен людей повалит =) ха ха ха. поздравляю со знакомством с реальностью.
Это каким же образом? Существует зарегистрированная торговая марка CommFort(tm) и как автор решил что FreeCommFort нарушает это остается только догадываться.
Более того, сам протокол тоже охраняется законом (и авторское право на него принадлежит мне, хоть и патента на руках не имею).
Тут автор явно показывает незнание принципа патентирования да и вообще "запугивание авторством" уже в прошлом... юристов можно так натравить, что автор еще и виноват во всех грехах останется.
Так что в случае появления подобных продуктов без суда никак не обойдемся
Хм... Грубо, и со стороны автора банальная трата времени и денежных средств.
Протокол третьей версии имеет немало недостатков. Его анализ - трата времени пустая, потому что в протоколе четвертой версии не будет практически ничего общего со старым.
Ну вот... Что и следует из моего предыдущего поста.

T_USER_STRUCT struct
{
    DWORD          IP;
    DWORD          Reserved1; // $56723130 -> 'Vr10'
    char[6]        MAC;
    BYTE           Sex;       // 0 - Male; 1 - Female
    BYTE           Activity;  // 0 - Inactive, 1 - Active
    BYTE           NickLn;
    char[NickLn]   Nick;
//    BYTE           Reserved2; -> Status (;
    BYTE           StatusLn;
    char[StatusLn] Status;
} // T_USER_STRUCT
T_USERS_LIST_STRUCT struct
{
    BYTE          NotifyId;    // <- 0x15 - [список пользователей]
    WORD          Count;        // ко-во пользователей
    T_USER_STRUCT[Count] Users; // пользователи
} // T_USERS_LIST_STRUCT
T_USERS_LIST_PACKET struct
{
    BYTE                Magic;     // 0xD6
    WORD                Length;    // размер пакета
    BYTE                Reserved1;
    T_USERS_LIST_STRUCT Data;
} // T_USERS_LIST_PACKET
ev писал(а):далеко не факт - читай 4 часть ГК РФ
T_USER_CONNECT_NOTIFY_STRUCT struct
{
    BYTE           NotifyId; // 0x14 - [подключение пользователя]
    DWORD          IP;        
    WORD           UHandle; // хендл юзера
    char[3]        Reserved1; // 31 30 30
    char[6]        MAC;
    BYTE           Sex;       // 0 - Male; 1 - Female
    BYTE           Activity;  // 0 - Inactive, 1 - Active
    BYTE           NickLn;
    char[NickLn]   Nick;
} // T_USER_CONNECT_NOTIFY_STRUCT
T_USER_CONNECT_NOTIFY_PACKET struct
{
    BYTE                Magic;  // 0xD6
    WORD                Length; // размер пакета
    BYTE                Nul;    // 0x00
    T_USER_CONNECT_NOTIFY_STRUCT Data;
} // T_USER_CONNECT_NOTIFY_PACKET
T_USER_DISCONNECT_NOTIFY_STRUCT struct
{
    BYTE                NotifyId; // 0x16 - [отключение пользователя]
    DWORD               IP;
    WORD                UHandle;  // хендл юзера при подключении (вероятно)
} // T_USER_DISCONNECT_NOTIFY_STRUCT
T_USER_DISCONNECT_NOTIFY_PACKET struct
{
    BYTE                Magic;  // 0xD6
    WORD                Length; // размер пакета
    BYTE                Nul;    // 0x00
    T_USER_DISCONNECT_NOTIFY_STRUCT Data;
} // T_USER_CONNECT_NOTIFY_PACKET
T_PUBLIC_MESSAGE_STRUCT struct
{
    BYTE                NotifyId;  // 0x0D
    BYTE                Reserved1; // 0x30
    DWORD               IP;
    WORD                UHandle;   // хендл юзера
    BYTE                ChannelLn;
    char[ChannelLn]     Channel;   // имя канала
    // compressed zlib data
    // sample: 6E 78 9C B3 CA CE 2C CE C8 49 CC B6 02 00 10 E7 03 5C
    BYTE             ZLibMagic; // 0x6E
    BYTE[]           ZLibData;  // compressed data
} // T_PUBLIC_MESSAGE_STRUCT
T_PUBLIC_MESSAGE_STRUCT_PACKET struct
{
    BYTE                Magic;  // 0xD6
    WORD                Length; // размер пакета
    BYTE                Nul;    // 0x00
    T_PUBLIC_MESSAGE_STRUCT Data;
} // T_PUBLIC_MESSAGE_STRUCT_PACKET
T_PUBLIC_PICTURE_STRUCT struct
{
    BYTE                NotifyId;  // 0x0D
    BYTE                Reserved1; // 0x32
    DWORD               IP;
    WORD                UHandle;   // хендл-юзера
    BYTE                ChannelLn;
    char[ChannelLn]     Channel;
    BYTE                ImgFmtLn;
    char[ImgFmtLn]      ImgFmt;    // формат изображения ('jpg')
    BYTE[]              ImgData;   // изображение
} // T_PUBLIC_PICTURE_STRUCT
T_PUBLIC_PICTURE_PACKET struct
{
    BYTE                Magic;  // 0xD6
    WORD                Length; // размер пакета
    BYTE                Nul;    // 0x00
    T_PUBLIC_PICTURE_STRUCT Data;
} // T_PUBLIC_PICTURE_PACKET  TCF3PacketHead = record
    Magic  : Byte; { $D6 }
    Length : Word;
    Null   : Byte; { $00 }
  end; { TCFPacketHead }
  TCF3UserConnectNotifyPacket = record
    Head: TCF3PacketHead;
    Body: record
      Id        : Byte;                { $14         }
      IP        : LongWord;            { IP-address  }
      Handle    : Word;                { User handle }
      Reserved1 : array[0..2] of Byte; { $31 $30 $30 } { -> '100' }
      MACAddr   : array[0..5] of Byte; { MAC address }
      Gender    : Byte;                { User gender }
      Active    : Byte;                { Activity    }
      Nick      : String[64];          { User nick   }
    end; { Body }
  end; { TCF3UserConnectNotifyPacket }
  TCF3UserDisconnectNotifyPacket = record
    Head: TCF3PacketHead;
    Body: record
      Id        : Byte;                { $16         }
      IP        : LongWord;            { IP-address  }
      Handle    : Word;                { User handle }
    end; { Body }
  end; { TCF3UserDisconnectNotifyPacket }
  TCF3PublicMessagePacket = record
    Head: TCF3PacketHead;
    Body: record
      Id        : Byte;                { $0D         }
      SubId     : Byte;                { $30         }
      IP        : LongWord;            { IP-address  }
      Handle    : Word;                { User handle }
      Channel   : String[32];          { Channel     }
      ZId       : Byte;                { $6E         }
      ZData     : record end;          { Compressed  }
    end; { Body }
  end; { TCF3PublicMessagePacket }
  TCF3PublicPicturePacket = record
    Head: TCF3PacketHead;
    Body: record
      Id        : Byte;                { $0D         }
      SubId     : Byte;                { $32         }
      IP        : LongWord;            { IP-address  }
      Handle    : Word;                { User handle }
      Channel   : String[32];          { Channel     }
      ImgFmt    : String[3];           { ImageFormat }
      ImgData   : record end;          { ImageData   }
    end; { Body }
  end; { TCF3PublicPicturePacket }
    TCF3UsersListItem = record
      IP        : LongWord;            { IP-address  }
      Reserved1 : LongWord;            { $30317256   } { -> 'Vr10' }
      MACAddr   : array[0..5] of Byte; { MAC address }
      Gender    : Byte;                { User gender }
      Active    : Byte;                { Activity    }
      Nick,                            { User nick   }
      Status    : String[64];          { User status }
    end; { TCF3UsersListItem }
  TCF3UsersListPacket = record
    Head: TCF3PacketHead;
    Body: record
      Id        : Byte;                { $15         }
      Count     : Word;                { Users count }
      Users     : array of TCF3UsersListItem;
    end; { Body }
  end; { TCF3UsersListPacket }
for(int i = 0; i < PSize ; i++)
    P[i] ^= XorKey++;


Ты рассматриваешь клиентский пакет, а не серверный.koi8-r писал(а):Немного другая структура пакета:
Скорее всего под UserHandle идет хэндл сокета привязанный сервером клиенту.koi8-r писал(а):Темнокрасный , видимо UserHandle.
Еще не добрался до этого места.koi8-r писал(а):Темносиним, непонятная 9-байтовая строка(меняется)
Вообщем трактовка xor-шифрования для CommFort такова:koi8-r писал(а):for(int i = 0; i < PSize ; i++)
P[i] ^= XorKey++;
[/code]
Вернуться в Разработки на нашем сайте
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1