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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   *nix (https://forum.antichat.xyz/forumdisplay.php?f=43)
-   -   Нужен шреддер файлов под *nix'сы (https://forum.antichat.xyz/showthread.php?t=57447)

1ten0.0net1 05.01.2008 19:03

Нужен шреддер файлов под *nix'сы
 
Очень нужен шреддер (который перезаписывает файлы по номральным алгоритмам - типо Гутмана и т. п.) Вариант затереть нулями просьба не предлагать!
Ps Срочно нужен.

aka PSIH 05.01.2008 19:08

http://www.jetico.com/linux/
BCWipe for UNIX versions
Посматри эту, под Win её юзаю...

http://www.jetico.com/linux/bcwipe-help/wu_intro.htm
Алгоритмы такие
Цитата:

US DoD 5200.28-STD standard
default is 7 passes defined by standard
user-defined number of passes
Peter Gutmann's 35 pass scheme. Please refer to article "Secure Deletion of Data from Magnetic and Solid-State Memory" by Peter Gutmann.

1ten0.0net1 05.01.2008 19:15

Цитата:

Сообщение от aka PSIH
http://www.jetico.com/linux/
BCWipe for UNIX versions
Посматри эту, под Win её юзаю...

http://www.jetico.com/linux/bcwipe-help/wu_intro.htm
Алгоритмы такие

Утилита классная, сам ее часто юзаю!
Не знал, что есть ее порты под linux. Спасибо, щас проверю.

Вопрос решен. Утилита отличная. Всем советую!

Digimortal 05.01.2008 19:24

не BCWipe, конечно +)..

http://digimortal.freeweb7.com/toolz/diwiper.pl.txt

1ten0.0net1 05.01.2008 19:29

Цитата:

Сообщение от Digimortal
не BCWipe, конечно +)..

http://digimortal.freeweb7.com/toolz/diwiper.pl.txt

Скачал, но в этот раз, если ты не против, все же заюзаю BCWipe - 2 года серваку ;-).

ShadOS 05.01.2008 19:43

Кгм... так ты не доверяешь Диги? Зря.
Вот тебе от меня:
Код:

#!/bin/bash

hell=(
' shred.sh: wiper by ShadOS [Hell Knights Crew]\n'
'//-------------------------------------------\n'
' The Mainest Evil of Runet \n'
' _ _ _ _ _ __ _ _ _ \n'
' | || |___| | | |/ /_ _ (_)__ _| |_| |_ ___ \n'
' | __ / -_) | | . <| . \| / _. | . \ _(_-< \n'
' |_||_\___|_|_|_|\_\_||_|_\__. |_||_\__/__/ \n'
' hellknights.void.ru |___/ .0x48k. \n'
' shados.0x48k.cc .ShadOS. \n'
'//-------------------------------------------\n'
)
 
BLOCKSIZE=1 # операции ввода/вывода в/из /dev/urandom требуют указания размера блока,
 #+ иначе вы не получите желаемого результата.
E_BADARGS=70
E_NOT_FOUND=71
E_CHANGED_MIND=72

val=( "\x55" "\xAA" "\x92" "\x49" "\x24" "\x00" "\x11" "\x22" "\x33"
 "\x44" "\x55" "\x66" "\x77" "\x88" "\x99" "\xAA" "\xBB" "\xCC"
 "\xDD" "\xEE" "\xFF" "\x55" "\xAA" "\x92" "\x00" "\x49" "\x24")

RANDOM=$$ # Инициализация генератора случайных чисел числом PID процесса-сценария.

PIPS=256 # Значения от 0 до 256

#echo "${#val}" #Длинна массива
#echo "${#val[*]}" #Количество элементов массива
#echo -e "${val[@]}" #Вывод массива

hexcvt ()
{
 BASE=16
 if [ -z "$1" ]
 then
 echo 0
 return # "Return" 0, если функции не был передан аргумент.
 fi
 echo ""$1" "$BASE" o p" | dc
 # "o" устанавливает основание системы счисления для вывода.
 # "p" выводит число, находящееся на вершине стека.
 # См. 'man dc'.
 return
}


random_fill()
{
 if [ $gen="rnd" ] # rnd, иначе /dev/urandom по-умолчанию
 then
 for ((j=$flength; j > 0 ; j--))
 do
 let "die1 = RANDOM % $PIPS"
 die1=`hexcvt $die1`
 die1=`echo "\x""$die1"`
 echo -ne $die1 >> $file
 done
 else
 dd if=/dev/urandom of=$file bs=$BLOCKSIZE count=$flength
 fi
}

