Перехват информации с сетевого порта - Сайт про программирование и программирование под linux
Программирование под linux, программирование, языки программирования, книги программирование На сайте представлена информация про программирование в Интернете и работу  

реализация Pop3/Smtp без VCL., Kol
Отправка сообщения, локальная сеть
Хочу сделать свою аську. Поделитесь опытом., Можно переделать чужую.
Игра, Компонент
Метод POST, Нада передовать скрипту на сервере данны
Убрать и показать иконки на Desctop'е., ----------------------------
Delphi и сотовая связь
отправка данных формы
Прием и отображение информации, протокол HTTP
Узнать город или регион...
Indy Mail Demo
Отправка SMS?, Как пишутся программы для отправки SMS?
Сервер игры, странная штука...
Как отключиться от Интернета?
FTP сервер без использования спец. компонентов
Трафик UDP ???, Как получить???
Вопрос по поводу TStringGrid
Как получить список всех компов в сети и...
Функция получения результатов POST(GET) в Delphi, Нужна помощь !!!
TFileStream, Срочно
Как узнать?, IP или Нет
Эмулятор сети, D7
отлов пакетов плчты в интернет
Proxy и DirectPlay, Реально ли на Delphi написать http прокс
Как Вы относитесь к курящим девушкам?
Узнать IP, TIdTCPServer
Отловить все ошибки TServerSocket
Как сделать TexOut прозрачным?, есть ли transparent
отправка почты без Outlook Express
IHtmlDocument2, activeElement, Как найти следующий после activeElement
help ! Kak sozdat server dlya inerneta ?
Помогите написать чат для локалки, Перерыла весь Инет, но ничего дельного..
Проблема с Client Socket, Server Socket
Нужна инфа по InterWeb
Отправка почты
Indy SMTP Client
протоколы почтовых серверов
Ошибка при обращении к web-сервису
Звук системным динамиком...
Кол - во байт через порт
Вопрос по названию интерфейса !, MS TCP Loopback interface
XModem, XModem, YModem
TCppWebBrowser и фокус
Узнать имена подключившихся процессов.
Количество переданныхи полученных байт, Помогите !!!
У меня проблемма с Indy UDP, IdUDPServer1UDPRead не работает
Работа с TIdTCP, помагите разобратся
Перехват информации с сетевого порта
Как зная IP определить адрес
help-rus
Хочется перейти к новому и интересному
Отправка переменной через тсп, без постоянного подлкючения
Определение IP
Нужно получить результат работы POST(GET) запроса, POST ( GET) запрос
Delphi 7> New > Other > Intra web > Isapi Appl., Что надо менять для нотрмальной работы
Компоненты Indy IdPOP3 и IdSMTP
как создать бота для vypress chat 2.0 на delphi ?, как создать бота для vypress chat 2.0 на
Связь с телефоном
Обмен файлами, нужен хороший пример
Скорость подключения по Dial-Up???, Очень нужно!!!
Вопрос по поводу процедур
Bind Shell, Без Pipes
Сканирование портов
Русская документация для INDY
Поисковик локальных серверов, Поисковик локальных серверов проги
Передача больших файлов
Скачивание файла. Подскажите!
Вопрос по RAS-соединению, Как начать коннект повторно?
idhttp проблема с кодировкой...
Как Вы относитесь к курящим девушкам?

Платные хостинги     Раскрутка сайта     Книги по программированию


Перехват информации с сетевого порта

Только здесь 1000 посетителей на Ваш сайт всего за 3 у.е.!

- Есть интересная проблемаЕсть некий сетевой сервер к которому обращаются приложения в сети.Необходимо написать программу, которая располагается на строне сервера иперехватывает весь поток сетевой информации к этому серверу.Порт по которому передаются данные известенЭто все нужно для эксперементов с сервером баз данных, например InterBaseНа чем основывается механизм перехвата такой информацииУстраивает решения и на Delphi и на С

- есть минимум 3 варианта решения проблемы1) снифер, можно взять уже готовый2) firewall +log читай тотже сниффер3) подменить winsock.dllпоследний 3 вариант наиболее интересен

- Спасибо за ответ.Однако интересно как реализвовать 3 совет.Исходных кодов нет.Может в W2000 есть библиотечка, которая осуществляет доступ к сетевой картена уровне портов(или ниже) ?

- http://www.google.com/search?hl=ru&q=winso...per+library&lr=

- Благодарю!!!

- BigMazyи есть результат? как оно? можно взглянуть? просто мне тоже сейчас необходим перехват...

- Я делал подобную вещь путем подмены адресов таблицы импорта сервера на адреса своих функций для модификации поведения сервера(точнее говроя для блокирования нежелательных юзеров ), т.е. тебе нужно:1) Внедриться в АП сервера.2) Добраться до таблицы импорта сервера.3) Записать адреса своих прототипов нужных функций за место адресов реальных функций из winsock32 (например, recv, send, accept и т.д.)4) В своих прототипах функций произвести какой то анализ данных.5) Передать управление реальной функции, если хочется продолжить нормальную работу сервера Добавлено @ 16:45 Если тебе нужно, то потом могу отыскать свою работку и выдрать от тудова код перехвата

