четверг, 31 марта 2011 г.

О вируса, антивирусах и методике борьбы с ними.

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

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

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

3. В наибольшей степени подвержены заражению компьютеры под управлением операционной системы семейства Microsoft Windows. Это происходит потому, что это пожалуй самое распространенное на сегодняшний день в мире программное обеспечение. Такое положение вещей достигается не только грамотной политикой компании, но и функциональностью и удобством в работе с их продуктом. Однако усложнение любой программы непременно ведет и к увеличению числа различных уязвимостей. Поэтому в работе с такой операционной системой особенно важно вовремя устанавливать все последние обновления и заплаты.

4. Теоретические основы создания компьютерных вирусов были заложены в 40-х годах прошлого столетия американским ученым Джоном фон Нейманом (John von Neumann), который также известен как автор базовых принципов работы современного компьютера. В то время компьютеров было очень мало, они имели большие размеры, занимали обширные площади и использовались исключительно в научных целях.

5. Первый настоящий компьютерный вирус Pervading Animal появился в конце 1960-х годов и представлял собой игру, написанную с непреднамеренной ошибкой. Первым сетевым червем стал Creeper (конец 1970-х), умевший самостоятельно выйти в сеть через модем и записать свою копию на удаленной машине. Первый троян - Aids Information Diskette (1989 год) сразу вызвал эпидемию: будучи зараженным такой компьютер после 90 перезагрузок операционной системы показывал пользователю требование перевести на указанный в нем адрес $189, при этом все остальные файлы жесткого диска становились недоступны.

6. Первую глобальную эпидемию вызвал Brain (1986 год), по совместительству первый вирус для IBM-совместимых компьютеров, а также стелс-вирус. Он был написан в Пакистане двумя братьями-программистами с целью определения уровня пиратства у себя в стране.

7. Среди вредоносных программ выделяют четыре основных типа:
Вирусы
Черви
Трояны
Другие: условно опасные программы (riskware, adware, pornware), шпионские программы (spyware), хакерские утилиты и злые шутки

8. Каждый из вышеперечисленных типов вредоносных программ отличается от других методом распространения, средой обитания и наносимым вредом.

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

10. Для проверки работоспособности установленной антивирусной защиты существует специальный тестовый вирус - Eicar. Все ведущие антивирусные продукты его детектируют, при этом никаких действий он не совершает. Загрузить сам тестовый вирус в разных форматах или инструкцию по его написанию можно на сайте www.eicar.org
Основанием для подозрения на наличие вируса в системе могут служить:
Внезапное и несанкционированное изменение настроек браузера
Необычные всплывающие окна и другие сообщения
Неожиданный несанкционированный дозвон в Интернет
Самопроизвольное блокирование антивирусной программы
Невозможность загрузки файлов с веб-сайтов антивирусных компаний
Необоснованные на первый взгляд сбои в работе операционной системы или других программ
Почтовые уведомления с заслуживающих доверие сайтов об отправке пользователем инфицированных сообщений

11. При подозрении на заражение системы вирусом в первую очередь рекомендуется:
Проверить наличие в оперативной памяти подозрительных процессов
Проанализировать элементы автозапуска: в меню автозагрузки, в системном реестре Windows, в конфигурационных файлах win.ini и system.ini
Вывести список всех сетевых соединений и убедиться в отсутствии подозрительной сетевой активности
Ознакомиться с последними новостями на сайтах антивирусных компаний и в случае оглашения эпидемии какого-либо вируса сравнить его проявления и теми, которые наблюдаются на компьютере
Проверить отсутствие на жестком диске подозрительных файлов (в соответствии с описаниями последних вирусов)

12. Для предотвращения проникновения в систему вредоносной программы необходимо соблюдать следующие правила:
Вовремя устанавливать последние обновления и заплаты используемого программного обеспечения, особенно - операционной системы семейства Microsoft Windows
Перед чтением данных с любого сменного носителя (дискета, компакт диск, flash-память и др.) обязательно проводить проверку на наличие на нем вирусов
Не загружать из Интернет файлы неизвестного происхождения, тем более - программы, и не устанавливать их. Особенно это касается не заслуживающих доверия сайтов
Не открывать электронные письма, полученные от незнакомых людей или имеющие подозрительную тему сообщения
Если на компьютере установлен антивирус - никогда не выключать постоянную проверку, поддерживать актуальность антивирусных баз (загружая обновления не реже одного раза в три дня), каждую неделю проводить тщательную проверку всего диска на наличие на нем вирусов
Использование брандмауэра, пусть даже встроенного в операционную систему, также крайне желательно
При интенсивном обмене электронными сообщениями или привычке оставлять свой электронный адрес на публичных сайтах, рекомендуется установить и использовать антиспамовую программу
Самостоятельно даже не пытаться создавать вредоносные программы или сознательно участвовать в их распространении, поскольку в Уголовном Кодексе Российской Федерации есть ряд статей, предусматривающих наказание за такую деятельность, вплоть до лишения свободы на срок до пяти лет, а современные технологии позволяют достаточно быстро вычислить автора или распространителя

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

14. Установка и правильная настройка антивирусного программного обеспечения - это самый надежный способ обеспечить защиту против вредоносных программ. В своей работе антивирус использует следующие технологии:
Сигнатурный анализ
Эвристический анализ

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

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

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

15. Среди всех антивирусных средств выделяют три основные группы - предназначенные для домашнего использования, для комплексной защиты локальной сети и для установки на мобильные устройства. При этом программы для защиты сети делятся на четыре антивирусных комплекса в соответствии с функциями компьютеров, на которые они устанавливаются. Это:
Антивирусный комплекс для защиты рабочих станций
Антивирусный комплекс для защиты сетевых серверов
Антивирусный комплекс для защиты почтовых систем
Антивирусный комплекс для защиты шлюзов
Комплексная антивирусная защита типовой сети содержит три уровня:
Уровень защиты рабочих станций и сетевых серверов (используются комплексы для защиты рабочих станций и сетевых серверов) - покрывает все компьютеры сети, вне зависимости от выполняемых ими функций (в том числе почтовые сервера и шлюзы)
Уровень защиты почтовых систем (комплекс для защиты почтовых систем) - интегрируется с почтовой системой и проверяет на вирусы всю входящую и исходящую из локальной сети корреспонденцию
Уровень защиты шлюзов (комплекс для защиты шлюзов) - блокирует проникновение вирусов через HTTP-, FTP- и SMTP-трафик, связывающий локальную сеть с внешним миром (обычно с сетью Интернет)
В случае большой локальной сети оказывается очень полезным наличие программы для удаленного централизованного управления. Она позволяет администратору проводить обновление антивирусных баз, модифицировать настройки, запускать или останавливать антивирусную защиту на всех подведомственных ему компьютерах удаленно и централизованно. При этом сбор статистики также происходит централизованно, что позволяет эффективно контролировать вирусную ситуацию в сети, оперативно отслеживать все вирусные инциденты, автоматически создавать отчеты и рассылать уведомления.

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

17. Антивирусы для мобильных телефонов существуют. Для большинства смартфонов уже налажен выпуск антивирусных средств. Следовательно, если на телефоне хранится важная информация или, тем более, конфиденциальные данные, установка такой программы является обязательной.