usage ()
{
 echo -e "Порядок использования: `basename $0` <filename> <visr|bs|pg> <rnd|dev>"
 echo -e "\tАлгоритмы:"
 echo -e "\t visr - VISR"
 echo -e "\t bs - Брюса Шнайера"
 echo -e "\t pg - Питера Гутмана"
 echo -e "\tГенераторы псевдослучайных последовательностей:"
 echo -e "\t rnd - \$RANDOM (быстро, предсказуемей, по-умолчанию)"
 echo -e "\t dev - /dev/urandom (медленней, надежней)"
 exit $E_BADARGS
}

clear

echo -en '\E[34;40m'"\033[1m${hell[@]}\033[0m"

if [ -z "$3" ] # Имя файла, генератор и алгоритм не указан.
then
 usage
fi

file=$1
alg=$2
gen=$3

if [ ! -e "$file" ]
then
 echo "Файл \"$file\" не найден."
 exit $E_NOT_FOUND
fi

echo; echo -ne "Вы уверены в том, что желаете \033[1mуничтожить\033[0m \"$file\" по алгоритму \"$2\" (y/n)? "
read answer
case "$answer" in
[nN]) echo "Передумали? Операция отменена."
 exit $E_CHANGED_MIND
 ;;
*) echo -e "\033[1mУничтожается\033[0m файл \"$file\".";;
esac

stime=$(date +%H%M%S%N)
echo "Запущен в $(date +%H:%M:%S.%N)"
flength=$(ls -l "$file" | awk '{print $5}') # Поле с номером 5 - это длина файла.
cat /dev/null > $file # Переходим в начало файла

echo

case "$alg" in
visr | VISR) #Затираем по алгоритму VISR
 pass_count=0
 for i in 1 2 3
 do
 let "pass_count += 1"
 echo "Проход $pass_count"
 dd if=/dev/zero of=$file bs=$BLOCKSIZE count=$flength
 sync
 cat /dev/null > $file # Переходим в начало файла
 let "pass_count += 1"
 echo "Проход $pass_count"
 for ((j=$flength; j > 0; j--))
 do
 echo -ne "\xFF" >> $file
 done
 sync
 cat /dev/null > $file # Переходим в начало файла
 done
 let "pass_count += 1"
 echo "Проход $pass_count"
 for ((j=$flength; j > 0; j--))
 do
 echo -ne "\xAA" >> $file
 done
 sync
 ;;
bs | BS) #Затираем по алгоритму Брюса Шнайера
 pass_count=1
 echo "Проход $pass_count"
 for ((i=$flength; i > 0; i--))
 do
 echo -ne "\xFF" >> $file
 done
 sync
 cat /dev/null > $file # Переходим в начало файла
 let "pass_count += 1"
 echo "Проход $pass_count"
 dd if=/dev/zero of=$file bs=$BLOCKSIZE count=$flength
 sync
 cat /dev/null > $file # Переходим в начало файла
 for i in 3 4 5 6 7
 do
 let "pass_count += 1"
 echo "Проход $pass_count"
 random_fill
 sync
 cat /dev/null > $file # Переходим в начало файла
 done;;
pg | PG) #Затираем по алгоритму Питера Гутмана
 pass_count=0
 for i in 1 2 3 4
 do
 let "pass_count += 1"
 echo "Проход $pass_count"
 random_fill
 sync
 cat /dev/null > $file # Переходим в начало файла
 done
 for ((i=0; i < ${#val[*]} ; i++))
 do
 let "pass_count += 1"
 echo "Проход $pass_count"
 for ((j=$flength; j > 0 ; j--))
 do
 echo -ne "${val[i]}" >> $file
 done
 sync
 cat /dev/null > $file # Переходим в начало файла
 done
 for i in 32 33 34 35
 do
 let "pass_count += 1"
 echo "Проход $pass_count"
 random_fill
 sync
 cat /dev/null > $file # Переходим в начало файла
 done;;
*) #Для некорректного ввода
 echo "Алгоритм был задан некорректно!"
 usage
esac

rm -f $file # Наконец удалить изрядно "подпорченный" файл.
sync # Вытолкнуть буферы в последний раз.

let "stime=$(date +%H%M%S%N)-stime"
echo $stime
echo "Остановлен в $(date +%H:%M:%S.%N)"

echo -e "Файл \"$file\" \033[1mуничтожен\033[0m."; echo
echo -e "\a"

exit 0


nikto 12.03.2008 01:31

а 'shred' чем плох?

krypt3r 12.03.2008 14:05

man shred
Во многих дистрах он уже есть


Время: 04:09