надо хотя бы логи запросов от клиента к серверу и наоборот, а также схему шифровки паролей. есть простой клиент rnimda.exe. но реверсинг пока затруднен отсутствием времени и опыта.
спасибо, A_Must_Loll и bogrus! bogrus можно чуть подробнее о challenge\response аутентификации? я понял, что там с сервера высылается некоторая случайная п-сть символов, вводимый пароль хешится с этой п-стью, рез-т отсылается на сервер, где производится ровно то же и хеши сравниваются, если ровно то все путем. вопрос в технической реализации, чего делать с введенным паролем и присланной случайной п-стью применительно к radmin. thanks
Взять MD5 хеш от пароля дополненного нулями до 100 байт Зашифровать её twofish, упаковать через сложение двордами(с циклическим переполнением) и отправить обратно
Не получается? Свяжись, можем договорится о полном описании + пример исходника Код (Text): //==================================================================== typedef struct TCP_DATA { BYTE bool; // соединение unsigned int data_size; // размер data unsigned int data_crc; // контрольная сумма данных (int++) BYTE code; // код пакета (sizeof.ZLIB_DATA mod(16)) TWOFISH_DATA data[?]; // данные } //==================================================================== typedef struct TWOFISH_DATA // CBC_KEY(MD5(pass_char[100])) { // CBC_IV(FEDCBA9876543210A39D4A18F85B4A52) WORD code; // код unsigned int data_size; // размер data ZLIB_DATA data[?]; // упакованый ZLIB_DATA } //==================================================================== typedef struct ZLIB_DATA // compress2(Z_BEST_SPEED) { BYTE code; // код unsigned char filename[1024]; // имя файла (максимум 1024 байт) unsigned int filepointer; // указатель (для SetFilePoiner) unsigned int filepartsize; // размер filepart (макс знач. 50000) BYTE reserve; // резерв BYTE filepart[?]; // содержимое файла (максимум 50000 байт) } //====================================================================
bogrus Это не протокол - это наверно структура пакетов. А как происходит авторизация? Че сначала слать?