18. Уголовный Кодекс Российской Федерации содержит ряд статей, определяющих меру ответственности за действия, так или иначе связанные с распространением вредоносных программ. В Главу 28 "Преступления в сфере компьютерной информации" входят:
Статья 146. Нарушение авторских и смежных прав
Статья 138. Нарушение тайны переписки, телефонных переговоров, почтовых, телеграфных или иных сообщений
Статья 272. Неправомерный доступ к компьютерной информации
Статья 273. Создание, использование и распространение вредоносных программ для ЭВМ
Статья 274. Нарушение правил эксплуатации ЭВМ, системы ЭВМ или их сети
Однако следует помнить, что кроме Уголовного Кодекса, существуют еще различные положения и указы, принятые на уровне организаций, которым принадлежит компьютерная техника. Им также необходимо следовать.

среда, 30 марта 2011 г.

Краткий справочник по массовому переименовыванию файлов

ногда нужно производить массовые переименования файлов. Изучая командную строку юникса когда то, меня удивило отсутствие такой приятной возможности в DOS как массовые переименовывания файлов (помню было что то типа copy *.c *.bak).

1. По первому разу я просто в vi создавал множество команд mv производящие нужные действия. Самый очевидный, и самый трудоемкий путь Ж:-)

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

for i in *.c; do
mv $i `echo $i | sed 's/\.c$/.bak/'`
done

в sed задается то как хочется переименовать файл.

Вариант для zsh

for i (*.c) mv $i $i:r.bak

3. Как оказалось позже в поставке perl имеется простенькая утилитка rename. Первым параметром можно указать кусочек кода на perl который применяется к каждому имени файла переданные как параметры.

$ rename 's/\.c\.orig$/.c/' *.c # переименовать все *.c.orig в *.c
$ rename 'y/A-Z/a-z/' *.JPG # имена фотографий маленькими буквами
$ rename 's/\U/\u/g' *.JPG # тоже самое
$ rename '$_=lc' * # тоже самое, но для всех файлов
$ rename 's/deftones-//' *.mp3 # убрать префис 'deftones-' у *.mp3
$ rename 's/^/jerk-/' *.swf # добавить префикс 'jerk-' у *.swf
$ rename 's/ /_/g' * # пробелы в именах файлах заменить на '_'
# перевести в большой регистр часть имени файла
$ rename -v 's/s\d.*e\d/\U$&\E/' House.M.D.s0*
House.M.D.s03e04.rus.avi renamed as House.M.D.S03E04.rus.avi
House.M.D.s03e05.rus.avi renamed as House.M.D.S03E05.rus.avi
House.M.D.s03e06.rus.avi renamed as House.M.D.S03E06.rus.avi
House.M.D.s03e07.rus.avi renamed as House.M.D.S03E07.rus.avi

# более сложный вариант by mancubus.

rename 'tr/ /_/;$_=lc' * # переводит все файлы в директории в
# нижний регистр и заменяет " " на _

4. В zsh есть модуль zmv который как раз и занимается подобными преобразованиями.
Это довольно таки сложная в использовании команда, и думаю только zsh-гуру могут в полной мере ей пользоваться Ж:-)
Но тем не менее сами разработчики предлагают сделать пару довольно таки удобных алиасов, которые ведут себя
так же как команды copy и move в DOS.

Достаточно в ~/.zshrc прописать.

autoload zmv
alias ccp='noglob zmv -CW'
alias mmv='noglob zmv -W'

noglob перед командой обозначает что * не будет пребразован в имена файлов.

ccp *.c *.bak # для каждого файла с расширением .c создается копия с расширением .bak
mmv **/*.jpeg **/*.jpg # переименовывает файлы .jpeg во всех вложенных директориях в .jpg
zmv -v '(* *)' '${1// /_}' # в файлах в которых есть пробелы,заменить на '_' и вывести полученые имена

Маньяки могут почитать комментарии в начале скрипта для всех возможностей.
/usr/share/zsh/**/zmv


Скриптик для переименования кириллических имен файлов в руглиш:

#!/usr/bin/perl

@ARGV || die " Usage:
scriptname файл1 файл2 ...
scriptname \"имя файла\" ...
scriptname имя\\ файла ...
scriptname \*.mp3
scriptname \*";

sub translit
{
my $text = shift;
$text = Text::Iconv->new("","koi-8")->convert($text);
$text =~ y/ абвгдеёзийклмнопрстуфхъыьэ/_abvgdeezijklmnoprstufh'y'e/;
$text =~ y/АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЬЭ/ABVGDEEZIJKLMNOPRSTUFH'Y'E/;
my %mchars = ('ж'=>'zh','ц'=>'tz','ч'=>'ch','ш'=>'sh','щ'=>'sch','ю'=>'ju','я'=>'ja',
'Ж'=>'ZH','Ц'=>'TZ','Ч'=>'CH','Ш'=>'SH','Щ'=>'SCH','Ю'=>'JU','Я'=>'JA');
for my $c (keys %mchars) {
$text =~ s/$c/$mchars{$c}/g;
}
return $text;
}

while (@ARGV)
{
rename($ARGV[0],translit($ARGV[0])) || die "Can't rename $ARGV[0] to translit($ARGV[0]): $!";
shift;
}

вторник, 29 марта 2011 г.

ШПАРГАЛКА ПО SED

ШПАРГАЛКА ПО SED
собранные Эриком Пементом (Eric Pement) версия 5.1
Последняя версия доступна на:
www.student.northpark.edu/pemente/sed/sed1line.txt
www.cornerstonemag.com/sed/sed1line.txt

This file is also available in Portuguese at:
www.lrv.ufsc.br/wmaker/sed_ptBR.html

Теперь и по-русски:
rkorepanov.narod.ru/doc/sed.html


РАЗРЫВЫ ФЙЛА:

# заменяем ПРОБЕЛ на двойной пробел
sed G

# ставим двойной пробел с уже имеющимися в файле пустыми строками. Выходной файл
# должен содержать не более одной пустой строки между строками текста
sed '/^$/d;G'

# Тройной пробел в файле
sed 'G;G'

# отменить двойные пробелы (предполагается, что пронумерованные строки всегда пустые)
sed 'n;d'

ЧИСЛА:

# ставим номер каждой строки файла (левое выравнивание). Использование табуляции (смотри
# особенности применения 't' в конце этого файла) в отличие от пробела сохранит отступ(ы).
sed = filename | sed 'N;s/n/t/'

# ставим номер каждой строки файла (число слева, выравненное по правому краю)
sed = filename | sed 'N; s/^/ /; s/ *(.{6,})n/1 /'

# ставим номер каждой строки файла,но только если строка не пустая
sed '/./=' filename | sed '/./N; s/n/ /'

# считаем количество строк (аналог "wc -l")
sed -n '$='

ПРЕОБРАЗОВАНИЯ И ЗАМЕНА ТЕКСТА:

# В СРЕДЕ UNIX: переводит DOS стандарт перевода строки (CR/LF) в формат Unix
sed 's/.$//' # полагем , что все строки оканчиваются CR/LF
sed 's/^M$//' # в bash/tcsh, нажимем Ctrl-V затем Ctrl-M
sed 's/x0D$//' # для gsed 3.02.80, но выше попроще

# В СРЕДЕ UNIX: преобразовываем символы новой строки Unix (LF) в DOS формат
sed "s/$/`echo -e \r`/" # командная строка в ksh
sed 's/$'"/`echo \r`/" # командная строка в bash
sed "s/$/`echo \r`/" # командная строка в zsh
sed 's/$/r/' # для gsed 3.02.80

# В СРЕДЕ ДОС: преобразуем символы перевода строк Unix (LF) в DOS формат
sed "s/$//" # способ 1
sed -n p # способ 2

