понедельник, 16 ноября 2015 г.

UPnP - настройка маршрутизаторов

Подборка ссылок по настройки ваших маршрутизаторов для работы с DC++ клиентами
в режиме UPnP

1. Большой сайт по настройки маршрутизаторов - в картинках.http://nastroisam.ru/nastrojka-routera/

2. Еще один сайт с описанием сети DC++
https://sites.google.com/site/2directconnect/portforward

3. Коллекция вариантов настроек сети TTK
http://forum.myttk.ru/index.php?showtopic=33598
http://forum.myttk.ru/index.php?showforum=366

Настройки роутеров присланные пользователями:
* TrendNet


Кто знает еще полезные ссылки по теме - пишите мне на почту - добавлю.
pavel.pimenov@gmail.com

воскресенье, 11 октября 2015 г.

Ищу VPS с защитой от DDOS

Всем привет.

 Что пробовал
1. Защита от OVH TCP атаки блокирует, но UDP не защищает - пришлось уйти

атака выглядит так https://yadi.sk/i/pOpGlrnsjKaMB

2. Сейчас на https://www.hosteasy.eu
работает не стабильно - UDP не пропускает, но тупит по tcp
https://yadi.sk/i/45sKuwENjeqc5

Куда уйти еще можно?
нашел на reg.ru защиту
https://www.reg.ru/web-tools/ddosprotection/
но у них ценник 6-12 тыс руб в неделю!
это очень дорого

суббота, 26 сентября 2015 г.

Мальчик + девочка + расположение

В чате новые пользователи иногда спрашивают - этот хаб какого города?
т.к. в случае внешнего интернет хаба сложно ответить на это однозначно
на своем хабе dchub://dc.fly-server.ru и в новых версия FlylinkDC++ r5xx
добавлена возможность обмена расширенными атрибутам
для этого пришлось внести дополнение в протокол добавив новую характеристику
в Supports - ExtJSON
Если клиентская и серверная часть поддерживает эту функцию флайлинк будет
отображать дополнительные данные в соотвествующих колонках.
пока реализована визуализация пола и города.





вторник, 1 сентября 2015 г.

Динамическая группировка результатов поиска

Всем привет.

В бетке r503 начиная с билда 18940 добавлена группировка результатов поиска.
функция позволяет быстрее отфильтровать нужный вам контент:

пятница, 28 августа 2015 г.

Фирменная иконка для вашего хаба

Всем привет.

Кто хочет чтобы на вашем хабе в программе флайлинк отображалась ваша фирменная пиктограммка
пришите мне на почту (pavel.pimenov@gmail.com)
1 - адрес хаба
2 - файл логотипа формате *.ico  

Это почти полный аналог favicon*




пятница, 14 августа 2015 г.

Блокировка вирусных ботов

