PCAP 라이브러리를 이해하려고합니다. 필터를 적용하고 포트 80에서 TCP 페이로드를 얻을 수 있습니다.하지만 다음은 무엇입니까? 어떻게 HTTP 데이터를 읽을 수 있습니까? http 헤더의 "User Agent"필드 값을 알고 싶습니다. 어떻게 진행해야합니까? 나는 웹 사이트를 검색했고 (너무 많이 봤다고) 여기에 관련된 스레드를 찾을 수 있습니다 : writing a http sniffer. 하지만 이건 어디서나 도움이되지 않습니다 ...http 스니퍼 (또는 다른 응용 프로그램 수준 스니퍼) 작성
감사합니다 !!
Brickner! 나는 tcp 페이로드를 처리하는 것을 정확히 보았다. (그러나 나는 학습을 위해 C를 선호한다.) 코드 줄을 설명해 주시겠습니까? /* url의 시작 - "GET"건너 뛰기 */url = tcpPayload + 4; 이유 4? 그리고 이러한 가치를 더 얻기 위해 무엇을 탐험해야합니까 (저는 HTTP에 대한 RFC를 읽었지 만 그것을 사용하는 방법을 알지 못했습니다). 실제로 해당 패킷의 모든 HTTP 데이터를 읽고 싶습니다. 전체 스트림을 재구성 한 경우에만 가능합니까? 그렇다면이 재구성에 대해 나에게 약간의 아이디어를 줄 수 있습니까? 감사합니다. – Ishi
4는 "GET"- 3 ASCII 문자 + 공간 용입니다. RFC에는 가능한 모든 요청 이름 (예 : GET, POST ...)이 포함됩니다. HTTP 데이터 만 단일 패킷으로 보내려면 재구성이 필요하지 않습니다. 전체 HTTP 요청을 원할 경우 TCP 스트림을 재구성해야 할 수도 있습니다 (요청이 둘 이상의 패킷 인 경우). TCP 재구성은 또 다른 (그리고 매우 복잡한) 문제이며 Google이이를 위해 또는 다른 질문을해야합니다. 그건 그렇고, LibPcap이나 Windows 래퍼 WinPcap을 사용하고 있습니까? 아니면 더 일반적인 질문입니까? – brickner
저는 리눅스에서 libpcap를 사용하고 있습니다. 나는 http 패킷을 캡쳐하고 유용한 정보를 추출하는 것을 목표로 삼았지만, 현재 재건축은 너무 어렵다. 코드와 메시지가 포함 된 FTP를 대상으로해야합니까? 가능합니까? 예를 들면. FTP 메시지에서 사용자 이름과 암호를 추출하고 싶습니다. – Ishi