Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Перехватить УРЛ


Автор: SyncMaster 1.11.2010, 07:41
Всем привет.

Вопрос такой, как в дельфи перехватить УРЛ из браузеров.
Например, браузер отправляет урл – google.ru  программа перехватывает и блокирует урл при этом переадресовывает на другую страницу или урл.

Такое можно наблюдать в антивирусе Касперского.

Хотелось бы примерчик, или инфу.


http://www.upload-img.ru/large/7ad197e6e0.JPG

Автор: Qu1nt 1.11.2010, 09:39
Самый http://ru.wikipedia.org/wiki/Hosts.

Автор: casinosoftguru 1.11.2010, 11:09
Грубо говоря хукаешь вот так

Код

HookProc('ws2_32.dll', 'recv', @Nrecv, @Trecv);
HookProc('ws2_32.dll', 'send', @Nsend, @Tsend);
HookProc('ws2_32.dll', 'WSARecv', @NWSARecv, @TWSARecv);
HookProc('ws2_32.dll', 'WSASend', @NWSASend, @TWSASend); 


в качестве третьего и четвертого параметров идут твои функции обработки перехвата
например

Код

Tsend: function (s: TSocket;
                  Buf: pChar;
                  len, flags:
                  Integer): Integer; stdcall;



Код

function Nsend(s: TSocket; Buf: pChar; len, flags: Integer): Integer; stdcall;
begin
    asm
      pushad
   end;
if len >= 64 then
    begin
    
      if (strposA(Buf, pAnsiChar('Host: www.google')) <> nil)


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

Автор: SyncMaster 1.11.2010, 17:52
А что тут такого секретного? мне это надо не для хакинга -

вот сделал, скрин - 

http://upload-img.ru/large/7331961daa.JPG

осталось только заблокировать этот урл и будет то что надо.

Автор: SyncMaster 8.11.2010, 16:05
Цитата(casinosoftguru @ 1.11.2010,  11:09)
Код

function Nsend(s: TSocket; Buf: pChar; len, flags: Integer): Integer; stdcall;
begin
    asm
      pushad
   end;
if len >= 64 then
    begin
    
      if (strposA(Buf, pAnsiChar('Host: www.google')) <> nil)


Ага я так и сделал примерно, только вот с этого место можно по подробней -

Автор: SyncMaster 9.11.2010, 20:46
Тут стал замечать что ИЕ - ФФ и Хром падают когда я захожу по запрещеному урл.

Заметил такую тему (кстати в опере нормально работает но юзает фунцию WSASend и WSARecv)  если получить запросы от клинта и запрос от сервера то ужас.

От клиента все нормально а вот от сервера получается ерунда какая та типа -

    TP/1.1 200 OK и.т.д то есть каие то закарючки и.т.д.

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

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)