왜 이런 일이 발생하나요? 주의 깊은 아이들은 우리가 서버에 보내는 요청 연결 데이터가 다르다는 것을 알 수 있습니다.
첫 번째 그림의 정보는 {"roomid":98284,"uid":271298361556770}
두 번째 그림의 정보는 { "uid":276194535568357,"protover":2,"roomid":98284}
roomid는 실제 방 번호이고 uid는 무작위로 생성된 숫자 문자열로 직접 복사하고 로그인할 수 있습니다.
이에 비해 두 번째에는 추가 "protover":2 매개변수가 있습니다. 실제로 첫 번째 사진은 모바일 클라이언트의 데이터 패킷을 캡처하는 것이고, 두 번째 사진은 컴퓨터 웹페이지의 데이터 패킷을 캡처하는 것입니다. 따라서 "protover":2 매개변수가 있으면 Barrage 서버에 연결할 수 있습니다.
그러므로 패킷을 캡처할 때 캡처하기 가장 쉬운 데이터는 휴대폰이고, 그 다음은 wap 측, 마지막으로 컴퓨터 측이라고 추론할 수 있습니다.
그러나 우리가 캡처하는 패킷 데이터는 그림 2와 같이 왜곡된 문자열인 경우가 많습니다. utf8 또는 gbk 인코딩을 사용하더라도 그림 1의 효과를 얻을 수 없습니다.
이런 종류의 데이터는 실제로 일종의 압축 데이터 gzip입니다. 현재 Wireshark는 이러한 압축 데이터 압축 해제 모드를 지원하지 않습니다.
요즘 웹사이트는 기본적으로 전송 시 압축 모드로 전송되기 때문에 캡쳐한 데이터가 압축된 데이터라고 생각하면 완전히 왜곡되어 시작할 방법이 없습니다.
사진과 같이 제 블로그 홈페이지 방문시 크롤링 서버에서 다시 보내주는 웹페이지 데이터가 gzip 모드로 되어 있고, 우리가 평소 방문하는 웹페이지는 브라우저에서 압축을 풀어서 렌더링해서 우리에게 보여줍니다.
Bilibili 서버가 gzip 데이터를 전송하는 것으로 분석되었으므로 타사 zlib 패키지나 gzip 패키지를 설치하면 이 문제를 해결할 수 있습니다.
위 내용은 캡처된 패킷 데이터가 왜곡되면 어떻게 됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!