net.ibao.dnscat

Class DNScatServer


public class DNScatServer
extends java.lang.Object

The main class of DNScatServer

Version:
$Id: DNScatServer.java 42 2005-08-18 09:37:47Z tadekp $

Author:
Tadeusz Pietraszek (tadek@pietraszek.org)

Field Summary

(package private) static String
DEFAULT_PROPERTY_FILE
(package private) static String
DNS_CAT_VERSION
(package private) static String
LOGGER_PROPERTY_FILE
private static int
SOCK_TIMEOUT
(package private) AsyncInputStream
ais
private boolean
authoritative
private SOARecord
authoritativeServData
private int
bufferSize
private EncodingEnvelope
d
(package private) SixBitDNSEncoder
dnsEncoder
private int
dnsPort
private Name
domainName
private EncodingEnvelope
e
private boolean
ignoreTimeouts
private InetAddress
interfaceAddr
private InetAddress
ipAddr
(package private) Record
lastCNAME
(package private) static Logger
logger
private boolean
randomizeIp
private int
receiveCredit
private int
receiveTimeout
(package private) boolean
terminate
private long
ttl

Constructor Summary

DNScatServer(String[] argv)
Parse parameters and construct the main object.

Method Summary

(package private) byte[]
buildErrorMessage(Header header, int rcode, Record question)
byte[]
errorMessage(Message query, int rcode)
byte[]
formerrMessage(byte[] in)
InetAddress
generateRandomIP(String s)
(package private) byte[]
generateReply(Message query, byte[] in, int length, Socket s)
static void
main(String[] argv)
byte[]
receiveRequest(byte[] send)
boolean
run()
void
serveUDP(InetAddress addr, int port)

Field Details

DEFAULT_PROPERTY_FILE

(package private) static String DEFAULT_PROPERTY_FILE


DNS_CAT_VERSION

(package private) static String DNS_CAT_VERSION


LOGGER_PROPERTY_FILE

(package private) static String LOGGER_PROPERTY_FILE


SOCK_TIMEOUT

private static int SOCK_TIMEOUT


ais

(package private)  AsyncInputStream ais


authoritative

private boolean authoritative


authoritativeServData

private SOARecord authoritativeServData


bufferSize

private int bufferSize


d

private EncodingEnvelope d


dnsEncoder

(package private)  SixBitDNSEncoder dnsEncoder


dnsPort

private int dnsPort


domainName

private Name domainName


e

private EncodingEnvelope e


ignoreTimeouts

private boolean ignoreTimeouts


interfaceAddr

private InetAddress interfaceAddr


ipAddr

private InetAddress ipAddr


lastCNAME

(package private)  Record lastCNAME


logger

(package private) static Logger logger


randomizeIp

private boolean randomizeIp


receiveCredit

private int receiveCredit


receiveTimeout

private int receiveTimeout


terminate

(package private)  boolean terminate


ttl

private long ttl

Constructor Details

DNScatServer

public DNScatServer(String[] argv)
            throws Exception
Parse parameters and construct the main object. The code is complicated and ugly, but I really couldn't find a better way of doing it.

Parameters:
argv - Runtime parameters to parse

Method Details

buildErrorMessage

(package private)  byte[] buildErrorMessage(Header header,
                                            int rcode,
                                            Record question)


errorMessage

public byte[] errorMessage(Message query,
                           int rcode)


formerrMessage

public byte[] formerrMessage(byte[] in)


generateRandomIP

public InetAddress generateRandomIP(String s)
            throws UnknownHostException


generateReply

(package private)  byte[] generateReply(Message query,
                                        byte[] in,
                                        int length,
                                        Socket s)
            throws IOException


main

public static void main(String[] argv)
            throws Exception


receiveRequest

public byte[] receiveRequest(byte[] send)
            throws Exception


run

public boolean run()


serveUDP

public void serveUDP(InetAddress addr,
                     int port)