Перейти к содержанию

Recommended Posts

demkd
1.Предотвратит случайное/преднамеренное выполнение.

В этом нет смысла.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
zloyDi

Столкнулся сегодня с неприятной штукой!

Новый вариант вируса Спай.шиз - который прописывается в Юзеринит не дает нормально выполнять скрипт, вернее скрипт выполняется но сам вирус не удаляется. Пришлось косить вручную.

Как то странно, пару дней назад все нормально удалялось, мутырует гад.

<_<

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
demkd
Как то странно, пару дней назад все нормально удалялось, мутырует гад.

Далеко не все можно вылечить в активном режиме... хотя лишение статуса исполняемого и виртуализация может в большинстве случаев помочь перодолеть самозащиту трояна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
santy

Приветствую.

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

И вот еще есть предложения. (как в сказке Пушкина о рыбаке и рыбке :)).

- отложенное удаление или замена файла.

в основном, проблема сейчас возникает при замене зараженного файла sfcfiles.dll

приходится расписывать замену этого файла на "пальцах".... хотя, в принципе, есть вызов строки cmd, которую можно вызвать из uVS и предложить выполнить команду COPY file1 file2

можно ли это сделать с помощью конструкции EXEC?

например, EXEC("cmd /c copy c:\distr\sfcfiles.dll c:\windows\system32\sfcfiles.dll")

В случае uVS команда EXEC не может быть использована с внутренними командами системы?

Или здесь надо всего лишь правильно расставить кавычки?

- можно ли реализовать (вызвать диалог) сохранение скрипта при работе с образом автозапуска не закрывая uVS, например по "горячим" клавишам?

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
demkd
EXEC("cmd /c copy c:\distr\sfcfiles.dll c:\windows\system32\sfcfiles.dll")

вот так:

EXEC cmd /c"copy c:\distr\sfcfiles.dll c:\windows\system32\sfcfiles.dll"

можно ли реализовать (вызвать диалог) сохранение скрипта

Можно, это я как-то упустил, когда добавлял возможность открывать образ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
santy
вот так:

EXEC cmd /c"copy c:\distr\sfcfiles.dll c:\windows\system32\sfcfiles.dll"

работает!

Не получается.

- сохранить цветовые настройки. Настраиваю себе фон (черный текст, на сером фоне, на первый взгляд, менее утомляет), но при повторном запуске цветовая схема сбрасывается. Это должно куда-то записываться? в settings.ini, например.

Не понято.

- режим startf.

Читаю по документации:

В версии 2.70 добавлен дополнительный стартер - StartF.exe

Этот файл обладает иммунитетом к некоторым видам троянов, блокирующих запуск любых процессов и

соотв. способен запуститься, когда запуск других приложений НЕвозможен.

При запуске он блокирует:

o внедрение библиотек с помощью реестра в запускаемый процесс.

o запуск и перезапуск служб

и (!) выгружает все НЕизвестные процессы, разрешает запуск редактора реестра и диспетчера задач,

после чего запускает start.exe с ключом /d на (чистом рабочем столе), что практически полностью

исключает внедрение в uvs посторонних DLL.

(!) Startf.exe работает в течении 30 секунд и за это время необходимо запустить сам uvs.

две последних фразы, имхо, несколько противоречат друг другу... из первой следует, что start.exe автоматически (домысливаю) запускается следом за дополнительным стартером, из второй - что uvs (я так понимаю, startd.cmd) надо запускать следом за этим стартером (домысливаю)вручную.

Поясните, как правильно пользоваться дополнительным стартером? Чтобы выйти в главное меню uVS, ограничив при этом блокирующие процессы.

как еще улучшить, чтобы не ухудшить и без того удобный интерфейс uVS.

Может, следует добавить произвольный, пользовательский фильтр по всем записям образа?

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

Возможно, другим способом инициировать подобную фильтрацию. (по горячей клавише инициировать и завершать ввод_очишать фильтрующее выражение)

последовательный ввод с клавиатуры является фильтрующей фразой по которой содержимое записей автозапуска сразу же отфильтровывается - на каждый введенный дополнительно символ.

