1 (изменено: Drugoy, 2016-03-16 13:09:10)

Тема: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Для работы с сетью в AHK я знаю только основную библиотеку AHKSock.
Все примеры её использования обычно касаются работы с пакетами, а как поймать/отправить кадр (т.е. тот тип данных, который используется на втором слое (уровне) сетевой модели OSI, например - ARP [запрос или ответ])?

2

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Можешь покопать в сторону чтения и перезаписи памяти процессов. Если это к примеру игра, то нужно будет искать оффсеты.

3

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Причём здесь процессы? Причём здесь игры?

4

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Drugoy, ну всё зависит от потребности.

5

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Процессы тут не причём (вернее, может какой-то системный процесс типа один из svchost.exe этим и занимается, но я не уверен в этом и не знаю как через него выйти на отлов пакетов).

Перед тем, как происходит коммуникация по IP (т.е. на третьем слое/уровне сетевой модели OSI) - машины сначала должны иметь представление о том какой IP привязан к какому физическому адресу (mac-адресу).
Узнают они это общаясь запрашивая и отвечая на чужие запросы по ARP (т.е. на втором слое/уровне сетевой модели OSI).
Никаких портов и сокетов на втором слое ещё нет, на этом слое машины общаются прямо по mac-адресам.
Вот эти ARP-пакеты мне и надо поймать.

6

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

На английском сайте не нашёл такого. Может использовать стороннюю программу и передавать данные из неё в AutoHotkey?

7

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Зачем стороннюю? arp -a + чтение StdOut.

8

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Вроде же arp - только один из протоколов Data Link layer.

9

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Утилита arp выводит таблицу соответствия IP и mac адресов, она не показывает пакеты, это не то, о чём я спрашивал. Таблица соответствий формируется в том числе и на основе arp-пакетов, но не только (записи туда можно добавить вручную), и не на основе всех arp-пакетов (не по всем arp-пакетам формируются записи в таблице соответствий).

Более того, как верно заметил урррu - arp был приведён в качестве примера, мне вообще-то нужно поймать широковещательный WakeOnLAN пакет, отправляемый с mac-адресацией (его можно посылать и на третьем слое, но мне нужно отлавливать именно те, которые идут на втором слое).

10

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Я выше говорил о сторонних программах. Обязательно ограничиваться силами AutoHotkey?

11

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Такое не подходит (т.к. слишком накладно, т.к. придётся тянуть ещё и стороннюю программу, а снифферы обычно требуют инсталляции [портативных вроде не бывает], это ещё геморрой).

12

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

По первому же запросу "портативный сниффер" нахожу Wireshark 1.12.8 Portable.  Смотрю  дальше - нахожу консольную версию.

13

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Это обман, чтобы набрать классы: wireshark (как и его консольная утилита tshark) не будет работать без WinPCap, и даже portable версия wireshark'а его требует и если он не установлен в системе - то portable wireshark его установит (а при выходе попытается его удалить) - получается, что это псевдо portable.

14

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Ну а в чем проблема установить?
http://paperlined.org/apps/wireshark/wi … stall.html

15

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

Мне не нравится такой подход, слишком громоздко получается.
Хотелось бы обойтись без привлечения сторонних программ, но если это невозможно - то и чёрт со всей этой задумкой.

16

Re: AHK: как поймать кадры (frame) на канальном уровне (data link)?

У меня ещё такая мысль появилась... А вообще возможно просматривать содержимое Ethernet-пакетов без установки программы? Есть же такие штуки, которые без установки вообще не работают, вроде виртуального CD-привода.