Мне интересно сделать программу на C#, которая сможет захватить сетевой трафик с устройства Android. Используя ADB, я могу перенаправить трафик с устройства на стандартный вывод Windows. Затем выход будет перенаправлен в Wireshark, который предварительно настроен для прослушивания стандартного вывода.SharpPcap - захват со стандартного вывода
Ниже команды я использую, только в случае, если кто-то нуждается в
В первом окне CMD
adb shell "tcpdump -n -s 0 -w - | nc -l 11233"
Во втором окне CMD
adb forward tcp:11233 tcp:11233 && nc 127.0.0.1 11233 | wireshark -k -S -i -
Вот мой вопрос ,
Я использую SharpPcap для захвата сетевого трафика в моей программе. В настоящее время я могу получить пакет из своего сетевого адаптера, то есть через Ethernet или Wi-Fi. Но, как вы можете видеть, сетевой трафик перенаправляются от Android устройства на стандартный вывод после этой команды
adb forward tcp:11233 tcp:11233 && nc 127.0.0.1 11233
и вывода этой команды будет ввод следующих один как Wireshark настроен на прослушивание на стандартный вывод по " -i - "
Каждый раз, когда выполняются 2 над командами, открывается один экземпляр окна Wireshark для захвата пакетов. Это не может быть применено к моей программе.
Идея заключается в том, чтобы открыть форму, используя SharpPcap для захвата пакетов из стандартного вывода
Кто-нибудь знает, как это сделать? Любая другая идея также приветствуется.
Большое спасибо !!!
Я автор sharppcap. Знаете ли вы, какой формат используется для stdout, переданного в wirehark? Если бы вы это сделали, вы могли бы сделать приложение C#, которое получило бы их и передало их вместе с PacketDotNet для синтаксического анализа. –
Привет Крис. Формат пакета полностью совпадает с тем, что вы фиксируете трафик из своей локальной сети. Как вы можете видеть, stdout передается непосредственно на wirehark и может быть декодирован и отображен в wirehark как обычный сетевой трафик. Если я могу получить один пакет за раз, я думаю, PacketDotNet может помочь разобрать. Но в этой ситуации я не мог использовать ICaptureDevice от SharpPcap, чтобы иметь RawCapture с помощью GetNextPacket(), поскольку здесь нет устройства, кроме как захвата из STDOUT. Есть ли у вас предложения? Благодарю. –
@ChrisMorgan: У меня есть массив байтов, содержащий все пакеты, прочитанные из STDOUT. Я проверил несколько раз, и мой массив байтов имеет тот же формат с журналом pcap. Я предполагаю, что он может быть декодирован с помощью PacketDotNet. Любой совет? –