|

Полноценное использование служебного Инета
Xakep, номер #039, стр. 039-056-8
open(F1, "1.dat");
open(F2, ">2.dat");
binmode F1;
binmode F2;
$t = 0;
$nofp = sysread(F1, $t, 1);
while ($nofp) {
print F2 chr(ord($t) ^ 5);
$nofp = sysread(F1, $t, 1);
}
close(F1);
close(F2);
Хотя лучше ксорить не одним числом, а последовательностью из нескольких чисел. Отмечу, что в рассматриваемом контексте эти операции следует производить "на лету" безо всяких промежуточных сохранений (экономя место и время). Т.е. получил n байт из соединения, проксорил их и записал в файл.
Для самых экстремальных товарищей предлагаю следующий перченый способ: ксорить нетривиальной последовательностью, размер которой равен размеру файла. Поскольку последовательность такого размера хранить нереально (а требуется она в двух местах: на твоем сервере для шифровки и дома - для расшифровки), ее предстоит сгенерить, взяв в качестве производящей функции, например, синус (эта функция от последовательности целых чисел дает последовательность неповторяющихся чисел). Т.е. надо всего лишь взять синус от номера текущего байта в файле, вытянуть из этого вещественного числа, допустим, 2-ю цифру после запятой и проксорить текущий байт с ней. Расшифровка будет происходит точно так же. Хоть этот метод и кажется очень мудреным, он тем не менее обладает очень высокой криптостойкостью.
Финал
Описанные выше способы обхода были проверены на практике, поэтому, если, конечно, не делать глупостей, их можно использовать безопасным для себя образом. Но помни: всегда и во всем нужно знать меру. Если пользование такими вещами станет для тебя правилом, а не исключением, то рано или поздно тебя все равно засекут, улыбнутся и скажут "Нагибайся!". Удачи тебе!
Литература:
- Steven Holzner "Perl. Специальный справочник", Питер, 2000
- Davis Chapman. "Разработка Internet-приложений в Delphi2" DiaSoft, 1998 (в этой книге довольно понятно написано про саму концепцию сокетов и соединений, про многие протоколы и их использование)
- Медведовский И.Д., Семьянов П.В., Леонов Д.Г. "Атака на Internet" (3-е издание), ДМК, 2000
Кроме того:
RFC2616 (HTTP standart); RFC0959 (FTP standart) - очень рекомендую прочитать!
ВНИМАНИЕ: Автор статьи и редакция журнала не несут никакой ответственности за последствия, которые могут возникнуть у тебя в результате использования изложенного материала!
Первая версия того, что сейчас называется Perl, появилась в 1986 году. Ларри Уолл по заданию своего шефа кодировал рутинные операции по управлению и мониторингу многоуровневой сети. Он пользовался sh, awk, sed, tr и прочими инструментами UNIX. Возможностей этих средств уже не хватало, чтобы полностью и в срок выполнять задания. Кроме всего прочего, Ларри был очень ленив, чтобы снова и снова браться за создание кучи скриптов и заплаток. Тогда он, как и подобает истинному программисту, захотел решить проблему раз и навсегда.
Назад на стр. 039-056-7 Содержание Вперед на стр. 039-056-9
|