Модераторы: Snowy, Poseidon, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мне надо написать программу, которая фильтровала, пакеты ... 
:(
    Опции темы
Dmitry V.Abramov
Дата 22.10.2003, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: нет
Всего: 4



Dayana ... Сокеты никогда не были "низким уровнем", ибо изначально задуманы для его сокрытия.

Как бы эдак заполнить TSockAddrIn, чтобы послать пакет с адресом соседа в поле sin_addr? smile.gif А подсунуть в него не мой MAC address? А послать popup message на компьютер в smb сети? А если он в другом сегменте? И еще много таких каков...

Может вас смущают названия переменных RcvPack и PackLen ? Назовите их RcvMsg и MsgeLen. Или RcvBuffer и BufferLen. Так будет гораздо ближе к их настоящей роли в формировании сетевого пакета.
--------------------
/DVA
PM MAIL WWW   Вверх
Dmitry V.Abramov
Дата 22.10.2003, 00:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: нет
Всего: 4



Цитата(Dayana @ 21.10.2003, 23:00)
Dmitry V.Abramov, тем не менее, используя winsocket, я с успехом получаю каждый пакет и обрабатываю его....

Безусловно! Но все его поля вам не доступны. Лишь пользовательские данные и немного адресных.

Вы сможете с помощью winsock отправить от себя ping на одну машину, но чтобы echo та послала на другую (не на ту, откуда уходил ping)? Вопрос риторический...

Видимо, все из-за несогласовавнной терминологии - в одни и те же слова мы вкладываем очень разный смысл. Еще хуже с этим обстоит дело в изначальном вопросе этого раздела...
--------------------
/DVA
PM MAIL WWW   Вверх
Monty
Дата 22.10.2003, 00:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Все, я определился с программой smile.gif ........ нужно только фильтровать ту информацию которую несет в себе пакет .......... ну а позже буду подменивать IP Adress ...... но не сейчас smile.gif ..... сейчас бы хоть элементарную фильровку сделать бы smile.gif

Dayana спасибо smile.gif .... а как его отправить с другого порта? smile.gif

Dmitry V.Abramov ок, раберусь, но если не выйдет с WinSock wink.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Monty
Дата 22.10.2003, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Не выходит с примером =\

Вот так выглядит пакет:
Код
0x0000   00 04 E2 79 6F D0 00 C0-9F 1B AE F5 08 00 45 00   ..?yo?.??.®?..E.
0x0010   00 25 1C 78 00 00 C8 11-62 1C C0 A8 02 13 D9 6B   .%.x..?.b.??..?k
0x0020   D8 0C 05 92 69 8A 00 11-CA A0 FF FF FF FF 72 75   ?..’i?..? ????ru
0x0030   6C 65 73                                          les

Мне нужно только изменить то что он несет ....... допустим, rules на bules :) ...... приняв его с порта 3000 и отослать его на удаленный сервер на порт 4000 :) ........ как то так

PS согласен что неправильно сформулировал вопрос в самом начале :) ......

Это сообщение отредактировал(а) Monty - 22.10.2003, 01:00


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Dmitry V.Abramov
Дата 22.10.2003, 01:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: нет
Всего: 4



Monty Ну так, а как был получен этот пакет - раскроешь страшную тайну? smile.gif Или нам опять строить предположения и спорить о значении терминов...

Можно, конечно, покопавшись вычислить чей это буффер, с какого адреса и на какой шел, и с какого на какой порт. Но проще спросить об этом автора.
--------------------
/DVA
PM MAIL WWW   Вверх
Dayana
Дата 22.10.2003, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: 1
Всего: 4



Monty, на всякий случай, может быть что-то полезное вычитаешь здесь. Поищи в сети описание заголовка пакета. В нем зашит и порт, и мак адрес, и остальная инфа... А вообще я с помощью сниффера смотрела, какие байты, что содержат...
PM MAIL ICQ   Вверх
Monty
Дата 22.10.2003, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Пакет я с помощью снифера получил smile.gif ...... но писать снеффир мне не надо smile.gif ..... надо лишь менять содержимое пакета .......

Dmitry V.Abramov
user posted image

PS программа с таким кодом замирает тут же не открыв порта
Код
var
 RcvPack : array [0..8024] of char;
 AddrSour : TSockAddr;
 i : integer;
 PackLen : integer;
 vWSAData : TWSAData;
 S : TSocket;
 SockAddr : TSockAddrIn;
 HostName : array[0..128] of char;
 pLocHost : PHostEnt;
 Flag : u_long;

