вторник, 25 марта 2014 г.

Ошибка закачки файлов с длинными именами

В DC++ клиентах найдена проблема.















Пример файла TTH = 7RNOHVHMMYX6TMHUKBXZ2I42MYCCVZSTNRY273I
он у некоторых пользователей имеет имя

Носов Евгений, Павлов Сергей, Пидоренко Игорь, Пищенко Виталий, Пухов Михаил, Пьянкова Таисия, Силецкий Александр, Сыч Евгений, Ткаченко Игорь, Федотов Дмитрий, Чарушников Олег, Шалин Анатолий - Румбы фантастики. 1988 год. Том II.fb2

После беглого просмотра скрина ошибки SCALOlaz выдал прикольную версию - виновен третий писатель этой коллекции электронных книг :) ... но ошибка оказалось совсем в другом

Windows накладывает ограничение на максимальную длину пути= 260 (MAX_PATH)
Длина этого имени файла 233 символа.

Смотрим на алгоритм получения временного файла для закачки в оригинальном DC++
данный код без изменений мигрировал во все дочерние клиенты.
dcplusplus\dcpp\QueueItem.cpp

namespace {
    const string TEMP_EXTENSION = ".dctmp";

    string getTempName(const string& aFileName, const TTHValue& aRoot) {
        string tmp(aFileName);
        tmp += "." + aRoot.toBase32();
        tmp += TEMP_EXTENSION;
        return tmp;
    }
}

он приводит к тому, что итоговый размер имени файла становится
на 46 символов длиннее т.к. к нему приписывает TTH, точка и временное расширение .dctmp
а это приводит к гарантированной ошибке открытия временного файла
в классе SharedFileStream 233 + 44 > 260

В ветках r5xx и r4xx данная проблема уже исправлена.



воскресенье, 16 марта 2014 г.

Блокируем потенциальные вирусы в результате поиска

Привет.
Добавлена дополнительная фильтрация результатов поиска на клиенте.
если пользователь указал при запросе тип файла не равный
  - Исполняемый
  - Любой
  - Каталог/Папка
и при этом если внешний клиент возвращает на такой запрос файлы с расширением исполняемого типа
  ".exe", ".com",".msi", ".app", ".bat", ".cmd", ".jar", ".ps1", ".vbs", ".wsf"
 то считаем это 99% вирусом и не показываем данные файлы в окне поиска + логируем.

Подобным образом, вероятно, ведут себя  боты, которые на любой поисковый запрос генерируют ответ на
исполняемый файл нужного имени. - пользователь его по ошибке качает, запускает и заражает свою систему.












Спасибо пользователю с ником"переподвыподверт" http://dchublist.ru/forum/viewtopic.php?p=22426#p22426  за найденную проблему
Функция появится в обновлении флайлинка с build >= 16865
+ после тестирования волью в ветку r4xx


суббота, 15 марта 2014 г.

Подсказка о возможном вирусном файле

Всем привет.
Добавлена подсказка о возможных вирусных файлах в окнах поиска и файл-листов
Подсказка выполняется пока в виде подмены иконки:
  • "Термометр" расширения вида "exe.exe"(Если кто-то знает еще хитрые комбинации расширений в которых как правило маскируют вирус - пишите я дополню коллекцию)
  • "Синий чемоданчик с красным крестом" - медиафайлы + расширение .exe
Списки обновляются в онлайне медиа-файлы на текущий момент содержат расширения    3gp,avi,divx,flv,m4v,mkv,dts,mov,mp4,mpg,mpeg,vob,wmv,bik,qt,rm,aac,ac3,ape,
fla,flac,m4a,mp1,mp2,mp3,ogg,wma,wv,mka,vqf,lqt,ts,tp,mod,m2ts,webm 


Данная версия доступна на бета-канале авто-обновления.



Блокировка DDoS атаки

Всем привет.
Доработан алгоритм блокирующий способ атаки использующий в команде
$ConnectToMe вместо прямого IP адреса доменное имя.
изменение влито в beta и release ветки - если вы сидите на таких хабах у вас должна
снизится паразитная нагрузка на сетку.
Например хаб dc.info-lan.ru:4111 на текущий момент генерирует с каждого пользователя 5-6 паразитных коннектов на хост verlihub.org:4111. хаб пока мелкий и содержит всего 75 "атакующих"











После обновления флайлинка подобные коннекты будут игнорироваться




Детали атак и алгоритмы блокировки описаны в этой теме

Также  в новых билдах релизной и бета-ветки закрыты 2 топовых падения
у пользователей при активной раздаче.











Новые версии доступны в авто обновлении или тут:
http://www.fly-server.ru/install/r5xx/beta
http://www.fly-server.ru/install/r5xx/release