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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Полезная и оригинальная подпись (https://forum.antichat.xyz/showthread.php?t=20996)

hidden 27.06.2006 17:38

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

Что же подразумевается под словом "полезную", например:
- ты создал хорошую тему, большинство добавляет что небудь интересное, или исправляют реальные ошибки, а некоторые флудят, пишут всякую муть, клевету, но но так сложилось что ты не модератор чтобы забанить гада или пригрозить, но не всё потеряно, кто ты хакер или ламер, если хакер, значит, должен получать то что тебе нужно, в данном случае это 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.

http://hiddensite.by.ru/sig/logoback.png - подложка
http://hiddensite.by.ru/sig/logofront.png - крышка

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);

?>

http://thsf.awardspace.com/miximg1.php

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

http://hiddensite.by.ru/sig/logodigi.png - цифры, рисуем свои, чтоб оригинальнее было.
http://hiddensite.by.ru/sig/logoicq.png - два статуса 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.

http://thsf.awardspace.com/miximg2.php в данном примере это моя аська.

Ну вот, теперь она красивая и оригинальная, а главное ваша, а значит можно переходить ко второй стадии, логирование информации.
Я предпочитаю хранить все свои логи в 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, для поиска последовательности параметров функций. Я считаю, что если не я придумал создавать графической подписи, это не значит, что я не могу привести свои методы, причины и размышления, поэтому поводу, и при этом чтоб это не было бояном.
Я также видел статьи, по созданию подписи, но они все не больше чем на одну страницу и они меня не заинтересовали, а также без наглядных примеров.
Если думаешь, зачем же я написал последние несколько строк, загляни в мою предыдущую статью, и сразу всё поймёшь. Предыдущая статья

nerezus 27.06.2006 18:24

а смысл?

не легче ли просто дать ссылку на свою картинку со своего сервера и просто посмотреть логи апача?

hidden 27.06.2006 18:25

Цитата:

Сообщение от nerezus
а смысл?

не легче ли просто дать ссылку на свою картинку со своего сервера и просто посмотреть логи апача?

Двойная польза!

Dw@d 27.06.2006 19:52

hidden, такое ощущение, что ты написал сегодня эту статью после того как увидел мою подпись.
ну-ну.

hidden 27.06.2006 20:02

Цитата:

Сообщение от Dw@d
hidden, такое ощущение, что ты написал сегодня эту статью после того как увидел мою подпись.
ну-ну.

Где твоя подпись?
Статью я начял писать позавчера.
Я как-то заметил у нескольких участников одинаковые подпись и подумал, значит статья будет полезная, это случайно не твоя была?
И вобще, я мог её и не увидеть, я adblock-ом блокирую, общеподписьные сервера.
Вот-так...

Dw@d 27.06.2006 21:04

тут ты наверно не увидишь ее. смотри второй пост здесь http://forum.antichat.ru/showthread.php?p=167913
кстати, если нужен хостинг, чтоб были все нужные для таких приколов в подписях фунции , обращайтесь ко мне ;)

hidden 27.06.2006 22:09

1. Реклама в моей статье не приветствуется!
2. На бесплатном http://awardspace.com/ достаточно функций, для воплощения метода, описанного в моей статье, втом числе и доступ к сайту icq, так что всё работает, как и моя подпись, кроме манипуляций с IP.

Кстати, кому мозолят глаза, всякие там рекламные подписи или просто что небуди не нравиться, советую FireFox+adblock или в опере 9 есть блокировка элементов(blockable items).

Обновление информации:
http://awardspace.com/ достаточно функций, только для старых акаунтов, при установке на новом акаунте, происходит ошибка открытия файла, при доступе к сайту status.icq.com, для получения статуса icq.

Dw@d 27.06.2006 22:18

Цитата:

1. Реклама в моей статье не приветствуется!
эт не реклама. ты спрашивал где можно увидеть "подпись". там она у меня вставлена в сам пост. если так считаешь - могу удалить.
Цитата:

2. На бесплатном http://awardspace.com/ достаточно функций, для воплощения метода, описанного в моей статье.
а "доступ к внешним ресурсам для получения статуса аси" есть?

fucker"ok 28.06.2006 02:48

