Menu

Tree [c1b5ae] master /
 History

HTTPS access


File Date Author Commit
 src 2011-06-22 Sean Fisk Sean Fisk [104392] Fixed messages and timeouts.
 .classpath 2010-12-28 Sean Fisk Sean Fisk [f427f1] Inital commit. Project is already complete for ...
 .project 2011-06-02 Sean Fisk Sean Fisk [f0c0ac] Removed some unnecessary files.
 COPYING 2011-06-06 Sean Fisk Sean Fisk [54c47a] Added MIT license.
 README.markdown 2011-06-22 Sean Fisk Sean Fisk [c1b5ae] Updated README.
 fp_client.bat 2010-12-28 Sean Fisk Sean Fisk [f427f1] Inital commit. Project is already complete for ...
 fp_client.sh 2010-12-28 Sean Fisk Sean Fisk [f427f1] Inital commit. Project is already complete for ...
 fp_server.bat 2010-12-28 Sean Fisk Sean Fisk [f427f1] Inital commit. Project is already complete for ...
 fp_server.sh 2010-12-28 Sean Fisk Sean Fisk [f427f1] Inital commit. Project is already complete for ...
 taritup.sh 2011-06-02 Sean Fisk Sean Fisk [f0c0ac] Removed some unnecessary files.

Read Me

Firewall Punch Demo

Copyright (c) 2011 Sean Fisk

Licensed under the terms of the MIT/X11 license.

Description

Firewall Punch Demo is a proof-of-concept Java client and server to illustrate the UDP firewall punching technique used by Skype and similar programs.

It was inspired by an article on The H Security blog, The Hole Trick : How Skype & Co. Get Round Firewalls.

How to Use

Server

  1. Download the Server JAR file.
  2. Open a terminal in the download directory.
  3. Run the server with
    java -jar fp_server.jar PORT
    

Client

  1. Download the Client JAR file.
  2. Open a terminal in the download directory.
  3. Run the client with
    java -jar fp_client.jar HOST PORT
    

Running a server and two clients on the same machine

NOTE: This does not really demonstrate the real use of the program.

  1. Open three terminals.
  2. Start the server in the first terminal.

    java -jar fp_server.jar 5000
    
  3. Start a client each in the remaining terminals.

    java -jar fp_client.jar localhost 5000
    
  4. Once they are connected, kill the server with Ctrl-C.

  5. Continue communication between the clients!