package org.krakenapps.pcap.decoder.smb.trans2struct.queryfsstruct; import org.krakenapps.pcap.decoder.netbios.NetBiosNameCodec; import org.krakenapps.pcap.decoder.smb.SmbSession; import org.krakenapps.pcap.decoder.smb.TransStruct; import org.krakenapps.pcap.util.Buffer; import org.krakenapps.pcap.util.ByteOrderConverter; public class SmbQueryFsVolumeInfo implements TransStruct{ long volumeCreationTime; int serialNumber; int volumeLabelSize;// volumeLabelSize *2 -> unicode String volumeLabel; public long getVolumeCreationTime() { return volumeCreationTime; } public void setVolumeCreationTime(long volumeCreationTime) { this.volumeCreationTime = volumeCreationTime; } public int getSerialNumber() { return serialNumber; } public void setSerialNumber(int serialNumber) { this.serialNumber = serialNumber; } public int getVolumeLabelSize() { return volumeLabelSize; } public void setVolumeLabelSize(int volumeLabelSize) { this.volumeLabelSize = volumeLabelSize; } public String getVolumeLabel() { return volumeLabel; } public void setVolumeLabel(String volumeLabel) { this.volumeLabel = volumeLabel; } public TransStruct parse(Buffer b , SmbSession session){ volumeCreationTime = ByteOrderConverter.swap(b.getLong()); serialNumber = ByteOrderConverter.swap(b.getInt()); volumeLabelSize = ByteOrderConverter.swap(b.getInt()); volumeLabel = NetBiosNameCodec.readOemName(b, volumeLabelSize); return this; } @Override public String toString(){ return String.format("Third Level Structure : Smb Info Fs Volume Info\n" + "volumeCreationTime = 0x%s , seialNumber = 0x%s , volumeLabelSize = 0x%s\n" + "volumeLabel = %s\n", Long.toHexString(this.volumeCreationTime) , Integer.toHexString(this.serialNumber) , Integer.toHexString(this.volumeLabelSize), this.volumeLabel); } }