Перехват TCP пакетов

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Np5
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 11.03.2006 (Сб) 14:23
Откуда: Москва

Перехват TCP пакетов

Сообщение Np5 » 17.03.2007 (Сб) 16:03

всем привет!
Возможно ли перехватить исходящие TCP пакеты на VB6 ? если да, то как?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 17.03.2007 (Сб) 16:15

В принципе, можно. Почитай про WinPcap. Но это не совсем VB.
Исключительно на VB нельзя.
Lasciate ogni speranza, voi ch'entrate.

Np5
Начинающий
Начинающий
 
Сообщения: 9
Зарегистрирован: 11.03.2006 (Сб) 14:23
Откуда: Москва

Сообщение Np5 » 18.03.2007 (Вс) 22:16

alibek писал(а):В принципе, можно. Почитай про WinPcap. Но это не совсем VB.
Исключительно на VB нельзя.


Спасибо,, вчера пол дня разбирался...
:D
Вобщем есть вопрос:

попытался определить имя адаптера, но ничего так и не получилось...
вот код...
Код: Выделить всё

Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal _
wParam As Any, ByVal lParam As Any) As Long

Private Type NetType
    LinkType As Long
    LinkSpeed As Long
End Type

Dim fAddress As Long
Dim mBuffer As String
Dim LenBuffer As Long
Dim HandleLib As Long
Dim lpAdapter As Long
Dim RetVal as Long

Dim NetInfo as NetType



Private Sub Form_Load()

mBuffer = Space(MAX_PATH)
LenBuffer = Len(mBuffer)

HandleLib = LoadLibrary("packet.dll")

fAddress = GetProcAddress(HandleLib, "PacketGetAdapterNames")
CallWindowProc fAddress,StrPtr(mBuffer), VarPtr(LenBuffer), 0&, 0&

fAddress = GetProcAddress(HandleLib, "PacketOpenAdapter")
lpAdapter = CallWindowProc(fAddress, StrPtr(mBuffer), 0&, 0&, 0&)


fAddress = GetProcAddress(HandleLib, "PacketGetNetType")
RetVal = CallPacketGetNetType(fAddress, lpAdapter, VarPtr(NetInfo), 0&, 0&)
RetVal = CallWindowProc(fAddress, lpAdapter, VarPtr(NetInfo), 0&, 0&)

'Структура пустая, хотя функция возвращает 1

FreeLibrary HandleLib
MsgBox mBuffer
End Sub


после этого в переменной mBuffer "Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!?}Я идиот! Убейте меня, кто-нибудь!Я идиот! Убейте меня, кто-нибудь!"
впрочем и PacketRecivePacket тоже неработает...

Собственно что у меня не так? :?:
Последний раз редактировалось Np5 19.03.2007 (Пн) 9:07, всего редактировалось 1 раз.

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 18.03.2007 (Вс) 22:38

Для перехвата пакетов соответственно нужно вникнуть в перехват апи функций. В Целом весь перехват сводится к глобальному хуку send/recv api... А глобальный хук ессно придётся на чём-то другом, не на VB. Можно например использовать PowerBasic, у него очень похожий синтаксис с VB, есть лишь нюансы...
А как оно на самом деле - Х.З. !


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 107

    TopList