[stegotorus/master] added dummy steg module that listens on a special port (3333)

commit aefd52e3d07dbbee3af4a2d689fa62ca988dca6f Author: Vinod Yegneswaran <vinod@csl.sri.com> Date: Mon Jan 9 18:45:51 2012 +0000 added dummy steg module that listens on a special port (3333) git-svn-id: svn+ssh://spartan.csl.sri.com/svn/private/DEFIANCE@209 a58ff0ac-194c-e011-a152-003048836090 --- Makefile.am | 3 +- scripts/start-client.csh | 10 ++- scripts/start-server.csh | 7 +- src/steg/dummy.cc | 137 ++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 149 insertions(+), 8 deletions(-) diff --git a/Makefile.am b/Makefile.am index f3ed040..04df59d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -27,7 +27,8 @@ STEGANOGRAPHERS = \ src/steg/payloads.cc \ src/steg/pdfSteg.cc \ src/steg/swfSteg.cc \ - src/steg/zpack.cc + src/steg/zpack.cc \ + src/steg/dummy.cc libstegotorus_a_SOURCES = \ src/connections.cc \ diff --git a/scripts/start-client.csh b/scripts/start-client.csh index 6eda343..c5062e1 100644 --- a/scripts/start-client.csh +++ b/scripts/start-client.csh @@ -1,8 +1,10 @@ #!/bin/csh -# ./obfsproxy --log-min-severity=debug x_dsteg socks 127.0.0.1:1080 x_http +# ./stegotorus --log-min-severity=debug x_dsteg socks 127.0.0.1:1080 x_http setenv EVENT_NOKQUEUE yes -#./obfsproxy --log-min-severity=debug chop socks 127.0.0.1:1080 127.0.0.1:8080 http 127.0.0.1:8081 http -# ./obfsproxy --log-min-severity=warn chop socks 127.0.0.1:1080 127.0.0.1:8080 http 127.0.0.1:8081 http -./obfsproxy --log-min-severity=error chop socks 127.0.0.1:1080 127.0.0.1:8080 http 127.0.0.1:8081 http +#./stegotorus --log-min-severity=debug chop socks 127.0.0.1:1080 127.0.0.1:8080 http 127.0.0.1:8081 http +# ./stegotorus --log-min-severity=warn chop socks 127.0.0.1:1080 127.0.0.1:8080 http 127.0.0.1:8081 http +#./stegotorus --log-min-severity=error chop socks 127.0.0.1:1080 127.0.0.1:8080 http 127.0.0.1:8081 http +./stegotorus --log-min-severity=error chop socks 127.0.0.1:1080 127.0.0.1:3333 dummy +# 127.0.0.1:3333 dummy diff --git a/scripts/start-server.csh b/scripts/start-server.csh index b7d61e6..e5e7876 100644 --- a/scripts/start-server.csh +++ b/scripts/start-server.csh @@ -1,6 +1,7 @@ #!/bin/csh setenv EVENT_NOKQUEUE yes -# ./obfsproxy --log-min-severity=debug chop server 87.73.82.145:8080 127.0.0.1:8080 127.0.0.1:8081 -# ./obfsproxy --log-min-severity=warn chop server 87.73.82.145:8080 127.0.0.1:8080 127.0.0.1:8081 -./obfsproxy --log-min-severity=error chop server 87.73.82.145:8080 127.0.0.1:8080 127.0.0.1:8081 +# ./stegotorus --log-min-severity=debug chop server 87.73.82.145:8080 127.0.0.1:8080 127.0.0.1:8081 +# ./stegotorus --log-min-severity=warn chop server 87.73.82.145:8080 127.0.0.1:8080 127.0.0.1:8081 +#./stegotorus --log-min-severity=error chop server 87.73.82.145:8080 127.0.0.1:8080 127.0.0.1:8081 +./stegotorus --log-min-severity=error chop server 87.73.82.145:8080 127.0.0.1:3333 diff --git a/src/steg/dummy.cc b/src/steg/dummy.cc new file mode 100644 index 0000000..3ef8fc8 --- /dev/null +++ b/src/steg/dummy.cc @@ -0,0 +1,137 @@ +/* Copyright (c) 2011, SRI International + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + + * Neither the names of the copyright owners nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + Contributors: Zack Weinberg, Vinod Yegneswaran + See LICENSE for other credits and copying information +*/ + +#include "util.h" +#include "connections.h" +#include "protocol.h" +#include "steg.h" +#include <event2/buffer.h> +#include <stdio.h> + +#define DUMMY_PORT 3333 + +namespace { +struct dummy : steg_t +{ + STEG_DECLARE_METHODS(dummy); +}; +} + +STEG_DEFINE_MODULE(dummy, + 1024, /* client-server max data rate - made up */ + 10240, /* server-client max data rate - ditto */ + 1, /* max concurrent connections per IP */ + 1); /* max concurrent IPs */ + + +dummy::dummy(bool is_clientside) +{ + this->is_clientside = is_clientside; +} + +dummy::~dummy() +{ +} + +/** Determine whether a connection should be processed by this + steganographer. */ +bool +dummy::detect(conn_t *conn) +{ + struct config_t* cfg = conn->cfg; + struct evutil_addrinfo *addrs = cfg->get_listen_addrs(0); + + fprintf(stderr, "in detect\n"); + + if (!addrs) { + log_warn("no listen addrs\n"); + return 0; + } + + struct sockaddr_in* sin = (struct sockaddr_in*) addrs->ai_addr; + + if (sin->sin_port == htons(DUMMY_PORT)) { + + return 1; + } + + return 0; + +} + +size_t +dummy::transmit_room(conn_t *) +{ + return 1024; +} + + + + + + + +int +dummy::transmit(struct evbuffer *source, conn_t *conn) +{ + struct evbuffer *dest = conn_get_outbound(conn); + + fprintf(stderr, "transmitting %d\n", (int) evbuffer_get_length(source)); + + if (evbuffer_add_buffer(dest, source)) { + fprintf(stderr, "failed to transfer buffer\n"); + } + + return 0; + +} + + + + + + +int +dummy::receive(conn_t *conn, struct evbuffer *dest) +{ + struct evbuffer *source = conn_get_inbound(conn); + + fprintf(stderr, "receiving %d\n", (int) evbuffer_get_length(source)); + + if (evbuffer_add_buffer(dest, source)) { + fprintf(stderr, "failed to transfer buffer\n"); + } + + return 0; +}
participants (1)
-
zwol@torproject.org