# В СРЕДЕ ДОС: преобразуем символы перевода строки ДОС (CR/LF) формат Unix
# этого нельзя сделать DOS версией sed. Используем "tr"
tr -d r outfile # GNU tr версии 1.22 или выше

# удаляем отступы (пробелы,табуляции) с начала каждой строки
# выравниваем текст полностью по левому краю
sed 's/^[ t]*//' # смотри проблемы с 't' в конце файла

# удалить замыкающие пробелы, табуляции с конца каждой строки
sed 's/[ t]*$//' # смотри проблемы с 't' в конце файла

# удаляем отступы, пробелы, табуляции и с конца , и с начала строки
sed 's/^[ t]*//;s/[ t]*$//'

# вставляем 5 пробелов в начале каждой строки (отступ для строки)
sed 's/^/ /'

# выравниваем весь текст справа по ширине колонки 79 символов
sed -e :a -e 's/^.{1,78}$/ &/;ta' # 78 плюс 1 пробел

# центрируем весь текст посредине при ширине колонки 79 символов.В первом способе
# пробелы в начале строки нужны, а пробелы в конце строки дополняются до конца строки.
# Второй способ, пробелы в начале строки отбрасываются в центр строки, и нет
# завершающих пробелов до конца строки.
sed -e :a -e 's/^.{1,77}$/ & /;ta' # Способ 1
sed -e :a -e 's/^.{1,77}$/ &/;ta' -e 's/( *)1/1/' # Способ 2

# подстановка (найти и заменить) "foo" на "bar" в каждой строке
sed 's/foo/bar/' # заменяет только первое вхождение в строке
sed 's/foo/bar/4' # заменяет только 4 вхождение в строке
sed 's/foo/bar/g' # заменяет ВСЕ вхождения в строке
sed 's/(.*)foo(.*foo)/1bar2/' # заменяет друг за другом
sed 's/(.*)foo/1bar/' # заменяет только завершающее слово

# ЗАМЕНЯЕТ "foo" на "bar" ТОЛЬКО для строк ,содержащих "baz"
sed '/baz/s/foo/bar/g'

# подставляет "foo" на "bar" КРОМЕ строк, содержащих "baz"
sed '/baz/!s/foo/bar/g'

# меняет "scarlet" или "ruby" или "puce" на "red"
sed 's/scarlet/red/g;s/ruby/red/g;s/puce/red/g' # большинство sedов
gsed 's/scarlet|ruby|puce/red/g' # только GNU sed

# обратный порядок строк (эмулирует "tac")
# баг/фича в HHsed v1.5 - пустые строки удаляются
sed '1!G;h;$!d' # способ 1
sed -n '1!G;h;$p' # способ 2

# обратный порядок символов в строке (походит на "rev")
sed '/n/!G;s/(.)(.*n)/&21/;//D;s/.//'

# соединяет строки друг с дружкой (как "paste")
sed '$!N;s/n/ /'

# если строка оканчивается обратным слэшем, добавляем последующую строку к ней
sed -e :a -e '/\$/N; s/\n//; ta'

# если строка начинается с знака равно , добавляем ее к предыдущей строке
# и заменяем "=" на один пробел
sed -e :a -e '$!N;s/n=/ /;ta' -e 'P;D'

# добавляем запятые к числовым строкам, меняя "1234567" на "1,234,567"
gsed ':a;s/B[0-9]{3}>/,&/;ta' # GNU sed
sed -e :a -e 's/(.*[0-9])([0-9]{3})/1,2/;ta' # остальные sed

# добавляем запятые к числам с десятичной точкой и знаком минуса (GNU sed)
gsed ':a;s/(^|[^0-9.])([0-9]+)([0-9]{3})/12,3/g;ta'

# добавляем пустую строку каждые пять 5 строк (после строк 5, 10, 15, 20, итд.)
gsed '0~5G' # только GNU sed
sed 'n;n;n;n;G;' # другие sedы

ВЫБОРОЧНАЯ ПЕЧАТЬ ОПРЕДЕЛЕННЫХ СТРОК:

# печать первых 10 строк файла ( поведение "head")
sed 10q

# печать первой строки файла (поведение "head -1")
sed q

# печать последних 10 строк файла ( "tail")
sed -e :a -e '$q;N;11,$D;ba'

# печать последних 2 строк файла ( "tail -2")
sed '$!N;$!D'

# печать последней строки файла ( "tail -1")
sed '$!d' # способ 1
sed -n '$p' # способ 2

# печать только строк ,которые совпадают с regexp ( "grep")
sed -n '/regexp/p' # способ 1
sed '/regexp/!d' # способ 2

# печать только строк , НЕ совпадающих с regexp (как "grep -v")
sed -n '/regexp/!p' # способ 1, соответствует вышеприведенному
sed '/regexp/d' # спопоб 2, простейший синтаксис

# печать строки непосредственно перед regexp, но не строки
# содержащей regexp
sed -n '/regexp/{g;1!p;};h'

# печать строки непосредственно после regexp, но не строки
# содержащей regexp
sed -n '/regexp/{n;p;}'

# печать 1 строки контекста перед и после regexp,с номером строки,
# показывающей , сколько regexp встретилось (как в "grep -A1 -B1")
sed -n -e '/regexp/{=;x;1!p;g;$!N;p;D;}' -e h

# grep для AAA и BBB и CCC (в любом порядке)
sed '/AAA/!d; /BBB/!d; /CCC/!d'

# grep для AAA и BBB и CCC (в таком же порядке)
sed '/AAA.*BBB.*CCC/!d'

# grep для AAA или BBB или CCC (как в "egrep")
sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d # большинство sedов
gsed '/AAA|BBB|CCC/!d' # только для GNU sed

# печать параграфа если тот содержит AAA (пустые строки,разделенные параграфами)
# HHsed v1.5 должен содержать 'G;' после 'x;' в следующих 3 скриптах
sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;'

# печать параграфа если тот содержит AAA и BBB и CCC (в любом порядке)
sed -e '/./{H;$!d;}' -e 'x;/AAA/!d;/BBB/!d;/CCC/!d'

# печать параграфа если тот содержит AAA или BBB или CCC
sed -e '/./{H;$!d;}' -e 'x;/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d
gsed '/./{H;$!d;};x;/AAA|BBB|CCC/b;d' # только для GNU sed

# печать строк длинее 65 символов
sed -n '/^.{65}/p'

# печать строк короче 65 символов
sed -n '/^.{65}/!p' # способ 1, соответствует вышеприведенному
sed '/^.{65}/d' # способ 2, простой синтаксис

# печать секции файла от регулярного выражения до конца файла
sed -n '/regexp/,$p'

# печать секции файла , основанная на номерах строк (включающей строки 8-12 )
sed -n '8,12p' # способ 1
sed '8,12!d' # способ 2

# печать строки 52
sed -n '52p' # способ 1
sed '52!d' # способ 2
sed '52q;d' # способ 3, эффективно для больших файлов

# начиная со строки 3, печать каждой 7-ой строки
gsed -n '3~7p' # для GNU sed
sed -n '3,${p;n;n;n;n;n;n;}' # для других

# печать части файла между двумя регулярными выражениями
sed -n '/Iowa/,/Montana/p' # чувствительно к регистру

ИЗБРАННОЕ УДАЛЕНИЕ ОПРЕДЕЛЕННЫХ СТРОК:

# печать всего файла , КРОМЕ части между двумя регулярными выражениями
sed '/Iowa/,/Montana/d'