Привет. В клиент добавлена функция уничтожения ботов-разносчиков вирусов.
Предлагаю админов или операторов крупных хабов на основе PtokaX воспользоваться этим и задавить этот способ заражения наших пользователей. Проблема давняя и освещается в этой ветке http://dchublist.ru/forum/viewtopic.php?f=6&t=1010 пользователь ищет файл и получает на exe-шник с созвучным названием (я несколько раз тестировал - подобные файлы и они не опознаются 50% антивирусами из virustotal)
Данное решение избавляет менять конфигурацию хаба и уже опробовано на 3-х хабах включая мой (dchub://dc.fly-server.ru) . Нужно чтобы на хабе всегда висел клиент FlylinkDC++ с включенными галками (рис 1), пользователь при этом должен иметь права на команду кика или бана по IP












Если этого не сделать, то посмотрите что происходит на наших крупных хабах.
на рис 2 выделено число загрузок вирусов с одного из ботов:
и ведь подобное качают пользователи без подготовки
при этом 100% они бездумно запускают это!
и если их не спас локальный антивирусный монитор (50%) то эта зараза залезла в комп нашего пользователя.
А теперь смотрим сколько таких ботов на хабах (рис 3):
даже  если каждый раздает вирусни как  natali со скрина № 2 то это уже катастрофа
давайте удалим этих уродов?
Пишите свои замечания в теме или на почту  pavel.pimenov@gmail.com
кому вломы держать всегда включенным комп с флаем - это решаемо
у меня есть несколько VPS где могут крутиться роботы по убиванию этой заразы.
база данных таких ботов постоянно обновляются(спасибо RoLex) и реплицируется на все клиенты флайлинков с интервалом 30 минут т.е. мы обеспечиваем достаточную  актуальность базы данных по IP. также по наблюдениям у них маленький пул IP и они редко меняют адреса.
это очень хорошо т.к. их можно быстрее локализовать и заблокировать.

p.s.
Очень странно почему этим не занимаются антивирусные лаборатории и их базы отстают?


суббота, 1 августа 2015 г.

Поиск комиксов и электронных книг

Привет.
Опубликовано обновление ветки r5xx в котором доступна функция поиска комиксов и электронных книг (спасибо Havokdan)
  • Комиксы - ".cba", ".cbt", ".cbz", ".cb7", ".cbw", ".cbl", ".cba", ".cbr"
  • Книги - ".epub",".mobi",".djvu",".pdf", ".fb2"
Если какие-то расширения забыл - отпишите.
также к группе Audio добавлены файлы типа *.wv
Получить новую версию без переустановки можно через меню - "помощь-проверка обновлений" + Ок



среда, 15 июля 2015 г.

Интеграция с emule-security.org

Все привет.
В авто обновлении доступна версия с поддержкой блокировки паразитного трафика на основе "черного списка"
http://emule-security.org
Включается функция в настройках - Фильтр IP (IPGuard)
блокируется только скачка по аналогии с IPTrust.ini
Записей в базе достаточно много (216 тыс) 
Если увидите ложные блокировки - пишите.
В след версии добавлю визуализацию в списке пользователей.



воскресенье, 7 июня 2015 г.

[offtop] steam - увели аккаунт

Всем привет.
Кто восстанавливал доступ к стиму расскажите про процедуру
я в поддержку уже написал указав код с диска который покупал в магазине - пока молчат...
Дети 3 числа на ноут закачали вирус а 4-го сменился емайл на аккаунте стима. все игрушки пропали :(
я пока не понял как они могли код подтверждения с моего компа получить
также интересно что можно сделать с украденным акком стима
на счету там рублей 30 было всего. игры ведь нельзя перепродавать?
зачем они это сделали?












Поддержка вернула аккаунт - деньги остались на месте 28 рублей :)
в логе вот что - а как бы узнать куда сняли предметы и логин этого козла?


вторник, 19 мая 2015 г.

FlylinkDC++ и старые процессоры

Всем привет.
32 битная версия FlylinkDC++ собирается в VC++2013 с оптимизацией (/arch:SSE)
недавно прилетело 10 дампов падения от одного пользователя у которого XP
стоит на системе с CPU  который не умеет movss (< Pentium III ? )

крах произошел на простой инициализации переменной
float saturation = 0.0f;
оптимизатор это превратил в команду аcсемблера:
movss       xmm2,dword ptr ds:[0B9D9F8h] 
Как правильнее поступить?
* Отключить SSE для x86 сборки
* При старте предупреждать что процессор не поддерживается
для реализации второго я пока не знаю как гарантировать то, что до проверки на CPU 
не используются эти запрещенные SSE. и сам код проверки корректный где взять...
Кто сталкивался с подобными проблемами отпишите в комментах.





















четверг, 30 апреля 2015 г.

FlylinkDC++ server в аптайме 308 дней

Всем привет.
Один из серверов флайлинка проработал 308 дней
я из простого программиста становлюсь админом :)
 



суббота, 4 апреля 2015 г.

Ошибочные команды с DC++ хабов