Статью похожей тематики.
http://forum.web-hack.ru/index.php?showtopic=14833
http://forum.antichat.ru/thread13068.html

баян отменяется!

hidden 28.06.2006 03:29

Цитата:

Сообщение от fucker"ok
В принципе боян, но немного в другом варианте.

http://forum.web-hack.ru/index.php?showtopic=14833
http://forum.antichat.ru/thread13068.html

А теперь скажи, кто изобрёл, создание динамической подписи, ведь сходство только вэтом, и из за этого ты сказал, что это боян.

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

P.S. Насчёт этого написано под плюсами.

fucker"ok 28.06.2006 04:24

Мда... Всё-таки я погоречился. Только глазом (единсвенным открытым ночью, второй спит) пробежал и сразу понял про что будет статья.
Перечитал. Вообщем-то речь идёт не только о логировании ip и тд. (как мне показалось с первого раза)

Вообщем извини. Беру свои слова обратно =)
hidden++;

bandera 01.07.2006 14:30

2hidden в твоей подписи моему ипишнику не хватает последней цифры или у тебя ограничение на 10 цифр -)

hidden 01.07.2006 18:12

Цитата:

Сообщение от bandera
2hidden в твоей подписи моему ипишнику не хватает последней цифры или у тебя ограничение на 10 цифр -)

Спасибо, для решения этой проблеммы, исправь эти 2 строчки
PHP код:

$pos=200;
for(
$n=0;$n<strlen($ip)-1;$n++){ 

на эти
PHP код:

$pos=195;
for(
$n=0;$n<strlen($ip);$n++){ 


bandera 02.07.2006 09:46

Теперь всё нормально.

TANZWUT 10.10.2006 17:36

давно думал о такой идее, ток руки недоходили.
прикольно, но доработать думаю стоит:
Time:10 Oct 2006 21:19:56
IP:unknown
Agt:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; Win64; x64; SV1)
:)

Diablo 11.10.2006 00:25

Цитата:

Сообщение от RemaerD
Охренеть...выб еще тему 2005 года подняли :d

:D Может кто-нибудь не видел :)

Nek1t 09.05.2008 17:44

Хм... А есть еще какой-нить хостинг, подходящий для этой цели( поддерживается fopen('http://...') ), кроме awardspace.com ?

Mo4x 09.05.2008 18:06

Nek1t
Конечно есть тока поискать надо только воть тут на форуме подписи нету :)

Nek1t 09.05.2008 18:40