Скажем, надо быстро найти известный или подозрительный файл, который предположительно должен быть в образе автозапуска, чтобы посмотреть по нему инфо: sha1, статус, производителя и проч.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
demkd
- сохранить цветовые настройки.

проверю, а записывается в settings.ini.

две последних фразы, имхо, несколько противоречат друг другу...

Может и не слишком понятно :) а суть в том что start.exe - это не uVS, это всего лишь приманка для ловли файловых вирусов, как и сам startf, поэтому противоречия нет.

Т.е. startf "тушит свет" и запускает start.exe /d затем пользователю нужно в течении 30 секунд определиться с выбором параметров запуска и ткнуть соотв. кнопку. в выпавшем окошке.

последовательный ввод с клавиатуры является фильтрующей фразой

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
santy
Может и не слишком понятно :) а суть в том что start.exe - это не uVS, это всего лишь приманка для ловли файловых вирусов, как и сам startf, поэтому противоречия нет.

Т.е. startf "тушит свет" и запускает start.exe /d затем пользователю нужно в течении 30 секунд определиться с выбором параметров запуска и ткнуть соотв. кнопку. в выпавшем окошке.

Разобрался, проверил на виртуалке. Так и есть, стартует start.exe /d. (Видимо, невнимательно что-то делал ранее на виртуалке.)

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

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

не обратил внимание на то, что есть подобный поиск. (сервис поиска в таком виде однозначно должен быть). + Фильтрация по выражению здесь как бы с запасом прочности получается, потому что инфо лучше воспринимаешь, когда всего несколько нужных или близких по написанию записей в поле просмотра. Вот еще такой бывает момент - не устанавливается антивир - начинаешь искать драйвера от других антивирусных продуктов, точное их наименование не знаешь, только приблизительно... тут и помогут фильтрующие выражения.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
demkd
начинаешь искать драйвера от других антивирусных продукто

А тут проще сортировать по производителю в комбинации с отсевом известных и сразу все находится без поиска :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55
А тут проще сортировать по производителю в комбинации с отсевом известных и сразу все находится без поиска

Без поиска...

Но поиск можно сделать более информативным - в плане объединения данных и их группировки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55

Вот здесь - на форуме много вопросов и объяснений к ним!

Нужно добавить данные пояснения - в руководство пользователя!

( А то приходится в тёмную искать доп.возможности... )

Желательно их конкретизируя!

К сожалению у меня появилась ещё одна мысль... :rolleyes:

Папка: С:\System Volume Information

Содержит данные ( Понятно какие )

И вот какая идея - анализ файлов/данных папки - возможно даже помещение подозрительных объектов в ZOO

Если нельзя найти в активной системе - то можно поискать в неактивной - найти и ИЗУЧИТЬ!

В автоматическом - через скрип режиме, или по выбору.

Доступ к папке через 1. виртуализацию.

( На слабых машинах это будет долго и следует отображать ход выполнения в %.

2. Вариант - Он ПРЕДПОЧТИТЕЛЬНЕЕ !

И думаю следует выбрать его - так как это реализовано более продуктивно - в плане времени.

В программе: Malwarebytes' Anti-Malware ( Механизм доступа мне неизвестен )

3.Acronis True Image Home 2010

Можно самостоятельно создать копию Папки - используя к примеру пробную 30 дневную версию и

посмотреть её содержимое - Отправить на изучение exe...

Фото прилагается.

1_ч.png

2_ч.png

3_ч.png

post-8956-1287874252_thumb.png

post-8956-1287874278_thumb.png

post-8956-1287874297_thumb.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55
Cледует добавить произвольный, пользовательский фильтр по всем записям образа!

1.Обязательно сделать! ( Ну очень хочу! )

Я давно об этом думаю - но всё никак не мог правильно сформулировать!

2. uVS а как насчёт генерации автоматического отчёта!!!

После выполнения скрипта/перезагрузки - Создавать ограниченный образ авто запуска - в рамках выполненного скрипта!

Какие задачи ставились и какой результат лечения. ( Сам скрипт + результат - мини образ )

Я наблюдаю - за работай тех поддержки и в ряде случаев у меня возникает сомнение в конечном

результате - ведь часто нет обратной связи - или нет времени на повторный анализ системы!

Нагрузка на тех поддержу постоянно возрастает и риск ошибки тоже ( неполное лечение )

3.кроме всего прочего: нет чёткой концепции написания скрипта - в том плане что неизвестно будет ли

достигнут желаемый результат. ( У каждого своё мнение какие команды отдавать)

4.Отчёт/ы и данные по ним будут полезны и ВАМ как разработчику программы.

И человеку написавшему скрипт.

Можно проанализировать свои ошибки и ПРОГРАММНЫЕ СБОИ при выполнении.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
santy
А тут проще сортировать по производителю в комбинации с отсевом известных и сразу все находится без поиска :)

