Сейчас на форуме: jinoweb (+6 невидимых) |
eXeL@B —› Программирование —› Отлов сетевых пакетов |
Посл.ответ | Сообщение |
|
Создано: 28 марта 2017 09:58 · Личное сообщение · #1 Есть необходимость фильтровать сетевую активность по определённым признакам. Как это грамотно программно организовать? Везде советуют Pcap, качнул magsys.co.uk/delphi/magmonsock.asp ловлю я нужные пакеты через WinPcap, через то самое единственное событие в TMonitorPCap - OnPacketEvent но нигде не могу найти SequenceNr пакета и их количество, принадлежащее одному ответу, чтобы собрать из нескольких пакетов 1 файл. Может кто подсказать куда копать? ps: и вообще складывается ощущение, что если в систем несколько программ используют pcap, то половина пакетов вообще где-то теряются из виду... взять тот же HTTP Analyser, запускаем его и свою программу и она половину перестаёт видеть и он. Каким образом с этим работать чтобы ничего не терялось? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 28 марта 2017 10:36 · Личное сообщение · #2 |
|
Создано: 28 марта 2017 10:48 · Поправил: Isaev · Личное сообщение · #3 negoday интересует не сторонний софт, а собственная реализация (тут ветка Программирование). Иначе я бы взял Wireshark и он всё прекрасно ловит и показывает... допустим некий клиент посылает на сервер файл из нескольких пакетов сжатый делаем маленькую утильку, которая висит поверх всех окон, ловит нужные пакеты, собирает в файл, распаковывает, парсит нужную инфу и вангует при необходимости в лог проблема в общим только в первой части: каким образом организовать корректный отлов этих пакетов ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 28 марта 2017 12:40 · Поправил: negoday · Личное сообщение · #4 Isaev пишет: делаем маленькую утильку вроде уже такое делали в свое время, называется WPF v.6.69F. Там есть свой скриптовый язык, которым можно модифицировать пакет и много чего ещё. Очень мощная штука, делалась для читерства, но, вероятно, подойдет для чего угодно. У меня, криворукого, даже получалось ей кое-что сделать Есть еще попроще, утилиты, называются DPE rcD Packet Editor v.1.4.2.0 и WPE PRO Alfa v.0.9a (но эти две очень простенькие, но ими тоже пользовался успешно). | Сообщение посчитали полезным: bartolomeo |
|
Создано: 28 марта 2017 13:00 · Поправил: Isaev · Личное сообщение · #5 |
|
Создано: 28 марта 2017 14:05 · Личное сообщение · #6 |
|
Создано: 28 марта 2017 14:51 · Личное сообщение · #7 Вообще конечно интересно, глянул WPF, похоже использует только WinSock2 без всяких там pcap'ов dll и драйверов... Разве этого достаточно, чтобы патчить пакеты налету, как там заявлено? Поковырять его проблемно, т.к. он под VMProtect'ом, а самого автора похоже уже с нами нет ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 31 марта 2017 08:03 · Личное сообщение · #8 |
|
Создано: 31 марта 2017 08:42 · Личное сообщение · #9 |
|
Создано: 07 апреля 2017 15:15 · Поправил: Isaev · Личное сообщение · #10 В общем немного поэкспериментировав выяснилось, что для работы с http в общем вполне достаточно сырых сокетов в режиме прослушивания... Но если нам нужно работать с ssl, то на это уровне мы видим только шифрованные пакеты, чтобы ловить сразу расшифрованные, нужно хучить функции WinInet. Думаю Поправьте меня, если я где ошибаюсь, чтобы не ушёл в неправильном направлении) Когда мы сплайсингом хучим функцию, можно как-то узнать от какого именно процесса мы её перехватили? ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 07 апреля 2017 15:22 · Личное сообщение · #11 |
|
Создано: 07 апреля 2017 15:55 · Личное сообщение · #12 Archer пишет: В юзермоде? Вопрос тогда лишён смысла. это я пока не понимаю... я ещё теорию не дочитал по той статье, как я понимаю, в юзермоде. из своей dll которая подгружается во все процессы через создание удалённого потока и функцию LoadLibraryA... Цитирую: Следовательно, функция LoadLibraryA полностью подходит для того, что бы она могла выступать в качестве функции потока. Так как она принимает указатель на строку в своём процессе, нам надо будет записать в память чужого процесса нашу строку и именем файла DLL. Это делается функцией WriteProcessMemory. Добавлено спустя 5 минут Ещё Rouse подкинул пару своих статей поизучать по теме: - - т.ч. я пока ушёл изучать теорию, если у кого что-то путное есть почитать по данной теме, не стесняйтесь ----- z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh |
|
Создано: 07 апреля 2017 17:16 · Личное сообщение · #13 |
|
Создано: 07 апреля 2017 17:28 · Личное сообщение · #14 wireshark Opensource если он делает то что вам надо, тянете исходники, изучаете, забираете нужный функционал себе | Сообщение посчитали полезным: Crawler |
|
Создано: 07 апреля 2017 17:36 · Личное сообщение · #15 |
|
Создано: 09 апреля 2017 01:16 · Поправил: Isaev · Личное сообщение · #16 |
|
Создано: 09 апреля 2017 10:00 · Личное сообщение · #17 |
|
Создано: 09 апреля 2017 10:18 · Личное сообщение · #18 Isaev > Когда мы сплайсингом хучим функцию, можно как-то узнать от какого именно процесса мы её перехватили? В контексте какого процесса выполняется точнее. Это высокоуровневые функции, поэтому они всегда будут в контексте процесса. Просто получить указатель на текущий процесс, вызвав системные апи. Обратную операцию выполнить сложнее, некоторые области памяти(hyperspace) не разделяются между процессами - это сессионное пространство, так например у каждого процесса своя память win32k, для доступа к которой не достаточно аттача к процессу, нужен аттачь к сессии. > Думаю сплайсингом, чтобы хучить от любых процессов, а не подстраиватся постоянно под нужный. Обычно фильтруется соккетный IOCTL на уровне сервиса NtDeviceIoCtl в UM. ----- vx |
|
Создано: 02 мая 2018 16:41 · Личное сообщение · #19 |
|
Создано: 03 мая 2018 08:32 · Поправил: Rainbow · Личное сообщение · #20 Есть крайне эффективная штука в системе для этих нужд - |
|
Создано: 23 мая 2018 09:34 · Личное сообщение · #21 |
eXeL@B —› Программирование —› Отлов сетевых пакетов |