# удаление двойных,последовательных строк файла (типа "uniq").
# первая строка из дубирующихся строк сохраняется, остальные убираются
sed '$!N; /^(.*)n1$/!P; D'

# удалить дублирующиеся непоследовательные строки файла. Острожнее с
# переполнением размера буфера, занятой памяти, лучше используйте GNU sed!
sed -n 'G; s/n/&&/; /^([ -~]*n).*n1/d; s/n//; h; P'

# удаление первых 10 строк файла
sed '1,10d'

# удалить последнюю строку файла
sed '$d'

# удалить последние 2 строки файла
sed 'N;$!P;$!D;$d'

# удалить последние 10 строк файла
sed -e :a -e '$d;N;2,10ba' -e 'P;D' # способ 1
sed -n -e :a -e '1,10!{P;N;D;};N;ba' # способ 2

# удалить каждую 8 строку
gsed '0~8d' # только GNU sed
sed 'n;n;n;n;n;n;n;d;' # другие sedы

# удалить все пустые строки файла (также как и "grep '.' ")
sed '/^$/d' # способ 1
sed '/./!d' # способ 2

# удалить все ПОСЛЕДОВАТЕЛЬНЫЕ строки файла , кроме первых; также
# удаляет все пустые строки с начала и до конца файла (походит на "cat -s")
sed '/./,/^$/!d' # способ 1, разрешает 0 пустых в начале, 1 от EOF
sed '/^$/N;/n$/D' # способ 2, разрешает 1 пустых в начале, 0 от EOF

# удалить все ПОСЛЕДОВАТЕЛЬНЫЕ пустые строки из файла кроме первых двух:
sed '/^$/N;/n$/N;//D'

# удалить все пустые строки с начала файла:
sed '/./,$!d'

# удалить все завершающие файл пустые строки
sed -e :a -e '/^n*$/{$d;N;ba' -e '}' # рaботает на всех sed
sed -e :a -e '/^n*$/N;/n$/ba' # также, кроме gsed 3.02*

# удалить последнюю строку каждого параграфа
sed -n '/^$/{p;h;};/./{x;/./p;}'

СПЕЦИАЛЬНЫЕ ПРИМЕНЕНИЯ:

# удалим спецсимволы (overstrikes) (символ, бэкспейс) из man pages. Команда 'echo'
# может понадобится для ключа -e если у вас ось Unix System V или bash shell.
sed "s/.`echo \b`//g" # двойные кавычки для среды Unix
sed 's/.^H//g' # в bash/tcsh, жмите Ctrl-V затем Ctrl-H
sed 's/.x08//g' # hex (16-ричное) выражение для sed v1.5

# получаем заголовок сообщения формата Usenet/e-mail
sed '/^$/q' # удаляем все после первой пустой строки

# получить тело сообщения формата Usenet/e-mail
sed '1,/^$/d' # удаляем все до первой пустой строки

# получить заголовок темы письма , но без слова "Subject: "
sed '/^Subject: */!d; s///;q'

# получить начальный заголовок письма отправителя
sed '/^Reply-To:/q; /^From:/h; /./d;g;q'

# разобрать свойства адреса, выкинуть нафиг e-mail адрес
# с 1-строчного адресного заголовка (смотрите выше)
sed 's/ *(.*)//; s/>.*//; s/.*[:<] *//' # добавить начальный уголок и пробел в каждую строку (квотинг сообщения) sed 's/^/> /'

# удалить начальный уголок и пробел из каждой строки (антиквотинг сообщения)
sed 's/^> //'

# удалить теги HTML (включая многострочные теги)
sed -e :a -e 's/<[^>]*>//g;/zipup.bat
dir /b *.txt | sed "s/^(.*).TXT/pkzip -mo 1 1.TXT/" >>zipup.bat

ТИПОВОЕ ПОЛЬЗОВАНИЕ: Sed получает одну или больше команд по порядку

и применяет их при каждой операции ввода. После этого все команды применяются
к первой строке ввода,затем первая строка выводится и вторая строка ожидает
ввода для обработки , а затем цикл повторяется. Предыдущие примеры предполагают
что ввод производится со стандартного ,например с консоли
обычно это будет ввод трубы, вернее, канала (или контейнера) ;) (piped input). Один из
больших имен файлов добавляется в командную строку если нет ввода со
стандартного устройства ввода , посылаемого на устройство вывода (Экран).
Вот примерчики:

cat filename | sed '10q' # Используются каналы-контейнера
sed '10q' filename # такой же эффект но без кота ;) ("cat")
sed '10q' filename > newfile # перенаправим вывод на диск

