— Да что за дичь ты несешь?
— Ну что подстрелил, то и несу.
Вакцинация от COVID-19, личный опыт.
Попросили написать, а как мы там с прививками. Я не настолько научен, чтобы всех антипрививочников убивать, и не настолько антинаучен, чтобы отрицать эпидемии и пользу прививок. Но, конечно же, прививаться или нет, моя заметка не обязывает и даже не агитирует. Это просто собственный опыт, который был осуществлен, как по производственной необходимости, так и потому, что я любитель экспериментов, и готов некоторые делать и на себе.
Да, вакцинировался «Спутником-V» (она же Гам-COVID-Вак), причем еще до начала массовой вакцинации, т.к. иначе было никак, надо было ехать. Впрочем да, послушал Латынину, которая посоветовала при первой возможности вакцинироваться «хоть тушкой, хоть чучелком». И из личного опыта, да, кое-кто помер от ковидлы, а кто переболел тяжело, рассказывал, как это погано. Трубка во рту мне не улыбалась.
Итак, первый раз вакцинировался в Карелии. Поскольку, вакцинация тогда для всех еще не проводилось, только для групп риска — пришлось пойти на хитрость. Поддерживаю в этом случае Вербицкого, пора организовывать общество защиты коррупции. Ну ладно, оставим эти мелочи, теперь только про симптомы и сам процесс.
Не употреблял алкоголя перед вакцинацией неделю (тогда было хз, что можно не пить только 3 дня). После укола был небольшой жар и тяжесть в руке, куда был сделан укол, это постепенно распространялось, но примерно через 2 часа спало.
К вечеру было ощущение, что резко ни с того ни с сего начался классический будун — голова тяжелая, подташнивает, и в целом тяжело. Температуру не мерил, лег спать. Уснул нормально, но на второй день проснулся рано, как с бодуна, но с явной температурой. Померил, ну да, самая неприятная по ощущениям, 37,5, а с учетом того, что у меня стабильно низкая, на уровне 35,8-36,1 — вообще противно. Употребил «Ибуклин», температура опустилась. И так еще два раза за день, поднимается, жру «Ибуклин», падает. На третий день все прошло.
Вакцинацию вторым компонентом делал уже в MSK. Первые симптомы все те же (жар в руке и легкая боль в месте укола), но температура на 37,5 поднялась где-то через три часа и уже не снижалась два дня, но сбивалась «Ибуклином». На третий день, опять же все прошло.
Да, прошло достаточное время, чтобы снять титры антител, обязательно поделюсь позже, как этот самый «Спутник-V» отработал.
Но на первый взгляд, работать оно должно. И еще из наблюдений и отзывов знакомых — говорят, пенсионеры прививку переносят почти без побочек. Хотя это может свидетельствовать о том, что она на них хреново работает — попробую уточнить данный вопрос. А так да, прививка противная, в отличии от ежегодной прививки от гриппа или от энцефалита (клещевого).
Плакатов Пэйпердемона бояться не надо, пока я на стороне Латыниной, колитесь хоть западными вакцинами, хоть «Спутником». Шанс пострадать от вакцины гораздо меньше, чем получить трубку в горло от ковидлы.
Пародия на студию Бесогон ТВ
Рыжего сёра Пихалкова. Прислал знакомый.

Кстати, народ, подо что можно старые телефоны приспособить? Идеи есть?
Таки с гетом!
Модель Солнечной системы.
Забавная моделька Солнечной системы с возможностью показывать положение планет на любую дату.

Большой скриншот можно посмотреть по клику
— Отображение положения планет на любую дату, задав точную дату или передвинув специальный элемент управления.
— Возможность «перемотки» Солнечной системы вперед или назад специальным ползунком или клавишами управления курсором ( <--«влево» и «вправо» -->), остановка «перемотки» клавишей «вниз».
— Показ фазы Луны.
— Переключение модели между гелиоцентрической системой Коперника и гео-гелиоцентрической системой Тихо Браге
— Переключение между месяцами года и зодиакальным кругом.
— Приятная музыка (по необходимости), можно использовать программу, как заставку-залипашку.

Скачать
С Mega.nz RAR (SWF + EXE)
Гимн Программистов и другие приключения Пухлого.