угу, сортировками стал пользоваться после того как пропустил при написании скрипта один из подозрительных файлов, подписанный BitDefender. :). Похоже, они извлекли для себя урок, и сейчас стали чаще попадаться в одном образе автозапуска файлы (Spy.Shiz) подписанные разными производителями: VirusBlockAda, Kaspersky lab.

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

поскольку ввод с клавиатуры является фразой для поиска (это хорошо, кстати),

я вижу два варианта:

1. вместо поиска, включать фильтрацию если завершающий символ будет, например *, или по свободной функциональной клавише F,

2. или, если выбран фильтр "весь автозапуск", тогда вместо поиска сразу включать фильтрацию, выбор любого другого фильтра очищает фильтрующее выражение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55

Ввести поиск/регистрацию ярлыков с ссылкой на панель правления = dll.

Поиск для всех дисков - особенно для съёмных.

Дополнительно регистрировать информацию - о типе диска/носителя. ( Основной - съёмный )

Сейчас многие пользователи ставят на USB защиту от AUTORUN и, -

требуется затрачивать дополнительное время на анализ такого рода информации так как происходит обнаружение.

Если знать тип диска + установленные программы то это может упростить процесс.

2.Свести к минимуму ошибки оператора.

При закрытии/сохранении скрипта в uVS - АВТОМАТИЧЕСКИ - следует выдавать оператору предупреждение!

"В процессе работы,вами пропущен/не обработан подозрительный объект - ВЫ уверенны,что хотите завершить рабоТУ ?"

3.Что касается поиска, то можно сделать авторский вариант, + такой вариант поиска как в ESET SysInspector -

Отображение всех взаимосвязанных/взаимозависимых компонентов.

4.Какой самый известный/популярный поисковик в России? - Яндекс.

Возможно следует использовать ряд принципов поиска из него -

Например: Запрос с "*****" и без кавычек - И другие варианты.

Запрос/поиск по категориям.

И/Или запрос - поиск по всем категориям.

5.Я согласен,с мнением,что автор сам должен решить как оно будет проще, лучше и надёжнее.

Плодить Сущности нежелательно - НО! - без удобного поиска плохо!

С НАИЛУЧШИМИ ПОЖЕЛАНИЯМИ - СВОЙ RP55 ! :rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Umnik
один из подозрительных файлов, подписанный BitDefender. smile.gif. Похоже, они извлекли для себя урок, и сейчас стали чаще попадаться в одном образе автозапуска файлы (Spy.Shiz) подписанные разными производителями: VirusBlockAda, Kaspersky lab.

Чтооо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
santy
2.Свести к минимуму ошибки оператора.

При закрытии/сохранении скрипта в uVS - АВТОМАТИЧЕСКИ - следует выдавать оператору предупреждение!

"В процессе работы,вами пропущен/не обработан подозрительный объект - ВЫ уверенны,что хотите завершить рабоТУ ?"

PR55.PR55, вот не надо только превращать uVS в этакий говорящий Интернет Секьюрити. "Вы уверенны что хотите удалить именно этот файл, а не тот, другой и т.п.? Указано ведь в авторской концепции, что uVS делает все быстро и без подтверждений. В этом есть определенное преимущество.

Чтооо?

Сейчас поищу образ автозапуска, в котором поле производитель программы записано Kaspersky Lab, VirusBlockAda, естественно, это не цифровая подпись, появилось в последних вариантах Spy.Shiz, более защищенных и трудноудаляемых.

вот, в этой теме, например.

http://forum.esetnod32.ru/forum6/topic999/

Думаю, и Eset скоро появится в этом поле. :).

