2012-04-02 37 views
5

Tôi muốn nhận các lưu lượng dữ liệu ở mức gói (.pcap) trong Android trong một tuần (trong một số tệp nếu có thể).Chụp gói 24/7 trong Android bằng tcpdump

Tôi nghĩ rằng tôi có thể sử dụng tcpdump qua Shark, tuy nhiên tôi thấy rằng việc chụp sẽ dừng sau một thời gian. Việc chụp gói lớn nhất tôi nhận được là khoảng 40MB. Tôi phát hiện ra rằng tcpdump dừng/treo khi thay đổi giao diện mạng. Ví dụ, khi điện thoại được kết nối với 3G, khi tôi chạy tcpdump từ Shark tôi có thể thấy quá trình tcpdump đang chạy cho đến khi tôi bật Wi-Fi.

Trong Galaxy S2, khi được kết nối qua WiFi, tôi có các giao diện sau (có bằng cách sử dụng netcfg trong adb shell): lo, svnet0, usb0, sit0, eth0. Khi tôi kết nối qua 3G, tôi nhận pdp0 thay vì eth0.

Có cách nào để tôi có thể chạy tcpdump 24/7 không? Hoặc bất kỳ cách nào để kiểm tra khi nó đang chạy và nếu nó dừng lại làm cho nó chạy một lần nữa từ một ứng dụng Java? Kiểm tra quá trình của tcpdump hoặc một cái gì đó như thế này có thể? Hoặc theo dõi trạng thái của mạng và chạy tcpdump mỗi khi mạng bị thay đổi?

Tôi đã xem: ReadLine on TCPDump-Buffer sometimes blocks until kill tcpdump, nhưng nó không hoàn toàn giải quyết được vấn đề của tôi.

Tôi đang sử dụng thiết bị gốc.

Trả lời

2

sao bạn không thử áp dụng tPacketCapture (chỉ hoạt động với các thiết bị phi rooted)

Android OS 4.0

miễn phí

https://play.google.com/store/apps/details?id=jp.co.taosoftware.android.packetcapture

-

Gaku

+0

Cảm ơn! Tuy nhiên tôi nên cập nhật tất cả các điện thoại mà tôi đang sử dụng và đối với một số người trong số họ là không thể có được bản cập nhật (bản gốc từ nhà điều hành). Thật tuyệt khi biết rằng tôi có thể làm điều đó trong hệ điều hành Android 4.0. – Ekhi

0

Nếu bạn đã root thiết bị sau đó sử dụng SimplePacketCapture thay vì tPacketCapture. tPacketCapture tạo một vpn có thể phá vỡ ứng dụng voip của bạn.

1

Tôi đã thử làm theo để xem những gì đang xảy ra về tcpdump sau khi xen kẽ giao diện mạng.
1.open wifi chạy tcpdump-arm
2.run ps | grep tcpdump-cánh tay
3.close wifi và giao diện điện thoại di động mở
4.run ps | grep tcpdump-cánh tay

Tôi đã phát hiện ra rằng khi xen kẽ giao diện mạng trên điện thoại di động, quá trình tcpdump-arm vẫn hoạt động, nhưng nó không bắt được gói nào.

Tôi nghĩ bạn cần tcpdump để tiếp tục chụp ngay cả khi giao diện mạng đã thay đổi. Bạn có thể bắt đầu phát sóng thay đổi kết nối như số tutorial of google nói lúc đầu.
Sau đó, bạn nên chạy "killall" để giết tcpdump processl
Cuối cùng, khởi động lại quá trình tcpdump, nếu bạn không chỉ định giao diện, nó sẽ nghe trên giao diện mới được mở.Nếu bạn muốn tcpdump trả về nhanh chóng, bạn có thể thêm tùy chọn "-l" làm câu trả lời trong T CPDump-Buffer sometimes blocks until kill tcpdump ngụ ý.