О, нашел еще один офигенный старый мультик, «Гимн программистов и другие приключения Пухлого», он тоже был флэшевский. Так что я его обэкзешил, как было описано тут (копия)
Flash умер, да здравствует Flash!
Прислал мне тут товарищ письмо, что не может просмотреть старые мультики во Flash, я думал, что смогу их довольно быстро переконвертировать, но у меня тоже прямо сразу не получилось, т.к. в системе не оказалось соответствующего плеера/плагинов (просто забыл их поставить при установке).
Немного истории. Flash в свое время был практически революционной технологией — на маленькой (даже модемной) скорости прямо в браузере можно было смотреть 2D-мультфильмы или играть в мини-игры. Впрочем, на Flash писались и весьма неплохие проекты типа Punk’s Not Dead (копия), которые работали и в оффлайне. Вообще для простой мини-игры или мультика достаточно было скачать SWF-файл и запускать его в оффлайне с помощью специального плеера от Adobe, разработчика Flash.
Были даже целые сайты и полутекстовые онлайн-RPG, основанные на Flash. Например, когда я учился в универе, то залипал в Бойцовский Клуб
Сама технология Flash сочетала векторную графику, которая не зависит от разрешения, т.е. она может масштабироваться, и простой C-подобный язык программирования Actionscript, который позволял управлять объектами в мультфильме или игре. Порог вхождения во Flash был очень низким, что позволяло рисовать мультики или писать приложения кому угодно. К сожалению, формат был закрытым, и никто не сделал опенсорсную реализацию.
31 декабря индусско-ниггерские обезьяны из компании Adobeblya полностью прекратили мало того, что обновления, так еще и стерли последнюю версию кодека/плеера со своих официальных сайтов. Но все (пока) можно исправить, сейчас расскажу как.
Дело в том, что можно было объединить файл SWF с самим плеером, т.е. к файлу SWF прикреплялся модуль EXE и его можно было запускать без плеера, как приложение Windows, плеер был встроен, примерно как самораспаковывающийся архив. Этим и воспользуемся.
Это, кстати, даже имелось как возможность при разработке во Flash, как опция, предоставленная Adobe, собрать ролик в SWF или EXE.
1. Нам понадобится программа Flash Builder (ссылки в конце заметки). Скачиваем, распаковываем, устанавливаем, запускаем.

2. В верхней части окна напротив поля SWF file нажимаем кнопку Browse (1) и выбираем нужный SWF-файл.
3. Остальные опции (Icon File и Splash Screen File) можно пропустить.
4. В нижнем списке (3) выбираем режим окна Flash-приложения:
— Полный экран (Full Screen)

— Окно без заголовка (Window without title bar)

— Окно с заголовком (Window with title bar)

— Окно с заголовком и кнопкой масштабирования окна (Window with title bar and Maximize Button)

— Окно без рамки (Window without Border). Выглядит также, как и на полный экран, только в окне, так что без картинки 🙂
Рекомендую выбирать режим «Окно с заголовком и кнопкой масштабирования окна (Window with title bar and Maximize Button)«, т.к. он самый удобный. На полный экран ролик может стать незакрываемым, а с кнопкой масштабирования у пользователя останется возможность развернуть ролик на весь экран.
Также рекомендую изменить фон ролика (2) c Transparent Background (прозрачный фон) или Transparent Background with text fix (прозрачный фон с исправлением текста) на Solid Background (непрозрачный фон) и выбрать кнопкой рядом с выпадающим списком (2) цвет из палитры.
Прозрачный фон не дает возможность изменить вид окна (доступен только Full Screen), да и выглядит эта прозрачность довольно противно.
Обычно для роликов следует выбирать черный или белый фон, но иногда приходится экспериментировать. Например, для Padonki in da flash (копия) лучше всего подошел серый фон.
Flash Builder 1.40 с официального сайта
Flash Builder 1.40, копия на Mega.NZ
«Отключите Сервер», пародия на «Задержите поезд» Паука
Отключите сервер кто-то взял и убрал всю цензуру
Ночью из тюрьмы сбежал опасный программист
Нет бесполезно рыдать и стирать свою историю
В кровавом рунете из костей и целого Путина.
Отключите сервер и убейте программиста
Отключите сервер номер шесть шесть шесть
Скорость ужасы страх кошмар и паранойя
Сатанинский провайдер сжег Роскомнадзор
Полная свобода и нет ниче святого
Не убежать тебе, блядь, Путин вор!
Отключите сервер и убейте программиста
Отключите сервер номер шесть шесть шесть
Отключите сервер и убейте программиста
Отключите сервер номер шесть шесть шесть
Отключите сервер и убейте программиста
Отключите сервер номер шесть шесть шесть
Замечание
Гора всегда рождает мышь, ибо мышь живет внутри горы.
ПАДОНКИ in da flash

