ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Полезная и оригинальная подпись
  #1  
Старый 27.06.2006, 17:38
Аватар для hidden
hidden
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме:
5887054

Репутация: 1292


По умолчанию Полезная и оригинальная подпись

Итак сейчас я расскажу как сделать не только красивую, оригинальную, но ещё и полезную подпись.

Что же подразумевается под словом "полезную", например:
- ты создал хорошую тему, большинство добавляет что небудь интересное, или исправляют реальные ошибки, а некоторые флудят, пишут всякую муть, клевету, но но так сложилось что ты не модератор чтобы забанить гада или пригрозить, но не всё потеряно, кто ты хакер или ламер, если хакер, значит, должен получать то что тебе нужно, в данном случае это IP, опирационка, а так же версию браузера, для начала.

Как же это сделать? Просто создаём красивую подпись, в которую будет передоваться IP всех участников. Но как же узнать, кто есть кто:
- По использованному браузеру, и OS, в переменной User-Agent.
- По месту проживания IP или по переменной X-Forwarded-For (страна город).
- По открываемым постам, учитывая что большинство пользователей(а ламеры, почти все) не используют https, а зачастую и файрвол, то по Referer-у легко определить какие сообщения посылает или просматривает пользователь.
- Ну и конечно без времени запроса тут не обойтись.

Для начала, расскажу как сделать красивую и оригенальную подпись. Поехали.

Нам понадобиться:
- какой небудь удобный графический редактор, лучьше фотошоп.
- хостинг с поддержкой PHP и GD
- Фантазия.

Приступим к созданию изображений. Если ты не хочешь заморачиваться над динамическим созданием изображений, то можно просто, поставить редирект, на те картинки, которые надо в определённой ситуации. Примерно так:

PHP код:
<?
  
  header
('HTTP/1.1 302 Found');
 
  
header('Location: http://img.yandex.net/i/logo-big-txt.gif');

?>
Пример: Редирект

или загрузить методами PHP

PHP код:
<?
  
  header
('Content-Type: image/gif');
  
  @
readfile('http://img.yandex.net/i/logo-big-txt.gif');

?>
Пример: Загрузчик

Но мы будем рассматривать динамическое создание изображения.

Для начала, создадим подложку, с какой небудь текстурой и крышку, с отблеском и обводкой, а также соединим их с помощью PHP+GD.

- подложка
- крышка

PHP код:
<?
  
  header
('Content-Type: image/png');
  
  
$im=ImageCreateFromPng("logoback.png");
  
  
$dg=ImageCreateFromPng("logofront.png");
  
  
imagecopy($im,$dg,0,0,0,0,350,19); # imagecopy(в какую, с какой, на какое место(x,y), ширена, высота, откуда(x,y));
  
  
ImageDestroy($dg);
  
  
ImagePng($im);
  
  
ImageDestroy($im);

?>


Дальше, сложнее. Добавляем перерисовку IP и icq, да icq, на твоей подписи будет виден статус твоей аськи. Кстати сам номер лучше писать на подложке.

- цифры, рисуем свои, чтоб оригинальнее было.
- два статуса icq

PHP код:
<?
  
  Header
("Content-type: image/png");
  
  
$ip=$_SERVER['REMOTE_ADDR'];
  
  
$icf=fopen("http://status.icq.com/online.gif?icq=999999999&img=5","r"); # Вместо 999999999 укажите свою аську
  
  
$rf=fread($icf,1000); 
  
  
fclose($icf);
  
  if(
strlen($rf)==141){$onl=0;}else{$onl=17;} # 144 - это размер активной картинки, поправишь, если вдруг icq-шники, её заменят.
  
  
header('Content-Type: image/png');
  
  
$im=ImageCreateFromPng("logoback.png");
  
  
$dg=ImageCreateFromPng("logoicq.png");
  
  
imagecopy($im,$dg,2,1,$onl,0,17,17);
  
  
ImageDestroy($dg);
  
  
$dg=ImageCreateFromPng("logodigi.png");
  
  
$pos=195;
  
  for(
$n=0;$n<strlen($ip);$n++){
  
    
$ch=substr($ip,$n,1);
    
    if(
preg_match('/\d/',$ch)){$nn=$ch;$pos+=12;}else{$nn=10;$pos+=1;}
    
    
imagecopy($im,$dg,$pos,2,$nn*14,0,14,15);
  }

  
ImageDestroy($dg);
  
  
$dg=ImageCreateFromPng("logofront.png");
  
  
imagecopy($im,$dg,0,0,0,0,350,19);
  
  
ImageDestroy($dg);
  
  
ImagePng($im);
  
  
ImageDestroy($im);

?>
Этот пример пришлось заливать на другой хостинг, на том нет доступа к внешним ресурсам, для получения статуса icq.

в данном примере это моя аська.

Ну вот, теперь она красивая и оригинальная, а главное ваша, а значит можно переходить ко второй стадии, логирование информации.
Я предпочитаю хранить все свои логи в gzip архивах, во-первых потому что сжатие текста происходит примерно в 10 раз, а-то и больше, а ведь время и место не резиновые.
Теперь мы получим необходимую информацию и запишем её в gz архив. Советую сохранять все внутрискриптоиспользуемые файлы, такие как логи в недоступном для http месте.

PHP код:
<?

  Header
("Content-type: image/png"); # Указание браузеру на формат данных
  
  # Получение используемых переменных
  
  
