не уверен, что закон на стороне автора
Реверс инжинеринг не запрещен. Давить, автор, права не имеет. А вот, по человечески, попросить прекратить - вполне. Что видимо и произошло...
Модератор: Модераторы
не уверен, что закон на стороне автора
Здравствуйте.
Лицензионное соглашение предусматривает подключение клиента коммфорта только
к программе 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]
Вернуться в Разработки на нашем сайте
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2