Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #30, МАЙ 2003 г.

РАЗВЛЕЧЕНИЕ ДЛЯ 31337-ваяем |^|РЕ0БqА3о84тель теXта

Alex Shark

Спецвыпуск Xakep, номер #030, стр. 030-028-2


#!/usr/bin/perl

print "Content-Type: text/plain\n\n";

open INP,"<table.dat";

while (chomp($a=<INP>)) {

chomp($table{$a}=<INP>);}

close INP;

while ($text=<>) {

$text =~ s/text=//;

$text =~ s/\+/ /g;

$text =~ s/%([\dA-Fa-f][\dA-Fa-f])/pack("C",hex($1))/eg;

while ($text) {

if (!$table{substr($text,0,1)}){print substr($text,0,1);

}else{@oth=split/ /,$table{substr($text,0,1)};

print $oth[rand(@oth)];}

substr($text,0,1)="";}}

XXXXXXXXXXXXXX

a

a A 4 /-\

b

b B 8 |3

c

c C < (

XXXXXXXXXXXXXX

Таблица неполная, это только пример, как надо располагать данные. Сначала идет буква, потом варианты через пробел, затем следующая. Вариантов может быть сколько угодно, могут быть одинаковые варианты написания разных букв. Те символы, которые не будут найдены в таблице, остаются без изменения. Небольшой хелп по этой проге. В первых строчках то, что надо обязательно написать для перла и для html-браузера. Затем до close идет чтение таблицы и расположение данных в памяти. Потом начинаем читать сам текст по строкам, обрабатываем строку и читаем строку по буквам. Если буква не имеет пары, то выдаем как есть. Если имеет, то вытаскиваем из строки одно из значений, определяемое случайно. Все, удаляем обработанную букву и повторяем все сначала. Если выложить эту прогу вместе с html-ем на сервак, то получится универсальный кодировщик, в зависимости от таблицы можно будет кодировать в крякозяблики, в транслит или просто из одной кодировки в другую. Можно сделать таблицу со случайными значениями, и у нас получится асимметричный кодировщик, то есть закодировать им можно, а декодировать нет. Можно поизвращаться и сделать 2 сервера, на одном будет таблица для кодирования, а на другом для декодирования. Лучше всего сделать громкое имя типа decode.ru и повесить там баннер. Главное - всем рассказать, что там можно прочитать кривые письма, а потом останется только сливать показы на раскрутку своей хомпаги или на продажу. Но все наши старания по кодированию важной инфы пропадут, если злобный админ в локалке включит сниффер. Он просто выловит оба варианта - и кодированный, и декодированный. Для лечения надо мутить клиентскую версию. Поскольку Perl у нас не ставится вместе с виндой, а С и С++ ставит еще меньше народу, будем делать на массовость. То есть Flash.

Flash клиент

Клиент не должен уступать серверу по возможностям, должен иметь возможность подгружать таблицы из сети, должен уметь кодировать все, что дадут, и т.д. Поскольку клиента мы делаем для борьбы со сниффером, будем мутить нестандартную таблицу. Для флеша самое простое решение - это запихать всю таблицу в Action первого кадра мувика и подгружать сам мувик интерактивно. Можно составить таблицу в мувике из кусочков, тогда, даже рассмотрев мувик, не будет понятно, что это за данные. В примере прога подгружает мувик на место старого с именем "target".

Назад на стр. 030-028-1  Содержание  Вперед на стр. 030-028-3