Просто с авардспейсом все равно не получается :(
Цитата:

Warning: fopen(): URL file-access is disabled in the server configuration in /home/www/*.awardspace.com/index.php on line 6
П.с. интересно, а как же тогда подпись у автора статьи работает? у него же она на авардспейсе лежит... :eek: :confused:

Mo4x 09.05.2008 19:25

Nek1t
У простых смертных нету привилегий на подпись .

Karantin 09.05.2008 21:10

Nek1t иногда полезно почитать правила форума и про группы пользователей.

Nek1t 10.05.2008 12:16

Karantin
Mo4x

Нееее! :) Вы не поняли! То что подписи у простых смертных нет - это я знаю. Меня больше интересует как подпись у автора статьи вообще работает. У него она лежит на Awardspace, на этом хостинге запрещено открытие соединений с внешними ресурсами, т.е. fopen('http://ya.ru/logo.gif','r') не сработает, а выдаст:
Цитата:

Warning: fopen(): URL file-access is disabled in the server configuration in /home/www/*.awardspace.com/index.php on line 6
А главная фишка этой статьи - это проверка статуса аськи, которая осуществляется как раз таки через
PHP код:

fopen("http://status.icq.com/online.gif?icq=999999999&img=5","r"); 

У автора статьи, как видно, подпись прекрасно работает вместе с определением статуса аськи:

http://thsf.awardspace.com/info.php

Вот и интересуюсь как же он такое реализовал на этом хостинге? :confused:


П.с. если кто-то знает хостинг с поддержкой fopen('http://***','r') - прошу в личку! :p

vitalikis 29.06.2008 14:50

а не подскажеш как зделать чтобы картинка выводилась затем в пнж или жиф
так как на многих форумах картинку пхп в подпсь не поставиш(

TANZWUT 16.07.2008 10:55

Nek1t, помоему file_get_contents ещё никто не отменял...
vitalikis, при помощи хтаксес, смотри статьи про снифферы.

З.Ы. заглянул в тему т.к. щас с аваторкой мудрю, кто хочет за меня пошевелить извилинами - отписывайтесь, одному из Вас за оригинальность скину 5wmz, остальным семизнаков в ПМ ;)

требования:
1) Disable functions: fopen
2) php 4.x
3) картинка берёцо к примеру с google - http://www.google.ru/intl/en_com/images/logo_plain.png (формат по идее будет gif)
4) картинку размерами 1024px × 1024px надо уменьшить до максимального размера авы на форуме + возможность изменения качества если ужатая картинка больше доступного указаного веса.
5) 2-3 строки текста на аве с возможностью менять шрифт.

otmorozok428 17.07.2008 11:32

Цитата:

Сообщение от Nek1t
Просто с авардспейсом все равно не получается :(


П.с. интересно, а как же тогда подпись у автора статьи работает? у него же она на авардспейсе лежит... :eek: :confused:

Она и не работает :)

Цитата:

<b>Warning</b>: fopen(): URL file-access is disabled in the server configuration in <b>/home/www/thsf.awardspace.com/miximg3.php</b> on line <b>18</b><br />
<br />
<b>Warning</b>: fopen(http://status.icq.com/online.gif?icq=401707&img=5): failed to open stream: no suitable wrapper could be found in <b>/home/www/thsf.awardspace.com/miximg3.php</b> on line <b>18</b><br />
<br />
<b>Warning</b>: fread(): supplied argument is not a valid stream resource in <b>/home/www/thsf.awardspace.com/miximg3.php</b> on line <b>19</b><br />
<br />
<b>Warning</b>: fclose(): supplied argument is not a valid stream resource in <b>/home/www/thsf.awardspace.com/miximg3.php</b> on line <b>20</b><br />
Может я, конечно, не догоняю чего? Такую фигню пишет только в осле, при переходе по ссылке
Цитата:

http://thsf.awardspace.com/miximg3.php
А в Опере не пишет ничего, просто выдает пустой рисунок без ничего.

TANZWUT 17.07.2008 18:28

вобщем накатал скрипт:

PHP код:

<?
error_reporting
(0);

$url = array(=> 'http://site.com/1.jpg''http://site.com/2.jpg''http://site.com/3.jpg''http://site.com/4.jpg'); //ссылки на картинки

$ur mt_rand(1,4); //рандом картинок 1-4

$thumbbase=ImageCreateFromjpeg("{$url[$ur]}"); //создаём новое изображение из файла
$thumb_x 100;
$thumb_y 100//размеры изображения на выводе

$width imagesx($thumbbase);
$height imagesy($thumbbase); //получаем размеры исходного изображения

/* проверка размера */
if ($width $thumb_x || $height $thumb_x) {
      
$k max($width/$thumb_x$height/$thumb_x);
      
$new_width intval($width $k);
      
$new_height intval($height $k);
        }
        else {
              
$new_width $width;
              
$new_height $height;
                         } 


$thumb imagecreatetruecolor ($new_width$new_height); //создаём пустое полноцветное изображение
imagecopyresampled($thumb$thumbbase0000$new_width$new_height$width$height); //копируем прямоугольные области с 1 изображения на другое

$white imagecolorallocate($thumb255255255); //цвет текста
imagestring($thumb11990date("d F Y "), $white); //вывод даты
$font imageloadfont("hootie.gdf"); //подгружаем шрифт
imagestring($thumb$font11"TANZWUT"$white); //ник
header('Content-Type: image/jpeg'); //указываем формат данных
imagejpeg($thumb,null,100); //выводим полученое изображение, null - без сохранения, 100 - качество.
imagedestroy($thumb);
imagedestroy($thumbbase);
?>

демо: http://garantii.net.ru/test6.jpg

или

http://garantii.net.ru/test6.jpg http://garantii.net.ru/test6.jpg

ghostwizard 02.04.2009 18:30

Тем у кого проблема с fopen()

http://www.bin-co.com/php/scripts/load/

как вариант, как было сказано про file_get_contents, который может быть также выключен.

Спасибо за статью, многое можно сделать с безобидной на вид подписью ;)


Время: 05:29