Для дополнительных примеров , включая применение команд для ввода
команд с файла на диске , а не только в командной строке, прочитайте "sed &
awk, 2я редакция," от Даля Дугерти( Dale Dougherty) и Арнольда Руббенса
( Arnold Robbins) (O'Reilly,1997; www.ora.com), "Обработка текста в UNIX ,"
Даля Дугерти( Dale Dougherty) и Тима Орэйли (Tim O'Reilly) (Hayden Books, 1987)
или учебники от Майка Арста (Mike Arst) в файле U-SEDIT2.ZIP (нуно поискать).
Чтоб впитать силу sed, нужно понять что такое "Регулярные выражения." Для этого,
прочитайте "Регулярные выражения" от Джефри Фриддла (Jeffrey Friedl)
(O'Reilly, 1997).Читайте ("man") маны , может помочь в Unix ("man
sed", "man regexp", или подсекцию , посвященную регулярным выражениям в "man
ed"), но маны достаточно сложны. Они написаны не для обучения
sed или использованию regexp для чайников, но как как справочник
для использующих программы на практике.

ИСПОЛЬЗОВАНЕ КАВЫЧЕК: Представленные примеры используют одинарные кавычки ('...')
в отличие от двойных ("...") для ограничения редактируемых команд еще
во времена использования ed на Unix. Одинарные кавычки предохраняют
оболочку Unix от интерпретации знака бакса ($) и обратнокавычек
(`...`),которые использует шелл , если они окружены двойными кавычками.
Пользователям "csh" и аналогам также нужно экранировать
знак восклицания (!) бэкслэшем (например, !) для правильной работы
вышепредставленных примеров,даже внутри одинарных кавычек.
Версии sed для DOS всегда требуют двойные кавычки ("...") а не одинарные
для ограничения редактируемых комманд.

ИСПОЛЬЗОВАНИЕ 't' В СКРИПТАХ SED: Для чистоты документации мы использовали
выражение 't' для вывода символа табуляции (0x09) в скриптах.
Однако, меногие версии sed не распознают 't' , и для этого,когда вы пишете
эти скрипты в командной строке ,жмите вместо этого кнопочку
TAB. 't' поддеривается регулярными выражениями в awk, perl, и HHsed, sedmod,
и GNU sed v3.02.80.

ВЕРСИИ SED: Версии sed различны, поэтому возможны некотрые различия синтаксиса.
В особых случаях, может не быть поддержки меток (:name) или ветвящихся конструкций
(b,t) в пределах редактируемых команд, кроме окончания этих команд.
Мы использовали синтаксис который будет использоваться для большинства
версий sed , тогда как популярные версии сед под лицензией
GNU разрешают более последовательный синтаксис. Когда читатель видит
длиннющую команду как эта:

sed -e '/AAA/b' -e '/BBB/b' -e '/CCC/b' -e d

то хорошо бы знать, что версии GNU sed позволяют переписать это:

sed '/AAA/b;/BBB/b;/CCC/b;d' # или иначе
sed '/AAA|BBB|CCC/b;d'

В дополнение, запомните что многие версии sed понимают команды
как "/one/ s/RE1/RE2/", и НЕ разрешают "/one/! s/RE1/RE2/", в которых
содержится пробел перед 's'. Остерегайтесь пробелов при вводе команд.

ОПТИМИЗАЦИЯ СКОРОСТИ: Если скорость выполнения хочется увеличить (для
больших входных файлов или слабоватого "железа", замена будет
работатать быстрее с выражением поиска находящимся перед
инструкцией вида "s/.../.../" Например:

sed 's/foo/bar/g' filename # стандартная команда замены
sed '/foo/ s/foo/bar/g' filename # это работает быстрее
sed '/foo/ s//bar/g' filename # укороченый синтаксис sed

В строке выборки или удаления, которая используется вами для вывода строк
выбранной части файла, команда выхода (q) в скрипте намного уменьшает время
обработки для больших файлов. Вот пример:

sed -n '45,50p' filename # печать строки 45-50 позиции файла
sed -n '51q;45,50p' filename # по-другому, но работает шустрее

понедельник, 28 марта 2011 г.

Поиск файлов в Linux или Изучаем команду find.

Несомненно, при работе с Linux, иногда возникает необходимость поиска файлов с определенными характеристиками. Этими характеристиками могут быть размер или тип файла, права доступа и другое.

Наличие в Linux команды find, во многом помогает справиться с поиском файлов по различным критериям.

Сегодня мы разберем поиск файлов в Linux и приведем основные опции команды find, которые вы сможете применить в своей работе.

Формат команды find:

find путь -опции

где путь – это каталог, в котором произвести поиск. В качестве пути можно указывать следующие значения:

. – поиск в текущем каталоге;

/ – поиск от корневого каталога;

~ – поиск в домашнем каталоге.

Что до опций, то тут гораздо бОльший список, с которым крайне необходимо внимательно ознакомиться (это в будущем очень поможет!). Итак, основные опции команды find:

-name - поиск файлов по имени, используя приведенный шаблон;

-user - поиск файлов, принадлежащих указанному пользователю;

-group - поиск файлов, принадлежащих указанной группе;

-perm - поиск файлов с указанным режимом доступа;

-type - поиск файлов определенного типа. Типов тоже достаточно:

b – специальный блочный файл;
d – каталог;
c – специальный символьный файл;
f – обычный файл;
l – символическая ссылка;
p – именованный канал;
s – сокет.

-size n - поиск файлов с размером n единиц;

-mtime -n +n – поиск файлов, содержание которых изменялось менее чем (-) или более чем (+) дней назад.

Рассмотрим некоторые примеры применения команды find:

Наиболее часто применяемой опцией является опция -name, которая производит поиск файлов по имени.

Примеры с опцией -name:

$ find /mnt/usb -name “*.mp3″ -print

произведет поиск всех файлов (об этом свидетельствует знак *), имеющих расширение .mp3 на USB-устройстве, смонтированном в каталог /mnt/usb.

команда

$ find ~ -name “test*” -print

выведет на экран список файлов домашнего каталога, начинающихся на test.

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

$ find / -name “[a-j]*” -print

Вышеуказанная команда позволит отыскать все файлы в системе, начинающиеся с букв от a до j.

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

Если потребуется найти файлы, имеющие определенные режимы доступа, вам поможет опция -perm, которая легко в этом поможет.

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

$ find . -perm 775 -print

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

К примеру, найдем файлы, к которым пользователи группы имеют полный доступ:

$ find . -perm -070 -print

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

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

Поиск файлов какого-либо определенного пользователя крайне прост в своей реализации. Для этого достаточно выполнить команду:

$ find / -user admin -print

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

Для того, чтобы найти файлы, принадлежащие определенной группе (к примеру managers), выполним команду:

$ find / -group managers -print

Для поиска файлов несуществующих пользователей или групп можно воспользоваться опциями -nouser и -nogroup:

$ find / -nouser -print

и

$ find / -nogroup -print

Поиск файлов определенного типа

Одной из удобных возможностей команды find, является возможность поиска файлов определенного типа. Рассмотрим варианты использования опции -type:

Поиск символических ссылок в каталоге /etc:

$ find /etc -type l -print

Вывод на экран списка каталогов, присутствующих в каталоге /mnt/raid

$ find /mnt/raid -type d -print

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

Опция -size позволяет произвести поиск файлов определенного размера и имеет следующий вид при выполнении:

$ find . -size 2000k -print

Вышеуказанная команда отыщет и отобразит на экране файлы размером 2 мегабайта, находящийся в текущем каталоге. Если, к примеру, необходимо найти файлы размером менее 500 килобайт, то вид команды будет следующий:

$ find . -size -500k -print

Если нужно найти файлы размером более 600 мегабайт, то применим команду:

$ find / -size +600M -print

Поиск файлов с использованием опции -mtime

Опция -mtime позволит вам найти файлы, изменявшиеся в какой-то срок времени.

К примеру, у нас встала задача поиска файлов, находящихся в каталоге /mnt/raid/upload , и изменявшихся за последние 5 дней. В этом нам поможет команда:

$ find /mnt/raid/upload -mtime +5 -print

Если нам необходимо обратное, к примеру, отыскать файлы, которые не изменялись неделю, применим команду:

$ find /mnt/raid/upload -7 -print

Команда find является крайне удобным инструментом для поиска файлов и может использоваться также и для поиска файлов на дисках NFS (сетевых файловых системах), но в этом случае необходимо учесть, что времени на поиск чего-либо на NFS уйдет гораздо больше, чем на локальных дисках.

В этой статье мы рассмотрели лишь основные опции команды find, которые помогут вам в вашей работе. Используйте то, что удобно и не переживайте по пустякам!

Добавление и удаление на ходу SATA/SCSI устройств

Современный Linux (2.6+) может обнаруживать новоподключенные устройства (на шинах, которые поддерживают hotplug). Их можно, так же отключать, предварительно отмонтировав файловые системы и сделав sync. Среди hotplug шин не только USB, но и SATA, SCSI и SAS (в теории, это же применимо и к PATA, но там много глупых контроллеров, которые не умеют адекватно реагировать на исчезновение устройства).

Отключать их лучше не дёргая на ходу физическое устройство, а сказав ядру полностью забыть про про него (гарантируя тем самым, что никаких операций ввода-вывода с устройством производиться не будет, даже если вспохватившийся кеш). Кроме того, иногда нужно выполнять эмуляцию процедуры plug-unplug без физического дёргания питания/шины данных (что не очень хорошо для железа). Самая типичная ситуация — это отладка скриптов udev.

Удаление устройства

echo 1 >/sys/block/sdX/device/delete


(x — буква устройства, sda, sdb, etc).

Эта команда удаляет указанное устройство. Заметим, это низкоуровневая команда, которая не проверяет кеш и статус примонтированности, так что лучше сначала сказать umount & sync.

К сожалению, я не знаю метода совместить выключение шпинделя диска с его удалением с точки зрения ядра. Шпиндель можно отключить командой scsi-spin, однако, при попытке удалить устройство, оно будет раскручено заново и удалено. А у удалённого устройства уже нельзя ничего останавливать (нет устройства). Так что эта часть проблемы пока не решена.

Добавление устройства

Мы не можем «добавить» устройство, мы можем отдать контроллеру команду «перечитать» список устройств, подключенных к тому или иному порту. Если там найдётся что-то интересное, ядру дадут знать.

echo "- - -" >/sys/class/scsi_host/hostX/scan


X — номер шины, совпадает с номером SATA порта на материнской плате. Если не знаете, можете смело делать для всех хостов по очереди, ничего, кроме небольшого лага в дисковых операциях, незаметного для софта и файловой системы, это не даст.

Обратите внимание, host'ы нумеруются с 0, а не с 1. (а в dmesg ata устройства нумеруются с 1).

Так же осуществляется и сканирование USB-SATA переходников (usb-боксов и внешних винчестеров — они просто фигурируют как ещё один scsi_host).

Если мы говорим про SCSI, то вместо "- — -" можно указать точный номер устройства/шины/LUN'а сканируемого устройства (например, «200 1 2»). SATA, в силу архитектурных особенностей (один target для одного initiator) принимает туда только «0 0 0».

Ещё об удалении… Если вы не знаете буквы устройства, но знаете его физическое место подключения, то удалять можно «прямым текстом», записью «1» в "/sys/bus/scsi/devices/targetX:0:0/X:0:0:0/delete".

вторник, 11 января 2011 г.

Ошибка 412: The remote peer is no longer responding

Ошибка обычно появляется при использовании VPN клиента Cisco.


Сами изготовители дают следующее решение:

Windows Error 412

Если вы запускали соединение в ОС Windows Vista или Windows XP, то могли столкнуться с проблемой "412: The remote peer is no longer responding."

Для исправления это баги в Windows Vista или Windows XP, обновите на девайсах NAT. Если это не помогло, переключите на TCP. Если переключение на TCP не решило геморроя, возможно поможет использование специального ключа в профиле подключения(*.pcf):

UseLegacyIKEPort=1

Если вы используете Domain Isolation, не прибегайте к помощи ключа UseLegacyIKEPort, т.к. он конфликтует с Microsoft Domain Isolation.

Оно часто срабатывает, но не всегда)

Процитирую еще немного из распространенных решений:

The error: "Secure VPN connection terminated locally by the Client. Reason 412: The remote peer is no longer responding" means the software VPN Client detected that the VPN server is not responding anymore and deleted the connection. This is caused by several different reasons, for example:

* The user is behind a firewall that is blocking ports UDP 4500/500 and/or ESP.
* The VPN client is using connecting on TCP and the default TCP port 10000 for NATT is blocked.
* The internet connection is not stable and some packets are not reaching the VPN concentrator/server or the replies from the server/concentrator aren’t getting to the client, hence the client thinks the server is no longer available.
* The VPN client is behind a NAT device and the VPN Server doesn’t have NAT-T enabled. In this case the user will not be able to send or receive traffic at all. It will be able to connect but that’s all. After some time the software client deletes the VPN tunnel.

Suggested solutions:

* If you are using wireless, try to connect with cable
* Turn your firewall off, then test the connection to see whether the problem still occurs. If it doesn’t then you can turn your firewall back on, add exception rules for port 500, port 4500 and the ESP protocol in your firewall
* Turn on NAT-T/TCP in your profile ( remember to unblock port 10000 in your firewall)
* Edit your profile with your editor and change ForceKeepAlive=0 to 1

Так-же немного о возможных багах по-русски:

1. Блокирование пакетов на firewall (как описано выше) - проверить на всем пути следования пакетов. Если все нормально, смотрим дальше..

2. Неполноценный NAT через бюджетный router (на некоторых по-умолчанию не натируются порты выше 1024) - соответственно проверить логи на предмет отброса пакетов по портам

3. Ошибка авторизации - тут много причин, курить логи))

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

5. Слишком высокая нагрузка на канала - при модных сейчас 3G модемах весьма актуально))