Прислали абсолютно неполиткорректный мультик, аж 2004 г., созданный неким Дядей Федором с сайта udaff.com, про приключения падонка Падонок и его друга растамана Марли. Причем, по нынешним временам, мульт получился неполиткорректным с обоих сторон, что с западной (в первой серии ЛГБТ-демонстрацию давят бульдозером), что со стороны ГОРФ, бо герои постоянно употребляют РОСКОМНАДЗОР. Также имеется обкуренный колобок, а восьмая серия — не серия, а flash-игрушка, где надо в гей-клубе «КАКУНЕГРАВ» отстреливать посетителей (нечто наподобие известной «Куриной охоты»).

Вроде бы в сборнике нет 4 серии, но ее там могло и изначально не быть (была 3.1).
В общем, такой DIV-трэшачок для подростков, но мне нравится 🙂
Пересобрал оригинальные SWF-ки в EXE, так что смотреть можно в винде, где сдох или вообще не поставлен был Flash-player, который, один хрен блядиадобы удалили с сайта. Хорошо, что у меня все их продукты исключительно ворованные, ну не зря оракул местного разлива — сразу знал, что у анальных проушин воровать надо.
ПАДОНКИ in da flash (RAR: SWF + SWF EXE) с Mega.nz
ПАДОНКИ in da flash (RAR: SWF + SWF EXE) с Google.Drive
Замечательные опечатки
Комар на улице Вязов
О шмоньке Соловьеве, aka Вечерний Мудозвон и о накрутках.
Вместо преамбулы скажу сразу вывод, да Соловьева абсолютно законно выпиздил из трендов Ютуб. И абсолютно в соответствии со своими правилами. И зря Роскомнадзор запрещает аниме, т.к. им же реклама на некоторых аниме-сайтах просмотры и накручивает.
Итак, сижу я, никого не трогаю, новости на kasparov.ru читаю, вдруг вижу — Расчленинградский суд запретил аниме «Токийский взрыв» оно же «Террор в Токио» про подростков, которые сбежали от современной версии Отряда 731 и пытаются таки донести мысль, что нацисты не сдохли, и они даже есть в рядах японского правительства, и японские империалисты даже атомную бомбу втихую собрали. Так что вроде как и запрещать его не надо, все про крымнаш, антифашизм и даже деды воевале.
Сижу я, никого не трогаю, примус починяю , в смысле аниме смотрю, тут вдруг вижу вот это:

(полное разрешение)
Небольшое расследование
Оно совсем небольшое, но тем не менее. У плеера kodik.info, где он был внедрен на сайт каталога аниме, есть некая база аниме (что вообще так-то хорошо, информация должна быть свободной). Ну так вот, сайты с контентом не держат контент у себя, а подключают плеер, а плеер (точнее, хозяева плеера) показывают рекламу и аниме. А чтобы купить показ в плеере kodik, нужно потратить несколько мертвых президентов США. И, они не на хеллоуин, они на долларовых купюрах. Пока не буду говорить, как я купил рекламу у kodik.info, мы придержим. Но просьба распространить, чтоб у вечернего М. пукан подорвался. Так что Ютуб вполне норм выебал Соловьева, вечернего М. за накрутку.
Удачи вам и любви!
Пакетный конвертер (перекодировщик) текстовых файлов v 0.0.3b
Обновление пакетного конвертера текстовых файлов.
Благодарим всех, кто сообщил о багах.
+ Изменения в алгоритме поиска файлов
+ Поправлен баг с сохранением конфигурации (масок файлов)
C#, поиск файла по маске, более правильное решение.
Когда-то уже говорил (копия) что стандартная функция C# Directory.GetFiles(); неправильно ищет файлы по маске. И даже сделал на скорую руку кривофикс, но кривофикс действительно оказался именно что криво. Во-первых, срабатывал только для некоторых масок, а во-вторых, оказался чувствительным к регистру имен файлов. Делаем более прямое исправление.
Заведем вспомогательную функцию, которая будет добавлять конечный слэш (\) к имени директории. Оно не особо надо, но пусть будет для порядка.
private static string AddSlash(string st)
{
if (st.EndsWith("\\"))
{
return st;
}
return st + "\\";
}
И функцию, получающую имя файла из полного пути. Конечно, можно было бы воспользоваться классом FileInfo из System.IO, но тут операция совсем уж простая, а FileInfo может сгенерировать ненужный Exception. Проще получить имя файла с помощью строковой операции:
private static string GetNameOnly(string FullName)
{
int LastSlash = FullName.LastIndexOf("\\");
if (LastSlash == -1) return FullName;
return FullName.Substring(LastSlash + 1);
}
Да, я таки решил воспользоваться нелюбимыми регекспами. Впрочем, маска файла и есть регулярное выражение, только с упрощенным синтаксисом.
1. В имени файла могут встретиться символы, считающиеся служебными в регулярном выражении (.,^,$,{,},[,],(,),+), их необходимо экранировать, чтоб они воспринимались обработчиком регулярных выражений, как обычные, а не служебные символы.
//точка в маске файла должна быть точкой в регулярном выражении
//экранируем
Mask = Mask.Replace(".", "\\.");
//^,$,{,},[,],(,),+ в regexp служебные, в именах файла допустимые
//экранируем
Mask = Mask.Replace("^", "\\^");
Mask = Mask.Replace("$", "\\$");
Mask = Mask.Replace("{", "\\{");
Mask = Mask.Replace("}", "\\}");
Mask = Mask.Replace("[", "\\[");
Mask = Mask.Replace("[", "\\[");
Mask = Mask.Replace("(", "\\(");
Mask = Mask.Replace(")", "\\(");
Mask = Mask.Replace("+", "\\+");
2. * — в маске файла это любой символ, или их отсутствие. В регулярном выражении этому соответствует комбинация .*, заменяем:
Mask = Mask.Replace("*", ".*");
3. ? в маске файла — любой существующий символ. В регулярном выражении это символ . (точка), заменяем:
Mask = Mask.Replace("?", ".");
4. Осталось ограничить работу регулярного выражения началом и концом строки, строкой будет являться имя (маска) файла. Начало строки обозначается символом ^, конец символом $. Добавляем:
Mask = "^" + Mask + "$";
Функция целиком:
private static string Mask2Reg(string Mask)
{
//точка в маске файла должна быть точкой в регулярном выражении
//экранируем
Mask = Mask.Replace(".", "\\.");
//^,$,{,},[,],(,),+ в regexp служебные, в именах файла допустимые
//экранируем
Mask = Mask.Replace("^", "\\^");
Mask = Mask.Replace("$", "\\$");
Mask = Mask.Replace("{", "\\{");
Mask = Mask.Replace("}", "\\}");
Mask = Mask.Replace("[", "\\[");
Mask = Mask.Replace("[", "\\[");
Mask = Mask.Replace("(", "\\(");
Mask = Mask.Replace(")", "\\(");
Mask = Mask.Replace("+", "\\+");
//* - любое количество любого символа,
//в regexp любой символ - точка, любое количество *
Mask = Mask.Replace("*", ".*");
//? - любой символ, в regexp любой символ - точка.
Mask = Mask.Replace("?", ".");
//добавляем начало и конец строки к имени файла.
Mask = "^" + Mask + "$";
return Mask;
}
В модифицированную функцию поиска передаются такие же параметры, как и в функцию Directory.GetFiles(); т.е. маска файла, путь до каталога и перечисление SearchOption, которое может принимать два значения: SearchOption.AllDirectories — поиск с подкаталогами и SearchOption.TopDirectoryOnly — поиск только в текущем каталоге.
Внутри функции:
1. Преобразуем маску файла в регулярное выражение:
string MaskRegStr = Mask2Reg(sMask);
2. Добавляем слеш к пути поиска (на всякий случай):
sPath = AddSlash(sPath);
3. Заводим List<string>, куда будем складировать отфильтрованные файлы из найденных (на то, как криво работает Directory.GetFiles() есть ссылки в начале заметки).
List<string> FoundFiles = new List<string>();
4. Создаем обработчик регулярных выражений с опцией RegexOptions.IgnoreCase, чтобы игнорировать регистр входной строки (в нашем случае — имени файла).
Regex MaskReg = new Regex(MaskRegStr, RegexOptions.IgnoreCase);
5. Вызываем функцию поиска из System.IO:
string[] files = Directory.GetFiles(sPath, sMask, SO);
6. Фильтруем вывод на предмет лишних файлов (см. подробнее по ссылке в начале заметки). Фильтрация производится путем сравнения имени файла с ранее сгенерированным регулярным выражением. Если имя файла соответствует регулярке, оно добавляется в List:
foreach (string filename in files)
{
if (MaskReg.IsMatch(GetNameOnly(filename)))
{
FoundFiles.Add(filename);
}
}
7. Результат возвращается в виде строкового массива:
return FoundFiles.ToArray();
Функция целиком:
public static string[] Find(string sPath, string sMask, SearchOption SO)
{
string MaskRegStr = Mask2Reg(sMask);
sPath = AddSlash(sPath);
List<string> FoundFiles = new List<string>();
Regex MaskReg = new Regex(MaskRegStr, RegexOptions.IgnoreCase);
string[] files = Directory.GetFiles(sPath, sMask, SO);
foreach (string filename in files)
{
if (MaskReg.IsMatch(GetNameOnly(filename)))
{
FoundFiles.Add(filename);
}
}
return FoundFiles.ToArray();
}
Вроде бы в этот раз все предусмотрел, и глюкоопцию встроенной функции поправил, и в регулярке нигде не наебался.
Песня про НЛО.
Вспомнилась детская, почти крипи-стори. Итак, прикиньте, начало 90-х, по телеку идут 600 секунд и передача «НЛО — Необъявленный Визит» с Мягченковым. И вот, в садике я долго объяснял одногруппнику что НЛО существуют, и даже песня про них есть. Ее по радио передают.
Я даже сходил к воспитательнице и спросил, кто такая кавалер-барышня, поскольку в те годы транс было транспортным агентством, а трап — деталью от корабля, воспитательница мне рассказала историю про кавалерист-девицу, которая прикинулась парнем, чтобы пойти служить. Вот тут-то у меня все в голове окончательно сложилось, песня про НЛО:
Крутится-вертится шар голубой
Крутится-вертится над головой (НЛО же, иначе хуле ему вертеться)
Крутится-вертится, хочет упасть (приземляется)
Кавалер-барышню хочет украсть (хочет унести для исследований нетипичную девушку, которая хочет служить в армии).
Такие дела.
Обновили страницу «О блоге»
Наконец, все сфоткались. Или нашли подходящие фотографии 🙂 А то аж с 2017 года собраться не могли.
Марковые трипы.
Диклеймер №1. Автор не призывает к употреблению наркотиков в любом виде, записи были сохранены исключительно для целей научного исследования для специалистов-наркологов. Если Вы не являетесь врачом-наркологом, пожалуйста, не читайте эти тексты. Наркотики вредят вашему здоровью.
Диклеймер №2. Специально для Администрации LJ.Rossia.Org
Пост не содержит активных ссылок и скрытой рекламы, или же продакт-плейсминга. Пост создан исключительно в научных целях, сам архив с записями сохранен на другом ресурсе, поставщика описанных марок не уже существует.
Примечание: Архив защищен паролем, пароль указан в комментарии архива. Формат архива RAR5, формат текстов TXT. Кодировка: Windows 1251 и UTF-8.
Политически правильный ремонт возвращается.
Раз уж речь зашла о фотках. Пока я тут отдыхаю, в нашем офисе (который нам таки с концами достался) делают ремонт. Там и до этого была политически правильная стена (копия), а теперь еще и парень, который нашего аффтара фотографировал, и Отаву (флаг Ухтинской Республики) дорисовал.