До этого стабильно шли BitDefender и производитель ccleaner Piriform, LTD.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Umnik
Сейчас поищу образ автозапуска, в котором поле производитель программы записано Kaspersky Lab, VirusBlockAda, естественно, это не цифровая подпись
естественно, это не цифровая подпись
это не цифровая подпись

Собственно вот правильные слова. А то, что я цитировал ранее - неправильные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55
PR55.PR55, вот не надо только превращать uVS в этакий говорящий Интернет Секьюрити.
"Вы уверенны что хотите удалить именно этот файл, а не тот, другой и т.п.?

В данном случае - я опять не совсем чётко сформулировал - речь идёт только о вкладке "Подозрительные и вирусы " :)

Можно и не писать - предупреждения, а сделать Светофор - Красный/Зелёный.

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

Я ведь не могу предложить - готовое решение.

Автор выбирает - делать, или нет и как делать.

*Моё мнение такое: Каждая новая идея - это стимул для мышления.

*И создания нового - Любая идея, в современном мире основана на полученной ранее информации и чем такой информации

больше тем больше спектр выбора.

*Вот придумали - Топор - он простой - Но! если обмотать рукоять металлом у обуха - то от такого простого действия инструмент станет

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

*С тем,что всё хорошо в меру - Я ПОЛНОСТЬЮ согласен - Но решение за Автором!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
demkd
С:\System Volume Information

uVS есть доступ в эту папку, но смысла опять же нет, там могут быть сотни мегабайт, а то и гигабайты.

А вот зачистку этих папок отдельным твиком как-нибудь сделаю.

Я давно об этом думаю - но всё никак не мог правильно сформулировать!

Надо стараться, это экономит мое время, несвязные обрывки фраз я больше даже читать не буду.

подписанные разными производителями: VirusBlockAda, Kaspersky lab.

подписи невалидные, uvs такие сразу закидывает в подозрительные при проверки цифр. подписи, поэтому их даже искать не нужно :)

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

нет, никаких светофоров, предупреждений, будет только раздражать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
demkd

PR55.PR55

Я вообще не понимаю, какая проблема с обработкой подозрительных? Почему бы не разобраться с подозрительными в первую очередь, что-то сделать проверенным соотв. кнопкой, что-то прибибить, ведь минутное дело, тем более если предварительно вдавить F4 и железно отсеять 80-90% всего списка и часть ложноподозиртельных по своей личной базе проверенных, а вот затем можно уже рыть остатки на предмет странностей. А хелперам еще проще, ведь можно добавить хэши всех продуктов того же ESET-а и содержать их в актуальнм виде, что еще больше ускорит процесс, а мою базу просто переодически импортировать в свою личную или общую.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
santy
А хелперам еще проще, ведь можно добавить хэши всех продуктов того же ESET-а и содержать их в актуальнм виде, что еще больше ускорит процесс, а мою базу просто переодически импортировать в свою личную или общую.

вот здесь, качественный скачок в развитие uVS, поскольку функции поддержки пользовательских списков безопасных файлов и пользовательской базы сигнатур позволяют исследователю создать свой мини-вирлаб, интегрировать личные списки и базы в общие в интересах ИТ-сообщества. (отсюда и преимущество связки addsgn+chklst+delvir перед командой delall file, поскольку в первом случае накапливаются сигнатуры, подобно оружейному плутонию в реакторе АЭС :))

в будущем, возможно будет полезным ведение_просмотр базы сигнатур с возможностью переименования, удаления "лишних".

так же будет полезен запуск start.exe с указанием файла образа автозапуска, чтобы сразу грузить исследуемый образ в uVS.

start.exe /key file

или

start.exe /key ip_address

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
demkd
позволяют исследователю создать свой мини-вирлаб

мало кто это понимает, еще меньше тех кто этим пользуется :)

накапливаются сигнатуры

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

в будущем, возможно будет полезным ведение_просмотр базы сигнатур с возможностью переименования, удаления "лишних".

А как бы есть в соотв. категории, саму сигнатру смотреть нельзя, ибо смысла ноль, в базе лишь уникальные хранятся, второй раз не добавить одно и тоже, а вот переименовать/удалить, отрегулировать длину это легко.

