content-incoding: gzip 형식의 http 패킷을 봐야하는데요
글쓴이: arena01 / 작성시간: 월, 2006/01/09 - 11:39오전
네트워크 장비를 지나가는 http packet의 분석을 위해서
gzip으로 압축된 packet을 packet단위로 uncompress해야 합니다.
시도해본 방법은
직접 #include inflate.c를 하고 output 버퍼 만들고
필요한 작업들을 한 뒤 gunzip()함수를 호출하는 방법이었는데,
data가 커서 packet이 연결되어 날아오는 경우에는 각 packet
끝부분의 code가 완벽하지 않기때문에, gunzip에서 에러를
리턴하거나 무한루프를 도는것 같습니다. error가 나와도
내부 window라는 버퍼에서 uncompress한곳까지만 출력하는
방법도 써 보았는데, 어떤 패킷에서는 gunzip 내부에서
무한루프를 돌게되어 장비가 죽기때문에 다른 방법이 필요합니다.
gzip 알고리즘을 공부해서 패킷 끝부분에 end of byte code를
넣어주면 될것 같은데 너무 복잡해보여서 그렇게 까지 안하고
packet별로 uncompress할수 있는 방법은 없을까요?
답변 부탁드리겠습니다.
참조할만한 자료라도 부탁드립니다.
Forums:
Re: content-incoding: gzip 형식의 http 패킷을 봐야하는데요
그런데 원래 http는 문서전송을 위해 만든겁니다.
그래서 http로 바이너리파일 전송하는건 좀 문제가 잇ㅇ르수 있습니다.
gzip 알고리즘 자체 특성상 fragmented 된 packet bou
gzip 알고리즘 자체 특성상 fragmented 된 packet boundary단위로 정확히 끊어서 풀어 보여줄 수는 없습니다. reassemble하셔야 할듯... // http로 body에 바이너리 전송은 아무런 문제는 없습니다만... 경우에따라선 mime을 해석하는건 OTL...
답글 감사합니다.그런데 ethereal 같은 프로그램을 보면pac
답글 감사합니다.
그런데 ethereal 같은 프로그램을 보면
packet 단위로 풀어서 data를 보여주고 있더라구요.
현 상황에서 reassemble하는건 불가능한데...
무슨 방법이 없을까요 ㅜㅜ
packet 뒷부분 data는 일부 유실되어도 상관 없습니다.
앞부분 data만 필요하거든요..
* reassemble이 불가능한 상황이라면 해당 작업(gzip압축 파일
* reassemble이 불가능한 상황이라면 해당 작업(gzip압축 파일, mime파일, 기타 선행데이터에 의해 뒤의 데이터값이 영향을 받는 구조의 파일)은 불가합니다.
* 이런 알고리즘들이 대체로 all or not이라서...
* 만드시는 제품의 스펙 변경을 권고합니다.
댓글 달기