6. Ну или, как писано где-то на просторах мелкософта (где не помню):
Ошибка 412 -Условие указанное в заголовке не выполняется.

412 Сбой при обработке предварительного условия.При проверке на сервере одного или более полей заголовка запроса обнаружено несоответствие (сбой или ошибка при обработке предварительного условия). Получен код 412 Precondition Failed.

412 Precondition Failed (не выполнено предварительное условие) - сервер отказывается обрабатывать запрос, потому что объект запроса больше, чем сервер желает или способен обработать. Сервер может закрыть соединение, чтобы не дать клиенту возможность продолжить запрос. Если это временное состояние, то серверу СЛЕДУЕТ включить поле заголовка Retry-After для указания времени, через которое клиент может снова повторить запрос

Т.е. возможно проблема с самим передаваемым пакетом. Я может, конечно, и параноик, но все-же... если ни чего другого не помогло, все-же стоит посмотреть в сторону "подлых партизан", которые перехватывают и подменивают пакеты в трафике? ;)

7. Так-же где-то пробегало сообщение о несоответствии версий VPN клиентов и ОС - возможно стоит уточнить...
В общем, курите сию ссылку - так много написано, что переводить и разжевывать просто влом))
----------
PS: и да! самое главное не сказал!)) это проблема в основном софтварная, а не железная. Ну и тем более ни как не вашего провайдера. Так что зачастую ноги у проблемы растут ровно оттуда, откуда дурно пахнущие руки ;)

вторник, 2 февраля 2010 г.

Что делать, если ваш компьютер заражен вирусами? инструкция для чайника шаг за шагом.

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

Конечно самое разумное - это обратиться к специалисту, т.к. неумелое "лечение" может привести самое малое к безрезультатно потраченному времени или того хуже, к полному выходу из строя операционной системы.

Но, как это часто бывает, обращаются к знакомому, знакомому знакомого и т.д. по цепочке, некоторые обращаются в магазины, где покупали свой ПК. Не хочу ни кого обидеть, но часто "больной" попадает в руки самого обычного шарлатана, который за весьма "разумную" цену готов "помочь" в лечении. Затем в 90% случаев пользователю сообщают о необходимости полной переустановки системы за гораздо большую сумму. Переустановка системы, конечно, решит проблему, но если вирус не был удален с жесткого диска, то в дальнейшем нет ни каких гарантий, что он не будет активирован вновь.

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

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

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

И так, начнем:

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


Неявные признаки:

* в контекстном меню неактивна надпись вызова диспетчера задач;

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

* модемное или vpn подключение выдает ошибку 720;

* при подключенном интернет соединении вы не используете интернет, но команда netstat, выполненная в коммандной строке, показывает вам кучу активных соединений;

* команда ipconfig /all выводит кучу непонятных интерфейсов (за исключением туннельного адаптера isatap, являющегося последствием мелкософтовской поделки по внедрению ipv6 совместно с ipv4);

* при комманде ping вместо адреса выводятся "кракозябры";

* ваш браузер не может отобразить большинство популярных интернет-страницы, таких как mail.ru, yandex.ru, rambler.ru, google.ru, vkontakte.ru и т.д., но совершенно спокойно заходит на малоизвестные в широких кругах пользователей windows сайты, такие как exploit.in, opensuse.org, lynks.ru, nixp.ru и т.д.

* комманда ping на доменное имя (пример: ping ya.ru) сообщает, что такое доменное имя не доступно в сети, однако проходит по цифровому адресу (пример: ping 77.88.21.8);

* у вас быстро расходуются денежные средства за интернет (при лимитированных тарифах), однако по вашему вы мало его используете;

* ваш 2-х мегабитный безлимитный канал интерен вдруг стал не быстрее обычного телефонного модема, однако ваш провайдер уверяет вас, что вы качаете на полной скорости;

* с вашего аккаунта e-mail, icq, skype или другого средства общения, в том числе сайтов социальных сетей, к вашим знакомым (и не только) приходят странные сообщения с предложением посетить сайт, посмотреть картинку, скачать файлик, послать SMS и т.д.;


