Android 장치에서 네트워크 트래픽을 캡처 할 수있는 C# 프로그램을 만드는 데 흥미가 있습니다. ADB를 사용하여 장치에서 Windows 표준 출력으로 트래픽을 전달할 수 있습니다. 그런 다음 표준 출력을 수신하도록 사전 구성된 Wireshark로 출력이 전달됩니다. 다음은 SharpPcap - 표준 출력에서 캡처
여기adb forward tcp:11233 tcp:11233 && nc 127.0.0.1 11233 | wireshark -k -S -i -
내 질문 단지의 경우 다른 사람이 두 번째 CMD 창에서 첫 번째 CMD 창
adb shell "tcpdump -n -s 0 -w - | nc -l 11233"
에서
필요에 내가 사용 명령이다 .
SharpPcap을 사용하여 내 프로그램에서 네트워크 트래픽을 캡처하고 있습니다. 현재 네트워크 어댑터 (예 : 이더넷 또는 WiFi)에서 패킷을 가져올 수 있습니다. 당신이 볼 수 그러나, 네트워크 트래픽은 "에 의해 표준 출력을 청취하도록 구성되어 Wireshark와 같은 다음 하나의 입력을 할 것이다이 명령
adb forward tcp:11233 tcp:11233 && nc 127.0.0.1 11233
을 그리고,이 명령의 출력 후 표준 출력으로 안드로이드 장치에서 전달 -i - "
위의 명령 2 개가 실행될 때마다 Wireshark 창의 한 인스턴스가 열리고 패킷을 캡처합니다. 이것은 내 프로그램에 적용 할 수 없습니다.
아이디어는
사람이이 작업을 수행하는 방법을 알고 있나요 표준 출력에서 패킷을 캡처 SharpPcap를 사용하여 양식을 열 수 있습니다? 다른 아이디어도 환영합니다.
감사합니다.
저는 sharppcap의 저자입니다. wireshark에 전달 된 stdout에 어떤 형식이 사용되는지 알고 있습니까? 만약 당신이 그 (것)들을받을 C# 신청을 만들 수 있고 그 (것)들을 파싱을위한 PacketDotNet에 통과하십시오. –
Chris 님, 안녕하세요. 패킷 형식은 LAN에서 트래픽을 캡처하는 경우와 완전히 같습니다. 보시다시피, stdout은 wireshark에 직접 전달되며 일반 네트워크 트래픽처럼 wireshark에서 디코딩되고 표시 될 수 있습니다. 한 번에 하나의 패킷을 얻을 수 있다면, 나는 PacketDotNet이 구문 분석하는 것을 도울 수 있다고 생각한다. 그러나이 상황에서 SharpPcap의 ICaptureDevice를 사용하면 GetNextPacket()을 사용하여 RawCapture를 사용할 수 없습니다. 여기에 장치가 없기 때문에 STDOUT에서 캡처하는 것입니다. 어떤 제안이 있으십니까? 감사. –
@ChrisMorgan : STDOUT에서 읽은 모든 패킷을 포함하는 바이트 배열이 있습니다. 나는 여러 번 검사했고 내 바이트 배열은 pcap 로그와 같은 형식을 가지고있다. 나는 그것이 PacketDotNet을 사용하여 해독 될 수 있다고 생각한다. 어떤 충고? –