wiki:KrakenFtpDecoder

Kraken FTP Decoder

API will be changed later. (due to problematic design)

Tutorial

Following example extracts README file from ftp.gnu.org PCAP dump:

package org.krakenapps.pcap.decoder.ftp;

import java.io.File;
import java.io.IOException;
import java.io.InputStream;

import org.krakenapps.pcap.Protocol;
import org.krakenapps.pcap.util.FileExtractor;
import org.krakenapps.pcap.util.PcapFileRunner;

public class FtpDecoderTest {
	public static void main(String[] args) throws IOException {
		PcapFileRunner runner = new PcapFileRunner(new File("gnu_ftp.pcap"));
		FtpDecoder ftp = new FtpDecoder(runner.getTcpDecoder().getProtocolMapper());
		ftp.register(new FtpProcessor() {
			@Override
			public void viewList(byte[] list) {
				System.out.println(new String(list));
			}

			@Override
			public void onCommand(String command) {
				System.out.println(command);
			}

			@Override
			public void onReply(String reply) {
				System.out.println(reply);
			}

			@Override
			public void onExtractFile(InputStream is, String fileName) {
				System.out.println("dumping " + fileName);
				File f = new File(fileName);
				try {
					FileExtractor.extract(f, is);
				} catch (IOException e) {
					e.printStackTrace();
				}
			}

		});

		System.out.println("dumping...");
		runner.setTcpProcessor(Protocol.FTP, ftp);
		runner.run();
	}
}

Attachments