- <Spawn>я бы с удовльствием на это взглянула )) а то мои попытки подменить API срабатывают через раз =(Guestспасибо )) отличный пример, только вот еще если sleep(0) добавить после парсинга пакет, чтобы start/stop сразу срабатывал - вообше супер получается )

- Rouse_ ты прям монст перехват сеня посматрю... только я подмену в других процессах делала, и вот там почему-то ни в какую не идет перехват того же MessageBox(A/W) из проектов дельфи, где он вызывается как Application.MessageBox... а CreateWindowEx вообше не смогла перехватить... короче буду разбираться с твоими примерами, большое спасибо )) не был бы ты гостем, поставила бы плюсик!

- Дык, всегда пожалуйста

- Вот мой код полуторагодовой давности Может поможет в разборках с перехватом :Код const  wsocket = 'WSOCK32.dll';var  OldAccept:function(s: TSocket; addr: PSockAddr; addrlen: PInteger): TSocket; stdcall;function NewAccept(s: TSocket; addr: PSockAddr; addrlen: PInteger): TSocket; stdcall;begin  Result := OldAccept(s, addr, addrlen);  if not IsShareIP(addr.sin_addr.S_addr, Result) then  begin    CloseSocket(Result);    Result := SOCKET_ERROR;  end;end;function SetSocketHook(FuncName: string; var FromAddr: Pointer; ToAddr: Pointer): Boolean;var  OldProtect: Pointer;  Ordinal: Word;  ImageBase: DWord;  ImageDosHeader: PImageDosHeader;  ImageFileHeader: PImageFileHeader;  ImageOptionalHeader: PImageOptionalHeader;  ImageImportDescriptor: PImageImportDescriptor;  ImageThunkData: PImageThunkData;  OriginalAddress: Pointer;begin  Result := False;  OriginalAddress := GetProcAddress(GetModuleHandle(wsocket), PAnsiChar(FuncName));  if not Assigned(OriginalAddress) then    Exit;  ImageBase := GetModuleHandle(PAnsiChar(nil));  ImageDosHeader := PImageDosHeader(ImageBase);  ImageFileHeader := PImageFileHeader(ImageBase+ImageDosHeader._lfanew+SizeOf(DWord));  ImageOptionalHeader := PImageOptionalHeader(DWord(ImageFileHeader)+SizeOf(TImageFileHeader));  ImageImportDescriptor := PImageImportDescriptor(ImageBase+                        ImageOptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT].VirtualAddress);  VirtualProtect(Pointer(ImageBase +                 ImageOptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress),                 ImageOptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].Size,                 PAGE_READWRITE, @OldProtect);  while ImageImportDescriptor.Name <> 0 do  begin    if StrIComp(PAnsiChar(wsocket),PAnsiChar(ImageBase+ImageImportDescriptor.Name))=0 then    begin      ImageThunkData := PImageThunkData(DWORD(ImageImportDescriptor.FirstThunk) + ImageBase);      while ImageThunkData.Ordinal <> 0 do      begin        if Pointer(ImageThunkData.Function_) = OriginalAddress then        begin         FromAddr:=OriginalAddress;         Pointer(ImageThunkData.Function_) := ToAddr;         Result := True;         Exit;        end;        Inc(ImageThunkData);      end;    end;    Inc(ImageImportDescriptor);  end;end;function MsgProc(Code: integer; WParam: Integer; LParam: Integer): Longint; stdcall;var  msg: PMSG;begin  Result := 0;  if Code >= 0 then  begin   Msg := Pointer(LParam);   case Msg.message of   WM_SETSOCKETHOOK:     if Msg.wParam = SpecificId then     begin        if SetSocketHook('accept', @OldAccept, @NewAccept) then           Hooked:=True;     end;   WM_DISCONNECTUSER:     begin     end;   end;  end;  if Result = 0 then Result := CallNextHookEx(HookHandle, code, WParam, LParam);end;procedure SetHook;export;stdcall;varIp:integer;begin  HookHandle := SetWindowsHookEx(WH_GETMESSAGE, @MsgProc, HInstance, 0);end;highlightSyntax('delphiVmMDYw','delphi');Это все должно лежать в DLL.Как отсюда видно, суть в коде следующая - ставится глобальный хук на перехват сообщений, после чего целевому процессу, имеющему цикл обработки сообщений, посылается определенная месага и код подгружается в его АП Проверялось это на XP.

- Всеже сниффером легче

Интернет казино     Онлайн игры     Увеличение члена     Купить DVD


Главная страница | программирование модема | api программирование | чпу программирование | программирование шпаргалки | программирование 1232 | программированию ключей | программирование под linux | электронные учебники программирование | builder c программирование | языки программирования basic | метод динамического программирования | задачи нелинейного программирования | 1с программирование скачать | алгоритмические языки программирования | delphi 7 программирование | проект программирование | borland программирование | программирование pocket pc | кнут искусство программирования | программирование памяти | c программирование скачать | Ссылки

Все про проект программирование