begin
 FillChar(RcvPack, 8024, #0);
 GetHostName(HostName, 129);
 pLocHost := GetHostByName(HostName);
 WSAStartUp(MakeWord(2,2), vWSAData);
 S := Socket(AF_INET, SOCK_RAW, IPPROTO_IP);
 SockAddr.sin_family := AF_INET;
 SockAddr.sin_port := htons(5003);
 SockAddr.sin_addr.S_un_b.s_b1 := #127;
 SockAddr.sin_addr.S_un_b.s_b2 := #0;
 SockAddr.sin_addr.S_un_b.s_b3 := #0;
 SockAddr.sin_addr.S_un_b.s_b4 := #1;
 Bind(S, SockAddr, SizeOf(SockAddr));
 Flag := 1;
 ioctlsocket(S, SIO_RCVALL, Flag);
 for i := 1 to 10 do
   PackLen := recv(S, RcvPack, 8024, 0);
 CloseSocket(S);
end;


Это сообщение отредактировал(а) Monty - 22.10.2003, 18:26


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Monty
Дата 22.10.2003, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Dayana я нашел тот компонент который ты использовала smile.gif .... надо было мне сразу в яндекс зайти ....

http://overbyte.delphicenter.com/frame_index.html


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Dayana
Дата 22.10.2003, 21:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 352
Регистрация: 6.10.2002
Где: Тель-Авив

Репутация: 1
Всего: 4



Monty, точно... я же оттуда его брала... Ну у тебя получилось?
PM MAIL ICQ   Вверх
Monty
Дата 22.10.2003, 21:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Цитата(Dayana @ 22.10.2003, 20:15)
Monty, точно... я же оттуда его брала... Ну у тебя получилось?

Все демосы там работают .... пока буду сам разбиратся .... спасибо smile.gif

PS там нашел еще пару нужных компонентов которые я искал долго smile.gif

Добавленно:
Просто появилась еще одна проблемма .... у той программы что я хотел перенапрявлять пакеты не фиксированый порт mad.gif ...... даже проверить не могу, но это уже я сам smile.gif

Это сообщение отредактировал(а) Monty - 22.10.2003, 21:25


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Dmitry V.Abramov
Дата 22.10.2003, 22:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: нет
Всего: 4



Цитата(Monty @ 22.10.2003, 18:26)
Dmitry V.Abramov
PS программа с таким кодом замирает тут же не открыв порта
Код
var
 RcvPack : array [0..8024] of char;
 AddrSour : TSockAddr;
 i : integer;
 PackLen : integer;
 vWSAData : TWSAData;
 S : TSocket;
 SockAddr : TSockAddrIn;
 HostName : array[0..128] of char;
 pLocHost : PHostEnt;
 Flag : u_long;

begin
 FillChar(RcvPack, 8024, #0);
 GetHostName(HostName, 129);
 pLocHost := GetHostByName(HostName);
 WSAStartUp(MakeWord(2,2), vWSAData);
 S := Socket(AF_INET, SOCK_RAW, IPPROTO_IP);
 SockAddr.sin_family := AF_INET;
 SockAddr.sin_port := htons(5003);
 SockAddr.sin_addr.S_un_b.s_b1 := #127;
 SockAddr.sin_addr.S_un_b.s_b2 := #0;
 SockAddr.sin_addr.S_un_b.s_b3 := #0;
 SockAddr.sin_addr.S_un_b.s_b4 := #1;
 Bind(S, SockAddr, SizeOf(SockAddr));
 Flag := 1;
 ioctlsocket(S, SIO_RCVALL, Flag);
 for i := 1 to 10 do
   PackLen := recv(S, RcvPack, 8024, 0);
 CloseSocket(S);
end;

О каком порте речь в подслушивающем режиме? Порт - это всего лишь 2 байта в заголовке. К тебе же начинают валить все заголовки сразу.

Не замирает, а внимательно слушает smile.gif
У тебя, видимо, ничего не происходит по адресу 127.0.0.1. Попробуй, например, ping 127.0.0.1

А еще - SIO_RCVALL работает только в win2000 и выше. У тебя не Win9x?

Кстати, GetHostName/GetHostByName раньше было принято вызывать строго после WSAStartUp.
--------------------
/DVA
PM MAIL WWW   Вверх
Dmitry V.Abramov
Дата 22.10.2003, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: нет
Всего: 4



Цитата(Dayana @ 21.10.2003, 23:12)
Код
...
   ioctlsocket(S, SIO_RCVALL, Flag);
...


это уже на низком уровне...

Либо не заметил вот этой строчки, либо она появилась после "Это сообщение отредактировал Dayana - 21.10.2003, 23:15 " ;)

Если не заметил, то виноват и отзываю последующие затем хихикания. Тогда зацепился вот за это:
Код
SockAddr.sin_port := htons(Port);
- в promiscuous mode нет понятия "порт". Эту строчку можно выкинуть.

Вот только работать это будет лишь начиная с win2000. И не совместимо с программированием юниксных сокетов. Последнее может быть не важно. А вот первое...

Это сообщение отредактировал(а) Dmitry V.Abramov - 22.10.2003, 23:04
--------------------
/DVA
PM MAIL WWW   Вверх
Baa
Дата 23.10.2003, 00:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Цитата
У тебя, видимо, ничего не происходит по адресу 127.0.0.1. Попробуй, например, ping 127.0.0.1

Вы прикалываетесь чтоли? енто ж loopback... ping localhost = тест сетевой карты...


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Dmitry V.Abramov
Дата 23.10.2003, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 30.9.2003
Где: Saint-Petersburg

Репутация: нет
Всего: 4



Цитата(Baa @ 23.10.2003, 00:54)
Цитата
У тебя, видимо, ничего не происходит по адресу 127.0.0.1. Попробуй, например, ping 127.0.0.1

Вы прикалываетесь чтоли? енто ж loopback... ping localhost = тест сетевой карты...

Нужно создать поток сетевых пакетов. Чем плох пинг в этом случае? Тем что шлет ICMP? Так ведь снифферу что там летает.

А вот сетевую карту я бы не стал тестировать пингами на 127.0.0.1... smile.gif
--------------------
/DVA
PM MAIL WWW   Вверх
Monty
  Дата 23.10.2003, 05:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Advanced Lamer
****


Профиль
Группа: Участник Клуба
Сообщений: 3511
Регистрация: 3.4.2003
Где: Гваделупа

Репутация: нет
Всего: 27



Не выходит у меня с компонентами smile.gif ........ как можно сделать прием с одного порта и отправку на другой порт при этом его не трогать (сам пакет) .... как бы перенапрявляя с одного порта на другой ...... используя TWSocket? confused.gif ................ неее .... не в ладах я с этим sad.gif ...... можно рабочий код? если это не трудно smile.gif


--------------------
...
О, вещая моя печаль,
О, тихая моя свобода
И неживого небосвода
Всегда смеющийся хрусталь!
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

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

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0904 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.