2017-02-20 1 views
0

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를 사용하여 양식을 열 수 있습니다? 다른 아이디어도 환영합니다.

감사합니다.

+0

저는 sharppcap의 저자입니다. wireshark에 전달 된 stdout에 어떤 형식이 사용되는지 알고 있습니까? 만약 당신이 그 (것)들을받을 C# 신청을 만들 수 있고 그 (것)들을 파싱을위한 PacketDotNet에 통과하십시오. –

+0

Chris 님, 안녕하세요. 패킷 형식은 LAN에서 트래픽을 캡처하는 경우와 완전히 같습니다. 보시다시피, stdout은 wireshark에 직접 전달되며 일반 네트워크 트래픽처럼 wireshark에서 디코딩되고 표시 될 수 있습니다. 한 번에 하나의 패킷을 얻을 수 있다면, 나는 PacketDotNet이 구문 분석하는 것을 도울 수 있다고 생각한다. 그러나이 상황에서 SharpPcap의 ICaptureDevice를 사용하면 GetNextPacket()을 사용하여 RawCapture를 사용할 수 없습니다. 여기에 장치가 없기 때문에 STDOUT에서 캡처하는 것입니다. 어떤 제안이 있으십니까? 감사. –

+0

@ChrisMorgan : STDOUT에서 읽은 모든 패킷을 포함하는 바이트 배열이 있습니다. 나는 여러 번 검사했고 내 바이트 배열은 pcap 로그와 같은 형식을 가지고있다. 나는 그것이 PacketDotNet을 사용하여 해독 될 수 있다고 생각한다. 어떤 충고? –

답변

0

mkfifo을 사용하여 fifo를 만들고 을 stdout 대신 fifo로 쓸 수 있습니까? 그럼 wireshark를 stdin 대신에 fifo에서 읽으십니까? 같은 뭔가 :

mkfifo sharkfin 
wireshark -k -S -i sharkfin & 
adb forward tcp:11233 tcp:11233 && nc 127.0.0.1 11233 > sharkfin 

경우 와이어 샤크에서 캡처를 중지하고 당신은, 당신은 또한 단지 EOF를 수신 결코 와이어 샤크을 보장하기 위해 와이어 샤크를 실행 한 후 다음 명령을 실행할 수 있습니다 싶지 않아요.

cat > sharkfin & 
+0

안녕하세요. Christopher. 물론, Wireshark는 stdout의 경우에도 항상 도움이 될 것입니다. 그러나 문제는 패킷을 내 프로그램으로 전달하는 것입니다. stdout에서 패킷을 캡처하는 방법을 찾았지만 SharpPcap이 SIP 패킷을 구문 분석하지 않기 때문에 내 용도로는 충분하지 않은 것으로 보입니다. Wireshark를 C# 프로그램에 통합하는 방법에 대한 아이디어가 있습니까? –

+0

@ Viet-AnhDinh 당신은 잠재적으로 PacketDotNet 용 SIP 파서를 구현할 수 있습니다. 나는 파서를 구현하기 위해 계약을 할 수있다. –

+0

@ChrisMorgan : 나는 tshark이 나의 모든 필요에 맞는 또 다른 방법을 발견했다. 내 프로젝트를 마친 후 PacketDotNet 용 SIP 파서로 돌아갈 수 있습니다. 그 때 연락 드리겠습니다. 초대해 주셔서 감사합니다. –

관련 문제