Было это в нынешнюю субботу, жена уехала с сыном к моей маме в деревню, а я остался дома работать и сидеть одному. И звонят мне в субботу утречком на телефон номер неизвестный. Поднимаю, оттуда голос типа здравствуйте я к вам от общего друга Тимура Алоновича, он мне посоветовал, к Вам обратится, у меня есть проблема. И повествует мне, что есть у него официальное СТО на которое куплено официальное ПО, но сервер этого программного обеспечения очень сильно тормозит, причем вплоть до отказа клиентов работать. День свободен, особых задач нет, дай думаю, посмотрю, тем более люблю я загадочные случаи. Говорю честно, выезд и диагностика бесплатно, но если найду проблему, и смогу ее решить хочу 10 000 рублей. Хоть на карту, хоть куда. Но день в день. Да не проблема говорят — мне хоть 10, хоть 30 тысяч, главное помочь.
Вызываю такси, приезжаю. Ну что ж, типичная клиент-серверная программа. Сервером выступает компьютер Intel Core I7, 48 гигабайт оперативной памяти, G-Force GTX 970 в качестве видеоадаптера, но при этом тормозит безбожно. Достаем ноут, кидаем в сеть, nmap на сканирование сервера, сами садимся смотреть логи и состояние сервера. Машина тормозит страшно, причем, судя по системе, тормозит файловая система. Просканировав сервер, обнаруживаю странные равные по промежуткам времени всплески сетевой активности. Причем после этой странной активности сервер впадает в транс. Ситуация по крайней мере странная. Опрос механиков (к слову крайне вменяемые парни) показал, что после полной переустановке системы некоторое время все работает нормально.
Делать нечего, берем ноут, поднимаем VB, на него разворачиваем из вима по-быстрому систему. На нее накатываем клиентскую часть, и оставляем по моей практике на 2 часа и полное логгирование системы. Сам достаю планшет, и сажусь играться, по дороге наливая кофе (кстати кофе мне никто не предложил ,пришлось в аппарате покупать). Курим, играемся, пьем кофе. ОППА через час логгер сообщает о том что в програм файлс кто-то взялся файлы менять. Спрашиваю ноут, он говорит что не он, я то же не менял. Лезем смотреть, и обнаруживаем, что в папке с клиентом кем то был создан файл названный Datei.sys. Странный файл, причем очень маленький. Открываем внутри файла текст «9F». Ну очень странно, но чуйка подсказывает что на правильном пути. Переводим время чуток вперед, и содержимое файла меняется на «9E». ВОТ ОНО! Но что это? Начинаем изучать сервер, и клиентов. В одном из пунктов настройки сервера обнаруживаю галочку «Проверять обновления по запросу клиентов». Снимает, рестартуем службу, ОППА все тормоза как рукой снимает. ПОНЯТНО! Но сама программа не будет этого делать, убиваем виртуалку, ставим ее с нуля, вновь ставим систему но уже изучая каждый пункт, и находим, что после установки клиента, они запускают небольшой exe файл который запускает клиента. Файл, запускает клиента? Странное это дело. Логгируем действия файла после установки, И??? Оказывается что этот странный exe не делает ничего, кроме как копирует с расшаренной папки на сервер копирует ini файл с настройками, И? И создает ярлык для запуска клиента, только не на стартовый exe, а на какой то левый. Параллельно регистрирует в качестве системной службы, что-то непонятно. Ради эксперимента переименовываем стартовый exe в другой. И ВСЕ, служба вылетает при старте, а машина перестает слать непонятный сетевой трафик. ВОТ ОНО! Вот он тот самый «зловред», но как то странно, я не думаю что специалист, который ставил эту систему сделал это просто так, ради шутки, это очень похоже на временную бомбу. Анализ действий показал, что эта надстройка не делает ничего особенно страшного, просто раз в 3 минуты активирует поиск сервером обновлений. Когда это делала 1-2 машины, это не сильно грузило систему, но когда их стало 6, это уже серьезно вызывало тормоза. Поняв, что нашел в принципе ошибку, говорю что в принципе уже все решил, и хотел бы получить оплату, в качестве демонстрации прописываю скрипт, который на всех 6-ти машинах меняет содержимое файл на 8. Запускаю скрипт, проходит 3 минуты и все, работа сервера стабилизируется, клиенты начинают стабильно работать. Все проходит. И тут-то я понимаю, ЗАЧЕМ появилась необходимость в такой бомбе. Ибо хозяин СТО начинает мне рассказывать, что 10 000 это много, ибо не делал я ничего, а только сидел, игрался и пил кофе, и вообще я могу собираться и уепывать нахрен пока мне тут морду не набили. А если я что-то попытаюсь доказать, то у него есть свидетели, которые покажут, что я все время только пил кофе и игрался в планшет. Пожимаю плечами, вызываю себе такси, все время пока я собираюсь возле меня крутится некий мордоворот, Да крутится и крутится. Собираюсь, складываю ноут и уезжаю.
Утром телефон сходит с ума от звонков. Звонит тот же самый хозяин, с криком что у них все опять тормозит, и виноват в этом я, и он меня теперь будет долго карать, подаст на меня в суд, и вообще мне теперь 3,14здец, если я все не починю. На что я ему сообщаю, что у него есть свидетели которые на суде покажут как я пил кофе. А так как денег я не получил, то увы, никаких отношений работодатель – сотрудник у нас не выйдет. И знаете что? Да у меня есть пароли доступа ко всем системам, да, я нашел несколько дыр во внешней системе безопасности, но я не буду ему вредить, он себе сам навредил. А если кто-то из Ростова столкнется с той же проблемой что и я в СТО на западном, требуйте оплату ДО начала работ, ибо вы уже знаете как там и что решается.