За странное сочетание цветов говном не кидайтесь, фотки были с разных фотоаппаратов, а я попытался типа панораму сделать, т.к. единым кадром вся стена в кадр не помещалась. В общем, вениаминожаба получилась 🙂
По клику по изображению — крупный вариант.
Полы ребята, кстати, классно сделали. Сняли краску и покрыли в 3 слоя паркетным лаком, и светло, и текстура дерева видна. А то в ГОРФ, как и в совке — пол особо ничем не покрасить, во всех магазинах есть три цвета — темно-поносный, поносный и светло-поносный. Так что сошлись на паркетном лаке, ибо заказывать стойкую краску для пола из Голландии я не одобрил, 8 000 с доставкой.
Покупайте наших полов!
А в руке его горит маленький фонарик…
Пока я тут отдыхаю, нежась в тепле, наш автор таки вышел с фонариком.
Ничего страшного пока не случилось, но глазки и нашивку на рабочей куртке парня мы таки закрыли.


Такие дела.
Шпионский ярлык, небольшая заметка с экспериментом.
Заметка началась с небольшой просьбы, найти сигнатуру ярлыка (shortcut) Windows, т.е. LNK-файла, а вылезло несколько интересных вещей, которые стоит оставить, как зарубку на память.
Отвечаю на поставленный вопрос. Любой файл LNK начинается с четырех байт (hex):
4C 00 00 00
Так вот, почему ярлык шпиона? Да потому что ярлык, кроме указания пути к файлу, на который он ссылается, рабочего каталога и типа окна открытого файла (программы) сохраняет странные и непонятно для чего нужные метаданные:
— исходный путь файла и его временные метки (полный путь, время доступа к целевому файлу (UTC), время создания целевого файла (UTC), время изменения целевого файла (UTC)).
— тип тома, с которого файл был открыт (съемный носитель, обычный том, виртуальный том)
— серийный номер тома (серийный номер привода)
— метка тома
— NetBIOS-имя устройства (сетевое имя компьютера)
— MAC-адрес устройства. Впрочем, MAC-адрес устанавливается по какому-то странному алгоритму, на машине с несколькими сетевыми картами оно получается несколько рандомно. Не совсем понял, как это устроено, кто знает — напишите в комментариях.
— размер целевого файла (байт) — размер файла, с которым ассоциирован ярлык
Зачем это делается, не совсем понятно.
Почитать подробнее можно по следующим ссылкам:
— Токсичные ярлыки в Windows: старый артефакт, не забытый хакерами, но частично забытый криминалистами (копия в PDF)
— Какую информацию можно получить из ярлыка? (копия в PDF)
В первой статье анализ проводился платными программами для расследования инцидентов кибербезопасности, но кое-что можно посмотреть и бесплатно, программой Windows File Analyzer, описана во второй статье, не буду повторяться, оставлю ссылки на скачивание:
— С сайта разработчика
— Копия на Mega.nz
Известно, что Office и некоторые другие программы хранят ярлыки последних сохраненных документов в специальных каталогах для того, чтобы потом показывать пользователю список открытых документов. Так вот, решил провести эксперимент — создать файл с каким-нибудь красноречивым компрометирующим именем, а потом изменить свойства ярлыка и посмотреть, что получится.
Итак, создаем пустой файл с именем, например, PutinBombaVzryvChechency.doc и создаем ярлык. Смотрим содержимое ярлыка в шестнадцатеричном редакторе (красным выделил сигнатуру файла LNK):

