2013-03-15 2 views
2

호스트가 네트워크로 보내기 전에 패킷 헤더 (IP 헤더, TCP 헤더)를 수정하고 싶습니다.호스트가 네트워크로 보내기 전에 패킷 헤더 (IP 헤더, TCP 헤더)를 수정하는 방법

예를 들어 파이어 폭스를 탐색하는 경우 파이어 폭스의 모든 패킷을 가로 채고 IP/TCP 헤더를 수정 한 다음 네트워크로 보내고 싶습니다.

기본적으로 두 가지 요구 사항이 있습니다. 1 개는 파이어 폭스의 모든 패킷을 차단합니다 (다른 프로그램은 제외). 이것이 가능하지 않은 경우, 그것은 특정 포트 또는 IP/포트 쌍

2에서 패킷을 가로 챌 수있는 IP/TCP 헤더를 수정 한 다음

이 방법에의 API가 네트워크로 주입 이걸 달성 할까? libpcap은 어떻습니까? 비슷한 소스 코드 조각이 있습니까? 나는 리눅스와 함께 일하고있다

감사합니다!

+0

[심층 패킷 검사] (http://en.wikipedia.org/wiki/Deep_packet_inspection)가 필요합니다. –

+0

내 요구 사항에 가까운 코드 예제가 있습니까? 감사! – user138126

+0

나는 아직도이 질문과 [당신의 다른 하나]가 궁금합니다 (http://stackoverflow.com/questions/15422041/how-to-get-the-tcp-header-of-a-received-packet-in- 소켓 프로그래밍)이 실제로 있습니다. API를 통해 수행 할 수없는 TCP 헤더의 내용을보고 변경해야합니까? – EJP

답변

-2

당신 Network packet capturing for Linux을 위해해야합니다.

그러나 시스템의 모든 프로세스를 차단하는 것으로 보입니다.


어쩌면 당신은 (2) 또는 RECV (2) TCP 헤더를 수정

#include <sys/ptrace.h> 
long ptrace (enum __ptrace_request request, 
      pid_t pid, 
      void *addr, 
      void *data); 

와 후크 전송을 사용할 수 있습니다.

+1

캡처가 충분하지 않습니다. 원본 패킷이 네트워크로 계속 보내지기 때문입니다. 나는 그들을 인터셉트 할 필요가있다. – user138126