Все привет.
Вчера ко мне обратился пользователь - у него файл system.log распух до 3 гиг
я поправил этот момент и исключил переполнение system.log (он мог переполняться только в ветке-бета)
но проблема оказалась глобальнее и таких хабов достаточно много 
если кто-то знает их админов - попросите поправить северные скрипты
т.к. в результате их работы все DC++ игнорируют эти ошибочные команды.
    1  "error":"[BUG][24] NmdcHub::onLine first unknown command:NmdcHub::onLine first unknown command! hub = [dchub://besthub.ro], command = [UserComman], param = [0 3]"
      1  "error":"[BUG][24] NmdcHub::onLine first unknown command:NmdcHub::onLine first unknown command! hub = [dchub://dc.focsanivn.ro], command = [UserComman], param = [0 3]"
      1  "error":"[BUG][24] NmdcHub::onLine first unknown command:NmdcHub::onLine first unknown command! hub = [dchub://dc.imsnet.ro], command = [UserComman], param = [0 3]"
      1  "error":"[BUG][24] NmdcHub::onLine first unknown command:NmdcHub::onLine first unknown command! hub = [dchub://dc.mycuk.net], command = [myinfo], param = [$all 10.11.171.60 $ $100\u0001$$99480130723$]"
      1  "error":"[BUG][24] NmdcHub::onLine first unknown command:NmdcHub::onLine first unknown command! hub = [dchub://dc.mycuk.net], command = [myinfo], param = [$all 10.11.171.60 $ $100\u0001$$99480130723$]"
      1  "error":"[BUG][24] NmdcHub::onLine first unknown command:NmdcHub::onLine first unknown command! hub = [dchub://dc.net23.info], command = [myinfo], param = [$all dryguardian)) $ $100\u0001$$103875033826$]"
      1  "error":"[BUG][24] NmdcHub::onLine first unknown command:NmdcHub::onLine first unknown command! hub = [dchub://dc.nevedem.net], command = [UserComman], param = [0 3]"


четверг, 26 марта 2015 г.

Оптимизируем поисковый UDP трафик команды $SR

В новых версия FlylinkDC++ решил убрать дублирующие UDP пакеты летящие в сторону пользователя 
выполняющего запрос файла по имени.

Расскажу алгоритм как это работает сейчас

1. Есть 2 клиента
  А - Ищет файл test-uniq-file-1212831283485474923782.txt
  B - Содержит файл test-uniq-file-1212831283485474923782.txt у себя в шаре.
2. Оба клиента сидят на нескольких хабах при этом 8 из них являются общими.

3. Клиент А вводит в поиске имя "test-uniq-file-1212831283485474923782.txt" 
и получает результат в окне поиска о том, что данный файл лежит у одного юзера 
при этом он сидит на разных хабах. (рис 1)