Явные признаки вирусной активности:

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

* ваш компьютер, некогда резвый и откликающийся без задержек, вдруг стал "тормозить" и долго "думать" при открытии окон;

* флешки, дискеты, компакт-диски, записанные на вашем компьютере, на другом компьютере с установленным антивирусным ПО оказываются зараженными вирусом;

* при подключенной флэшке в окне "мой компьютер" вместо значка диска флэшки виден значок стандартной папки;

* ваш антивирус сообщает об угрозе, вы производите удаления или лечения зараженного объекта, но после перезагрузки компьютера ситуация повторяется;

* После где то минут 5 работы в нете, вылезает ошибка "Generic Host Process for Win32 Services - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.." После этого в инет уже не выходит. Приходится перезагружать комп.

* провайдер заблокировал ваш аккаунт за вирусную активность;


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

Далее я опишу метод лечения, помагающий практически в 60% случаев избавиться от заразы. Этого, конечно, может оказаться не достаточно и вам всеже придется искать другие методы лечения или обратиться к специалисту, но, как говорится, 10$ то не лишние ;)

Первое и, пожалуй, самое главное - сбор необходимого ПО и девайсов:

* на понадобятся следующие девайсы:

a) флеш-накопитель или карта памяти с картридером - 1 шт
b) компакт диск CD-R или CD-RW - 1 шт
c) чистый компьютер с выходом в интернет - 1 шт

* необходимый минимум программ:

a) скачиваем LiveCD с оффсайта DrWeb или Kaspersky (в каком случае понадобится этот CD опишу ниже в методике лечения)
b) скачиваем бесплатную лечащую утилиту CureIT или AVTool
c) скачиваем бесплатную лечащую утилиту AVZ
d) скачиваем бесплатную версию Total Commander portable
e) скачиваем бесплатную версию ProcessExplorer
f) скачиваем бесплатную утилиту Unlocker
g) скачиваем бесплатную утилиту Ccleaner
(ссылки попозже приложу, а пока google вам в помощь)


Методика лечения

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

Итак, приступим:

I. Способ первый: 10 относительно простых шагов к спокойствию
Имеется: зараженный компьютер под управлением ОС Windows с не работающим или отсутствующим антивирусом. Часть системы заблокирована (диспетчер задач, редактор реестра, загрузка в безопасном режиме). Программы запускаются и не блокируются вирусом.

Ваши действия:

1 Берем флэшку или компашку, записываем необходимый минимум программ для лечения, подключаемся к пациенту (при подключении с флэшки желательно на всякий случай зажать секунд на 20 клавишу shift - поможет избежать автозапуска и, вероятно, заражения на самой флешке)

2 Открываем флешку и запускаем AVZ. если значек накопителя в виде папки открываем через правую кнопку мыши, нужный пункт будет почти в самом низу. в AVZ первым делом в меню включаем режим AVZGuard и по возможности закрываем все активные окна. Режим AVZGuard запрещает запуск любых процессов или файлов в обход утилиты. В данном случае может кто-то возразить, что это лишнее... Однако мне перелечивать компы после таких умников уже порядком надоело, т.к. следует знать, что не бывает вирусов на компе в "единственном" экземпляре. В комплекте обязательно несколько разновидностей и по нескольку копий. А ведь мы хотим именно вылечить комп, а не создать вид бурной деятельности?

3 Запускаем в AVZ режим сканирования без всяких галочек. Вероятность нахождения зловреда в таком режиме хоть и не велика, но возможна. Тут в основном стоит обратить внимание на наличие красных строк с надписью "перехватчик" и по возможности определить не зарыто ли там чего...
Внимание!! строка с надписью "\FileSystem\ntfs[тут-что-то_еще] перехватчик не определен" нас не интересует.
Другие строки говорят о наличии в системе перехвата функций от пользовательского интерфейса. чаще всего это антивирусы/файерволы и т.п. но может быть и от руткита/кейлогера и т.п. пакости.
Если подгружаемый "драйвер" опознан как безопасный, продолжаем спокойно дальше. Если появились подозрения, понадобятся дополнительные утилиты типа HijackThis и/или Gmer. Но мы будем считать, что такой заразы пока у вас нет и их рассмотрение отложим до следующего способа.

4 Теперь нам нужно запустить Total Commander. Для этого в AVZ используем из меню AVZGuard запуск доверенных приложений (мы ведь доверяем, что это не вирусы на флэшке?)). Далее в качестве проводника будем использовать только его.
Если заблокированы диспетчер задач и/или редактор реестра ТС так-же нам поможет.
Но в качестве альтернативы диспетчера все-же лучше использовать утилиту Procexp. На мой взгляд он куда лучше по возможностям.

5 Вы запустили Procexp или диспетчер в ТС и сразу заметили зловреда? Поздравляю! Вам сильно повезло) Обычно таких случаев не так уж и много, особенно это касается вирусов, прячущихся внутри процессов типа explorer и/или svchost, а то и вовсе их подменяющие.
Вам нужно лишь узнать путь к физическому расположению файла (выделить процесс, кликнуть мышью в Procexp или нажать F3 в ТС) далее через ТС переходим к зловреду, кликаеем правой кнопкой, выбираем Unlocker (вы ведь его установили уже?) выделяем файл, выбираем удалить и жмем разблокировать. Вирус удален. Но, в зависимости от вируса, процесс может остаться в памяти. Для уверенности нужно еще прибить процесс через Procexp или Total Commander.
Так-же теперь весьма не плохо было бы убить все "лишние" процессы. т.е, согласно списка процессов утилиты Procexp это все, что начинается от explorer и ниже его подпроцессов, оставив лишь наш AVZ и ТС (ну и сам Procexp)

6 Но искать "вручную" для большинства пользователей слишком непосильная задача. Поэтому мы отодвинем в сторону свою непомерную гордость и доверимся утилите "чужого дяди" по имени Dr.Web или Kasperksy (тут на вкус и цвет). Так что переходим в тотале на свою флэшку(диск), запускаем CureIT (AVTool), запускаем стандартное сканирование системы и спокойно идем пить пиво.

7 Утилиты из предыдущего пункта отработали? Хорошо. Внимательно изучаем список найденного. Что не удалилось, удаляем ручками. Теперь контрольный выстрел первого этапа - запускаем полное сканирование утилитой AVZ (сканирует быстро, так что пиво подождет). Если лог чист, радуемся его удачному завершению и начинаем подготовку для второго...

8 Подготовка заключается в чистке системы после проведенных чуть ранее телодвижений. Нам очень желательно очистить временные директории, реестр и проверить наличие "левых" файлов.
"Тотальной" чистке подлежат следующие директории:

?:\RECYCLER и/или схожие по названию
?:\Documents and Settings\%user_name%\Local Settings\Temp
?:\Documents and Settings\%user_name%\Local Settings\Temporary Internet Files
?:\WINDOWS\Temp
?:\WINDOWS\system32\dllcache
?:\System Volume Information

в корне папки ?:\Documents and Settings\%user_name%\ из файлов должны быть только
NTUSER.DAT
ntuser.dat.log
ntuser.ini
остальное можно удалить

где:
знак ? - буква диска
%user_name% - все пользователи (папки) в дирректории ?:\Documents and Settings\

