2011-08-18 2 views
0

나가는 패킷에 수동으로 추가 데이터를 포함시키고 들어오는 패킷에서 가져 오는 것이 좋습니다. Java에서이 작업을 수행 할 수있는 방법이 있습니까? 기본적으로 네트워크 스택에서 내 자신의 하위 레이어를 shimming하는 방법을 필요로합니다.Java는 나가는 네트워크 패킷에 수동적으로 데이터를 추가 할 수 있습니까?

+2

현재 네트워크로 작동하는 Java 프로그램을 가져 와서 패킷을 가로 채어 내용을 수정하는 것이 가능하다고 말하는 것입니까? 또는 작업중인 서버와 작동중인 클라이언트 사이에 Java 프로그램을 넣고, 패킷을 슬래핑하고, 수정 한 다음 다시 보낼 수 있습니까? – corsiKa

+1

자신의 소켓을 구현했을 수 있습니까? – Rekin

+0

@glowcoder 전 전자와 비슷합니다. Java의 네트워킹 기능을 마치 재고처럼 사용하는 프로그램을위한 메커니즘을 제공하고자하지만 발신되는 패킷에 자동으로 추가되고 들어오는 패킷에서 추출되는 정보 계층이 있습니다. –

답변

1

C++에서 일반적인 방법은 libpcap 또는 Winpcap 라이브러리입니다. Java 래퍼도 구현되었으며 found here이 될 수 있습니다.

패킷 주입 문제의 경우 libnet을 사용할 수 있습니다. 불행히도, 자바 래퍼가 없으므로 jni가 직접 자바 래퍼를 작성해야합니다.

+0

팁 주셔서 감사합니다 - pcap 패킷을 캡처하고 내가 추가하는 데이터를 검색하는 좋은 방법입니다. 저에게 반쪽으로가는 길을 얻지 만, 나가는 패킷에 수동으로 연결하고 데이터를 주입하는 방법을 여전히 찾고 있습니다. –

+1

패킷에 연결하여 데이터를 삽입하려는 경우 Netfilter를 사용할 수 있습니다. 불행하게도 커널 모드 패킷 캡처 및 주입 모듈이지만 많은 라이브러리가 사용자 모드 액세스 기능을 제공합니다. 나는 그것에 대한 자바 래퍼를 모르지만, 필요한 서비스를위한 래퍼를 작성할 수있다. – hsalimi

+1

@ 에반, "수동적으로"데이터를 주입합니까? 어떻게 "수동적"입니까? ;-) – mpontillo

관련 문제