Skip to content

sergeybratus/proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

94 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

proxyd

A simple proxy for prototyping hammer-based parsing of DNP3. The main program is called "proxyd".

Internal architecture is documented on the wiki to help with elfbac integration.

building

The program uses cmake to generate makefiles.

  1. build and install pesco's branch of hammer using scons.

In the future we might try and use cmake externals to do this, or do a cmake build for hammer. The proxy will link to the static library that this build produces (libhammer.a).

  1. Clone this repository recursively to retrieve the three git submodules: dnp3 parser, tclap (cli parser), and easy-logging.
> git clone --recursive <repo address>
  1. Run cmake to generate a makefile. Recommend using a separate build directory, e.g.:
> mkdir build; cd build
> cmake ..
> make

running

The proxy can describe its command line arguments with -h

> proxyd -h
USAGE: 

   ./proxyd  [-s <name>] [-n <ipv4 address>] .... other args
   
   ....

A full example invocation would be:

> ./proxyd -s dnp3 -l 20001 -a 0.0.0.0 -n 192.168.1.2 -c 20000
2015-12-07 06:21:41,390 INFO  [default] Using parser: dnp3
2015-12-07 06:21:41,407 INFO  [default] completed dnp3/hammer parser initialization
2015-12-07 06:21:41,407 INFO  [default] Listening on: 0.0.0.0:20001

This invocation uses the DNP3 parser, and listens on port 20001 on all adapters. It forwards connections and traffic to 192.168.1.2:20000.

About

TCP Proxy w/ protocol parsing

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published