PDA

Просмотр полной версии : Полезная и оригинальная подпись


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

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

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

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

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

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


<?

header('HTTP/1.1 302 Found');

header('Location: http://img.yandex.net/i/logo-big-txt.gif');

?>


Пример: Редирект (http://thsf.awardspace.com/redirect.php)

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


<?

header('Content-Type: image/gif');

@readfile('http://img.yandex.net/i/logo-big-txt.gif');

?>


Пример: Загрузчик (http://thsf.awardspace.com/loadimg.php)

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

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

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


<?

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


<?

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 месте.


<?

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);@gzcl ose($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);

?>


Пример: Результат (http://thsf.awardspace.com/miximg3.php) Внимание, это результат, если ты перейдёшь по этой ссылке, инфу о тебе увидит каждый желающий.

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

Пример: Лог (http://thsf.awardspace.com/data.gz)

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


<?

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

?>


Пример: Лог (http://thsf.awardspace.com/logolog.php) Внимание, каждый желающий, кто хочет увидеть инфу того, кто перешел по той ссылке, заходите сюда.


А теперь я расскажу, как же всё-таки узнать, кто есть кто.
Например, такой лог

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 ( http://www.geobytes.com/IpLocator.htm) или www.ripe.net ( http://www.ripe.net/perl/whois/)

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

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

Удачи...

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


+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Пожалуйста, не пишите сюда необоснованных доводов. Когда я писал эту статью, я использовал только PHP Manual (http://ru.php.net/manual/en/index.php), для поиска последовательности параметров функций. Я считаю, что если не я придумал создавать графической подписи, это не значит, что я не могу привести свои методы, причины и размышления, поэтому поводу, и при этом чтоб это не было бояном.
Я также видел статьи, по созданию подписи, но они все не больше чем на одну страницу и они меня не заинтересовали, а также без наглядных примеров.
Если думаешь, зачем же я написал последние несколько строк, загляни в мою предыдущую статью, и сразу всё поймёшь. Предыдущая статья (https://forum.antichat.ru/thread20911.html)

nerezus
27.06.2006, 18:24
а смысл?

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

hidden
27.06.2006, 18:25
а смысл?

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

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

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

hidden
27.06.2006, 20:02
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
В принципе боян, но немного в другом варианте.

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

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

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

на эти

$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
Охренеть...выб еще тему 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

А главная фишка этой статьи - это проверка статуса аськи, которая осуществляется как раз таки через 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
Просто с авардспейсом все равно не получается :(


П.с. интересно, а как же тогда подпись у автора статьи работает? у него же она на авардспейсе лежит... :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
вобщем накатал скрипт:

<?
error_reporting(0);

$url = array(1 => '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, $thumbbase, 0, 0, 0, 0, $new_width, $new_height, $width, $height); //копируем прямоугольные области с 1 изображения на другое

$white = imagecolorallocate($thumb, 255, 255, 255); //цвет текста
imagestring($thumb, 1, 19, 90, date("d F Y "), $white); //вывод даты
$font = imageloadfont("hootie.gdf"); //подгружаем шрифт
imagestring($thumb, $font, 1, 1, "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, который может быть также выключен.

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