4. Клиент содержащий этот файл выполняет следующие операции
    - Получает от 8 хабов одинаковые поисковые запросы вида 
     $Search 185.90.227.251:24745 F?T?0?1?test-uniq-file-1212831283485474923782.txt
    - Успешно ищет указанный файл у себя в шаре (пока он это делает тоже 8 раз 
       т.к. кеширование результатов поиска добавить к флаю у меня в планах.
    - По результатам поиска клиент B посылает в клиента А по адресу 185.90.227.251:24745 
      8 почти одинаковых UDP пакетов вида (отличается только хвостовой часть где указан IP хаба с которого пришел запрос на поиск)
      (рис 2)
$SR FlylinkDC-dev3 dc++share-test-debug\test-uniq-file-1212831283485474923782.txt 50 15/15 TTH:HLRIXWDUZ5BOECFHG7OYXZ52MFOFMGETQA3TJKA (178.130.0.214:411)| 
$SR FlylinkDC-dev3 dc++share-test-debug\test-uniq-file-1212831283485474923782.txt 50 15/15 TTH:HLRIXWDUZ5BOECFHG7OYXZ52MFOFMGETQA3TJKA (5.165.63.36:411)|   
$SR FlylinkDC-dev3 dc++share-test-debug\test-uniq-file-1212831283485474923782.txt 50 15/15 TTH:HLRIXWDUZ5BOECFHG7OYXZ52MFOFMGETQA3TJKA (94.242.221.159:411)|
$SR FlylinkDC-dev3 dc++share-test-debug\test-uniq-file-1212831283485474923782.txt 50 15/15 TTH:HLRIXWDUZ5BOECFHG7OYXZ52MFOFMGETQA3TJKA (188.134.15.173:411)|
$SR FlylinkDC-dev3 dc++share-test-debug\test-uniq-file-1212831283485474923782.txt 50 15/15 TTH:HLRIXWDUZ5BOECFHG7OYXZ52MFOFMGETQA3TJKA (94.242.222.18:411)| 
$SR FlylinkDC-dev3 dc++share-test-debug\test-uniq-file-1212831283485474923782.txt 50 15/15 TTH:HLRIXWDUZ5BOECFHG7OYXZ52MFOFMGETQA3TJKA (80.93.188.135:4111)|
$SR FlylinkDC-dev3 dc++share-test-debug\test-uniq-file-1212831283485474923782.txt 50 15/15 TTH:HLRIXWDUZ5BOECFHG7OYXZ52MFOFMGETQA3TJKA (178.130.0.205:411)| 
$SR FlylinkDC-dev3 dc++share-test-debug\test-uniq-file-1212831283485474923782.txt 50 15/15 TTH:HLRIXWDUZ5BOECFHG7OYXZ52MFOFMGETQA3TJKA (80.64.175.3:411)|


 
 






Планирую сократить нагрузку на сетевую часть и убрать дубликатную передачу UDP пакетов 
в результате чего клиент А 
 - Получит только одну запись в результате поиска 
 - Имя хаба будет при этом одно (того кто первый прислал $Search).
 - Не будет тратить время на получение и обработку других 7 заведомо паразитных пакетов


Кто видит в этом что-то плохое - пишите в комменты
кто не хочет или заводить у google аккаунт - можно писать анонимно на хабе dchub://dc.fly-server.ru


воскресенье, 1 марта 2015 г.

Защита от превышения лимита GDI объектов

Привет.
У процесса Windows существует ограничение на кол-во GDI дескрипторов.
по умолчанию оно равно 10000
При достижении предельного значения гарфически интерфейс программы 
просто перестает откликаться (рис 1) помогает только снос через диспетчер задач.












C помощью такой атаки "злой админ" хаба может завалить DC++ клиент
накидав в окно много смайликов-убийц :)

В клиент FlylinkDC++ начиная с build 18323 добавлена защита от этого в виде
автоматического отключения смайлов при приближении GDI к лимиту.



воскресенье, 22 февраля 2015 г.

PtokaX 0.5.0.3

Всем привет.
Обновился хаб. в нем закрыта уязвимость
http://www.ptokax.org/news.html
Всем крупным хабам рекомендую обновиться

На уровне клиентов исправление внесены в AirDC++ и FlylinkDC++
к сожалению разработчики оригинального DC++ пока думают как это лучше исправить...


 

четверг, 12 февраля 2015 г.

Игнорируем дубликатные поиски файлов

Привет.
В новой бетке r503-build18257 добавлена функция предварительной фильтрации заведомо ложных поисковых запросов по маске. DC++ клиент сидит на множестве хабов и в него по сети летит достаточно больше кол-во запросов.
На рис 1 представлен топ запросов в моей сети:











максимальное кол-во запросов делают боты в целях выявить запрещенный контент