Ну и в завершение - переходим в запущенную ранее утилиту AVZ (вы ведь не подумали ее выключить и/или отключить режим AVZGuard? иначе описанное придется повторить еще раз, а то и не один раз)
Теперь из этой утилиты нам нужна функция в меню "файл" и зовется она "Восстановление системы".
Особо грамотные могут и ручками из ТС конечно все это сделать, но т.к. обычному пользователю эта задача непосильна, опять прячем свое чрезмерное чувство собственной значимости и запускаем это самое восстановление. Там впринципе все по русски описано что как и для чего.
Я вам дам лишь подсказку - отмечаем галочками все пункты, кроме 21,18 и 14 и жмем кнопку "выполнить".

Теперь чистим реестр. Особо страждущие ручками, все остальные утилитой Ccleaner (вы ведь ее то-же уже ставили? нет? ставим!), или другой со схожими функциями.

Кто бы чего не говорил, что все это совсем не нужно, слушать его вам вовсе не стоит)
Вреда точно не будет, времени практически не займет, а гарантия исправления от вирусной деструктивной деятельности значительно повышается.

Теперь финал подготовки - жесткий ребут! да-да! именно кнопочкой! можно конечно питание отключить... тут на вкус и цвет)

9 Ну и теперь заключительный второй этап...
После загрузки биоса жмем F8. В меню выбираем загрузку в безопасном режиме, запускаем снова антивирусную утилиту, ставим на полное сканирование и идем опять пить пиво))
Если после завершения работы утилиты лог чист и вирусов не обнаружено, гордо бъем себя пяткой в грудь. проверяем работу своего антивируса (можно переустановить конечно на всякий, но редко бывает на столько плохо), перезагружаем комп в стандартном режиме и довольные собой допиваем остатки пива (ну или в ларек бежим снова).

10 Если вдруг что-то осталось... обычно после второго этапа достаточно бывает повторить его еще раз. Реже приходится начинать опять с нуля.


II. Способ второй: нам не позволено лечиться?! однако...

Имеется: зараженный компьютер под управлением ОС Windows. Часть системы заблокирована (диспетчер задач, редактор реестра, загрузка в безопасном режиме и т.д.). Программы запускаются, но блокируются антивирусные утилиты.

Ваши действия:

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

От и для AVZ:
1. Переименовать папку AVZ, задать ей несмысловое имя типа X54S или распространенное типа Soft, Game и т.п.
2. Переименовать avz.exe в что-то типа test.exe, game.pif, program.com
3. Запускать AVZ с ключом: avz.exe ag=y (в этом случае при запуске AVZ включается AVZGuard)
4. Запускаем восстановление системы.
5. Следуем инструкциям из первого способа лечения начиная с п.3

От дядюшки паучка:
1. Качаем утилиту восстановления системы (ftp://ftp.drweb.com/pub/drweb/tools/plstfix.exe) от Dr.Web
2. Запускаем ее и жмем кнопку "Продолжить". Здесь все еще проще - достаточно запустить утилиту и она самостоятельно внесет нужные изменения в реестр, оставив не тронутыми неизмененные ключи реестра.
3. Переходим к п.2 первого способа лечения.


III Способ третий: все попробовал, ни чего не помогает!

Имеется: зараженный компьютер под управлением ОС Windows. Системы заблокирована полностью. Имеем после запуска окно с радостным приветствием о необходимости заплатить денежку смс-кой. По видимым признакам работает только мышка для нажатия на единственную кнопку и клавиатура только для ввода "секретного" кода.

Ваши действия:

* Берем топор и вешаемся... шутка))
Вот на такие случаи может пригодится LiveCD, если нет под рукой машины с инетом, или кода активации еще в принципе ни где нет. А такое тоже часто бывает. Хотя может показаться, что им проще с самого первого раза воспользоваться, но не всем.
При запуске компа заходим в БИОС и выставляем на загрузку с CD-Rom, если не знаете как это делается, отправляемся в google. Загружаемся с компашки и в привычном интерфейсе производим тотальную проверку и вакцинацию.
Иногда, после лечения с LiveCD, ОС перестает загружаться вообще. Такое часто встречается, когда вирус подменивает собой какие-нибудь основные для запуска ОС файлы. В данном случае, возможно, поможет LiveCD от BartPE с загрузкой ОС Windows. Все-же для редактирования реестра и восстановления этой ОС лучше штатные утилиты использовать.

Но это я допишу позже... (продолжение следует)..


Способ аля шипко интересующиеся ручной работой по способу № II:

Исправление поврежденных ключей реестра вручную:

1. Не запускается (запрещен) "Редактор реестра".

необходимо создать reg-файл:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegedit"=dword:0

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableRegedit"=dword:0
назвать его произвольным именем, например, restorere.reg, и запустить дважды щёлкнув по reg-файлу левой кнопкой мыши; альтернативно - Пуск > Выполнить > ввести
regedit /s restorere.reg
и нажать кнопку "ОК"
Если же редактор реестра regedit не запустится, то с помощью редактора реестра из командной строки reg.exe:
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegedit /t REG_DWORD /d 0
reg add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegedit /t REG_DWORD /d 0

2. Не запускаются *.exe-файлы.

надо создать reg-файл:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\exefile\shell]

[HKEY_CLASSES_ROOT\exefile\shell\open]
"EditFlags"=hex:00,00,00,00

[HKEY_CLASSES_ROOT\exefile\shell\open\command]
@="\"%1\" %*"

[HKEY_CLASSES_ROOT\exefile\shell\runas]

[HKEY_CLASSES_ROOT\exefile\shell\runas\command]
@="\"%1\" %*"
назвать его произвольным именем, например, restoreexe.reg, и запустить дважды щёлкнув по reg-файлу левой кнопкой мыши.

3. Не запускаются программы и выдается сообщение "В доступе отказано, обратитесь к администратору".

смотрим, чтобы в реестре было так:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"RestrictRun"=dword:00000000
альтернативно просто удалите ключ "RestrictRun" (Дефолтное значение "0").

4. Отключен (запрещен) Диспетчер задач.

проверяем реестр:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=dword:0
альтернативно можно просто удалить ключ "DisableTaskMgr" (Дефолтное значение "0")

5. Отключена возможность выбора свойств папки.

проверяем ключи реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer]
"NoFolderOptions"=dword:00000000
или
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]
"NoFolderOptions"=dword:00000000
6. Отключено отображение скрытых и системных файлов.

проверяем ключи реестра:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"Hidden"=dword:00000001
"HideFileExt"=dword:00000000
"ShowSuperHidden"=dword:00000001
вредоносная программа может также изменить ключ "CheckedValue"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL]
"CheckedValue"=dword:00000001
7. При открытии диска ОС Windows спрашивает, с помощью какой программы его открыть:

Найти и убить все autorun.inf со всех дисков. Запустить редактор реестра, найти следующие ключи и удалить их:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]

[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2]

8. В окне свойств экрана отсутствуют некоторые вкладки.

Часто вирусы изменяют рисунок Рабочего стола Windows с тем, чтобы вывести на экран собственную информацию. При этом блокируют возможность изменения настроек Рабочего стола, скрывая некоторые вкладки окна свойств экрана. Прежде чем восстанавливать отображение этих вкладок, убедитесь, что вирус, который отключил их отображение, уже не действует в системе. Если вирус уже удалён из системы, то для восстановления скрытых папок необходимо создать reg-файл и запустить его, дважды щёлкнув по reg-файлу левой кнопкой мыши.
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"NoDispBackgroundPage"=dword:0
"NoDispScrSavPage"=dword:0


--------------------------------------
<это не оконченная статья>
--------------------------------------