package org.krakenapps.pcap.decoder.smb.trans2struct.findinfolevelstruct; 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 SmbFindFileNamesInfo implements TransStruct{ int nextEntryOffset; int fileIndex; int fileNameLength; String fileName; public int getNextEntryoffset() { return nextEntryOffset; } public void setNextEntryoffset(int nextEntryoffset) { this.nextEntryOffset = nextEntryoffset; } public int getFileIndex() { return fileIndex; } public void setFileIndex(int fileIndex) { this.fileIndex = fileIndex; } public int getFileNameLength() { return fileNameLength; } public void setFileNameLength(int fileNameLength) { this.fileNameLength = fileNameLength; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public TransStruct parse(Buffer b , SmbSession session){ nextEntryOffset = ByteOrderConverter.swap(b.getInt()); fileIndex = ByteOrderConverter.swap(b.getInt()); fileNameLength = ByteOrderConverter.swap(b.getInt()); fileName = NetBiosNameCodec.readSmbUnicodeName(b, fileNameLength); b.reset(); b.skip(nextEntryOffset); return this; } @Override public String toString(){ return String.format("Third Level Structure : Smb Find File Name info\n" + "nextEntryOffset = 0x%s , fileIndex = 0x%s , fileNameLength = 0x%s\n" + "fileName = %s\n", Integer.toHexString(this.nextEntryOffset) , Integer.toHexString(this.fileIndex) , Integer.toHexString(this.fileNameLength), this.fileName); } }