так же будет полезен запуск start.exe с указанием файла образа автозапуска

в целом может быть и полезен если название файла всегда одно...

И по поиску, реализовал три вида, обычный, фильтрующий и фильтрующий по первым буквам, в целом приятно выглядит, может даже будет иногда полезно :)

Работать будет в любой категории и всегда по имени объекта вне зависимости от сортировки и регистра букв, ничего доп. нажимать или выбирать не нужно будет, просто напечатать набор букв и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55
какая проблема с обработкой подозрительных?

Проблем нет!

Просто помимо программного поиска - добавить поиск по выбору пользователя - на наличие взаимосвязанных данных или по имени.

Находить - не только Угрозы но и любые необходимые объекты - Для сбора и анализа дополнительных данных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55
в целом может быть и полезен Если название файла всегда Одно...

Можно просто работать с одной и той же папкой.

Просто uVS должна помнить предыдущий путь к папке/объекту!

Например в таком виде.

C:\Documents and Settings\User\Рабочий стол\uVS.ESET ( Номер темы - форума + Веб страница - для автономной работы)

И по поиску, реализовал три вида, обычный, фильтрующий и фильтрующий по первым буквам, в целом приятно выглядит, может даже будет иногда полезно smile.gif

Работать будет в любой категории и всегда по имени объекта вне зависимости от сортировки и регистра букв, ничего доп. нажимать или выбирать не нужно будет, просто напечатать набор букв и все.

СУПЕР!!! :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
PR55.RP55

Откл.драйверы и сервисы.

1.Практически всегда есть отключённые - даже сразу после инсталляции Windows.

Вероятно следует соотносить время отключения с временем установки Windows и информировать об этом отдельно.

Просто выделить цветом строку - Если сохранилась информация. ( Но настаивать я не буду,а то уже боюсь,что это тоже лишнее ) ;)

2.Ряд пользователей настоятельно требует объяснить КАК выполнить СКРИПТ !

А зачем портить нервы и 25 раз объяснять - одно и тоже !

СКРИПТ: Должен выполняться - Автоматически ЕСЛИ ПОМЕЩЁН в папку с uVS !

Поместил в папку - запустил - start.exe из папки с uVS и всё!

Программа сама проверяет его наличие - по строке ввода.

Если требуется - выполнить несколько скриптов - То Программа автоматически запомнит/определит наличие предыдущего скрипта -

по строке ввода.

Автоматически - удалит старый и выполнит новый.

3.После лечения остаётся много битых файлов.

Добавить в Скрипт команду SFC

Если у пользователя будет диск с Windows он сможет восстановить файлы - просто поместив диск в дисковод.

И на новом образе uVS вероятно уже не будет засветок от битых объектов.

P.S.

Форум для того и существует,чтобы можно было высказать своё мнение по теме ?

Я предлагаю варианты - может я и неправ, но считаю,что стоит высказать своё мнение. :):rolleyes:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Сообщения

    • PR55.RP55
      SQx То, что я выше написал сделать можно -  если есть доступ к PC. Однако не при работе со скриптом. Я  для Demkd  написал. В скрипт добавлять команды типа: adds criterion delref   fuckyoumm2_filter Checks the list by criterion т.е. добавлен критерий ( с выбором типа команды ) >  проверяется список > найденный по критерию объект удаляется.      
    • SQx
      Ранее с критериями не дружил, попробую в следующий раз, спасибо.
    • SQx
      Спасибо за информацию, но чтобы на верняка не испортить ОС пользователя, удалил спомощью FRST.
      В следующий раз попробую через uVS.
       
    • PR55.RP55
      Однако это не решение вопроса. ------------ Можно удалять объект ориентируясь не на имя, а на поисковый критерий. Оператор задаёт поисковый критерий > проверяет по нему список  > при необходимости корректирует критерий  > задаёт тип команды - на удаление > Команда ( автоматически ) пишется в скрипт.
    • Alushaa
      В плане улучшения своей работоспособности есть отличный сайт https://filzor.ru/news/preparaty_dlya_povysheniya_rabotosposobnosti/  Которым я пользуюсь с большим удовольствием и вам его настоятельно рекомендую изучить
×