Создаем файл kotik.doc и пытаемся поменять ярлык через «Свойства ярлыка», на несуществующий файл ссылку стандартным способом сделать нельзя, потому делаем на существующий файл:

Проверяем, открывая измененный ярлык в HEX-редакторе.

Пробуем изменить ярлык программно, с помощью класса vbAccelerator.Components.Shell, через WinAPI (копия заметки):
string lnkname = @"C:\Temp\PutinBombaVzryvChechency.doc - Ярлык.lnk";
ShellLink lnk = new ShellLink();
lnk.Open(lnkname);
lnk.Target = "X:\\NoFile.doc";
lnk.WorkingDirectory = "X:\\";
lnk.Save();

Проверяем в HEX-редакторе:

Все еще хуже.
Подробной гипотезы о том, почему оно так работает, у меня нет, но к определенным мыслям это приводит. Например, при удалении ярлыков последних документов их лучше всего удалять безопасным удалением (т.е. с полной перезаписью содержимого файла LNK). Конечно, можно разобраться в формате файла (тем более, он опубликован), но мало ли что MS добавит туда в будущем. А в целом, ситуация дискомфортная, даже если и ложечки найдутся, осадок останется, т.к. обычно мало кто обращает внимание на такую незначительную мелочь, как ярлык, а восстанавливаются (если они были удалены стандартным образом) они достаточно просто, сигнатурным поиском по диску.

