package org.krakenapps.pcap.decoder.smb.transparser; import org.krakenapps.pcap.decoder.smb.SmbSession; import org.krakenapps.pcap.decoder.smb.TransData; import org.krakenapps.pcap.decoder.smb.transreq.PeekNmpipeRequest; import org.krakenapps.pcap.decoder.smb.transresp.PeekNmpipeResponse; import org.krakenapps.pcap.util.Buffer; import org.krakenapps.pcap.util.ByteOrderConverter; public class PeekNmpipeParser implements TransParser{ @Override public TransData parseRequest(Buffer setupBuffer , Buffer parameterBuffer , Buffer dataBuffer) { PeekNmpipeRequest transData = new PeekNmpipeRequest(); transData.setSubcommand(ByteOrderConverter.swap(setupBuffer.getShort())); transData.setFid(ByteOrderConverter.swap(setupBuffer.getShort())); return transData; } @Override public TransData parseResponse(Buffer setupBuffer , Buffer parameterBuffer , Buffer dataBuffer , SmbSession session) { PeekNmpipeResponse transData = new PeekNmpipeResponse(); transData.setReadDataAvailable(ByteOrderConverter.swap(setupBuffer.getShort())); transData.setMessageBytesLength(ByteOrderConverter.swap(setupBuffer.getShort())); transData.setNamedPipeState(ByteOrderConverter.swap(setupBuffer.getShort())); byte []data = new byte[setupBuffer.readableBytes()]; setupBuffer.gets(data); transData.setReadData(data); return transData; } }