$ip=$_SERVER['REMOTE_ADDR'];
  
  
$rf=$_SERVER['HTTP_REFERER'];
  
  
$fo=$_SERVER['HTTP_X_FORWARDED_FOR'];
  
  
$ag=$_SERVER['HTTP_USER_AGENT'];
  
  
$qu=$_SERVER['QUERY_STRING'];
  
  
# Дописывание данных сверху(в архиве будет храниться только 65536 байт + последние полученные данные)
  
  
$fn="data.gz";
  
  
$fh=@gzopen($fn,'r');$fd=@gzread($fh,0xffff);@gzclose($fh);
  
  
$fh=@gzopen($fn,'w9'); # Девятый уровени сжатия.
  
  
$txt="\nTime:".@gmstrftime("%d %b %Y %T"time());
  
  if(
strlen($fo)>0){$txt.="\nIP:".@substr($fo,0,256);}else{$txt.="\nIP:$ip";}
  
  if(
strlen($ag)>0){$txt.="\nAgt:".@substr($ag,0,256);} # 256 хватит с головой
  
  
if(strlen($qu)>0){$txt.="\nQry:".@substr($qu,0,256);}
  
  if(
strlen($rf)>0){$txt.="\nRef:".@substr($rf,0,256);}
  
  @
gzwrite($fh,"$txt\n$fd");
  
  @
gzclose($fh);
  
  
# Получение статуса icq
  
  
$icf=fopen("http://status.icq.com/online.gif?icq=999999999&img=5","r"); # Вместо 999999999 укажите свою аську 
  
  
$rf=fread($icf,1000); 
  
  
fclose($icf);
  
  if(
strlen($rf)==141){$onl=0;}else{$onl=17;} # 144 - это размер активной картинки, поправишь если вдруг icq-шники, её заменят.
  
  # Вывод статуса
  
  
$im=ImageCreateFromPng("logoback.png");
  
  
$dg=ImageCreateFromPng("logoicq.png");
  
  
imagecopy($im,$dg,2,1,$onl,0,17,17);
  
  
ImageDestroy($dg);
  
  
# Вывод IP
  
  
$dg=ImageCreateFromPng("logodigi.png");
  
  
$pos=195;
  
  for(
$n=0;$n<strlen($ip);$n++){
  
    
$ch=substr($ip,$n,1);
    
    if(
preg_match('/\d/',$ch)){$nn=$ch;$pos+=11;}else{$nn=10;$pos+=1;}
    
    
imagecopy($im,$dg,$pos,2,$nn*14,0,14,15);
  }
  
  
ImageDestroy($dg);
  
  
# Закрытие крышки
  
  
$dg=ImageCreateFromPng("logofront.png");
  
  
imagecopy($im,$dg,0,0,0,0,350,19);
  
  
ImageDestroy($dg);
  
  
# Вывод изображения
  
  
ImagePng($im);
  
  
ImageDestroy($im);

?>
Пример: Результат Внимание, это результат, если ты перейдёшь по этой ссылке, инфу о тебе увидит каждый желающий.

Лог можно посмотреть, банально скачав архив, по ftp или http

Пример: Лог

или написав скриптик

PHP код:
<?
  
  $fn
='data.gz';
  
  
header("Content-type: text/plain");
  
  
header("Content-Encoding: gzip");
  
  
header("Content-Ranges: bytes");
  
  
header("Content-Length: ".filesize($fn));
  
  
header("Connection: Close");
  
  @
readfile($fn);

?>
Пример: Лог Внимание, каждый желающий, кто хочет увидеть инфу того, кто перешел по той ссылке, заходите сюда.


А теперь я расскажу, как же всё-таки узнать, кто есть кто.
Например, такой лог
Код:
IP      207.46.130.108
Time    26 Jun 2006 00:00:00
Agt     Mozilla/4.0 (compatible; MSIE 5.5; Windows 98; Win 9x 4.90)
Ref     http://forum.antichat.ru/showthread.php?p=999999#post999999
говорит, что некто, в полночь(26 Jun 2006 00:00:00 - время на сервере), используя мс осла, под 98 винду(Windows 98), с ип адреса 207.46.130.108, послал пост, или перешол специально к посту, с номером 999999(?p=999999#post999999) и если мы перейдём по этому адресу и сопоставим время, мы увидим кто это был.
Думаю дальше, всё понятно, просто смотришь, как у тебя меняется заголовок, когда ты ходишь по форуму, и сопоставляешь. Кстати, страну и город легко узнать через www.geobytes.com или www.ripe.net

Способ защиты: Использовать high_ananimus proxy.
Убедительная просьба, если вы найдёте ещё способы защиты, не выкладывайте их здесь.

Идея появилась, когда я увидел, у некоторых, одинаковые подписи, имхо подпись должна быть своя, вот я и сделал свою.

Удачи...

hidden специально для AntiChat


+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Пожалуйста, не пишите сюда необоснованных доводов. Когда я писал эту статью, я использовал только PHP Manual, для поиска последовательности параметров функций. Я считаю, что если не я придумал создавать графической подписи, это не значит, что я не могу привести свои методы, причины и размышления, поэтому поводу, и при этом чтоб это не было бояном.
Я также видел статьи, по созданию подписи, но они все не больше чем на одну страницу и они меня не заинтересовали, а также без наглядных примеров.
Если думаешь, зачем же я написал последние несколько строк, загляни в мою предыдущую статью, и сразу всё поймёшь. Предыдущая статья

Последний раз редактировалось hidden; 10.11.2006 в 21:52.. Причина: Исправление
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зацените мою подпись! -=lebed=- Болталка 20 26.10.2006 13:19
Подпись и Id BETEP Чаты 2 21.09.2006 02:23
Незнаю, куда это запостить. Полезная ссылочка.. SladerNon Уязвимости 9 13.06.2005 11:40



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