golang과 gopacket 패키지를 사용하여 NTP를 감지하고 있습니다. wireshark에서 다운로드 한 pcap을 사용하고 있습니다. 나는 PCAPs을 열고 그들에게 처리하기 위해 다음과 같은 코드를 가지고 :golang을 사용한 NTP 감지, 페이로드가 비어 짐
func (d *DPI) readPCAP(pcapFile string) (*pcap.Handle, error) {
// Open file instead of device
handle, err := pcap.OpenOffline(pcapFile)
if err != nil {
return nil, err
}
return handle, nil
}
을 그리고 이것은 내가 응용 계층에서의 페이로드의 내용이오고 실제 감지
func TestNTP(t *testing.T) {
dpi := newDPI()
handle, _ := dpi.readPCAP("data/pcap/NTP_sync.pcap")
var filter = "udp and port 123"
dpi.setFilter(handle,filter)
ntpPackets := 0
for packet := range dpi.getPacketChan(handle) {
fmt.Println("stuff: ",packet.ApplicationLayer().Payload())
if dpi.detectNTP(packet) == 1 {
ntpPackets++
} else {
fmt.Println(" Output : ", dpi.detectNTP(packet))
}
}
fmt.Println(" Total ntp packets ", ntpPackets)
}
을 수행하는 데 쓰고 있어요 코드입니다 빈 공간이 생겨서 왜 이런 일이 일어나는지 알 수 없습니다. https://i.gyazo.com/7f4abd449025f5d65160fdbecffa8181.png
은 내가 잘못 알아내는 도움을 사용할 수 있습니다 나는 페이로드를 인쇄 할 때
https://i.gyazo.com/6257f298a09e7403bbc0be5b8ac84ccc.png
예 스크린 샷 : 나는 응용 계층 자체를 인쇄
예 스크린 샷 . 감사합니다.
ReadPCAP에서 반환 된 잠재적 오류를 무시하고 있습니다. 그 점을 다시 생각해보십시오. 사람들이 오류 반환을 처리한다면 많은 문제를 피할 수 있습니다. –
@ ZanLynx 그래, 그럴 필요가있어. 이는 테스트 용이었습니다. 팁 고마워! –
이미지 대신 텍스트로 텍스트 출력을 포함하십시오 (나는 downvote가있는 이유라고 생각합니다). –