но т.к. боты тупые и не могут исключать дубликатные запрос к клиентам они вынуждены повторять их каждые N-минут.
но т.к. у законопослушного пользователя в шаре нет файлов, которые ищут боты
то клиент начинает выполнять рекурсивное сканирование всех файлов пока не найдет 5- 10 совпадений с маской… а это ресурсоемкая и длительная операция. в результате чего ваш комп тратит лишнее электричество.
Новая версия флайлинка блокирует подобные дубликатные запросы.
Факт игнорирования дубля отображается в CMD отладчике (рис 2)
на примере мой клиент "сжал" 9 запросов пришедших за 2 секунды с разных
хабов в поиске "аватар".






воскресенье, 8 февраля 2015 г.

deleaker - подарок для FlylinkDC++

Привет
Новые версии FlylinkDC++ избавились от некоторых утечек GDI ресурсов благодаря 
Deleaker! эта утилита подарена флайлинку как Open Source проекту от  разработчика Артема Разина
и уже помогла сделать флай лучше. Я давно использую детектор утечек памяти https://vld.codeplex.com
но он к сожалению не  "замечает" GDI и файловые дескрипторы.
в любом случае всем разработчикам GUI приложений на VC++ рекомендую попробовать 
http://www.deleaker.com
 

 


суббота, 31 января 2015 г.

DC++ лишние дисковые операции

Привет.
Когда DC++ клиент качает файл он выполняет частое открытие и закрытие временного файла *TTH.dctmp в который записываются полученные сегменты от разных пользователей
т.к. антивирусные мониторы при операции открытия файла выполняю анализ на предмет вирусни. В связи с этим рекомендуется вашему антивирусу добавить в исключение расширение файла *.dctmp - это снизит нагрузку на систему.
у себя в последних билдах FlylinkDC++ я исправил эту особенность и временный файл открывается один раз и закрывается только после того, как скачка всех сегментов файла окончательно завершится.













Ловится такая активность программой Process Monitor вот таким фильтром:








Обновить свой флайлинк до последней версии можно через
меню -> помощь -> проверка обновлений




вторник, 13 января 2015 г.

HFS от Mac в Windows чуток глючит?

Привет.
Пользователь в винде примонтировал файловую систему от MacOS (BOOTCAMP)
но у него вылез баг - при запуске флайлинка он повторно хеширует файлы расположенные на этом диске
причина оказалась в том, что размер файла показываемый под виндой всегда кратен размеру кластера
но если читать файл, то читается точный размер файла.
алгоритм хеширования через FidFile сканирует каталоги и анализирует размер файлов и временные метки
сравнивая их со значениями из базы. а в этом случае получается так, что размер файла не равен прочитанному 
в результате чего файл посылается в "вечное" повторное хеширование.
Кто встречал такое и как лучше это обойти если эта "фича" драйвера? 

Пример файла в картинках:





среда, 7 января 2015 г.

Автоматически определяем домашний роутер

Привет.
Новые версии FlylinkDC++ умеют детектировать подключение к интернету через роутер а также помогает узнать
какой у вас IP (белый/серый)
Алгоритм
1. Если в системе дефолтный шлюз = 192.168.1.1 или 192.168.0.1
автоматически включается режим подключения UPnP и рисуется ротуер
2. Если IP адрес полученный от upnp роутера не относится к приватной сети:
10.0.0.0/8
127.0.0.0/8
172.16.0.0/12
192.168.0.0/16

169.254.0.0/16
или к Shared Address Space:
100.64.0.0/10
вероятно у вас белый адрес(динамический или статический
и при нажатии кнопки "Тест портов и определение IP"
внешний WAN IP будет совпадать с полученным IP от роутера.
Если IP различаются, то у вас серый IP и вы находитесь за NAT-ом провайдера
при этом с внешними хабами работа возможна только в пассивном режиме.
У кого есть замечания - пишите в тему/почту
 














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


Заметаем следы скачки файлов

Всем привет!
Пользователи просят
* Отключать историю хранения обмена файлами
* Возможность выборочно удалить файл из лога  (шифруются :)
В сборке 18108 и выше такая функция реализована.

Удаление выбранных файлов:













Полностью отключить хранение истории в базе данных
можно установив в настройках значение = 0