summaryrefslogtreecommitdiff
path: root/community/nemesis
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2013-08-13 01:33:19 -0700
committerroot <root@rshg054.dnsready.net>2013-08-13 01:33:19 -0700
commit7a65a910b77ad191d69881098c47f9b0c852d92e (patch)
tree9564e611af1442f8952a8cbddb3b0ad25ed71aab /community/nemesis
parent60da6abff6c9577a783d72865f11de7a585e912e (diff)
Tue Aug 13 01:31:08 PDT 2013
Diffstat (limited to 'community/nemesis')
-rw-r--r--community/nemesis/PKGBUILD42
-rw-r--r--community/nemesis/nemesis-proto_tcp.c.diff46
2 files changed, 88 insertions, 0 deletions
diff --git a/community/nemesis/PKGBUILD b/community/nemesis/PKGBUILD
new file mode 100644
index 000000000..b80d7d3fe
--- /dev/null
+++ b/community/nemesis/PKGBUILD
@@ -0,0 +1,42 @@
+# $Id: PKGBUILD 66248 2012-02-23 05:20:26Z spupykin $
+# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
+# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
+
+pkgname=nemesis
+pkgver=1.4
+pkgrel=5
+pkgdesc="command-line network packet crafting and injection utility"
+arch=(i686 x86_64)
+url="http://nemesis.sourceforge.net/"
+license=('BSD')
+depends=()
+options=('!libtool')
+source=(http://downloads.sourceforge.net/sourceforge/nemesis/nemesis-$pkgver.tar.gz
+ http://archlinux-stuff.googlecode.com/files/libnet-1.0.2a.tar.gz
+ nemesis-proto_tcp.c.diff)
+md5sums=('acd7de57798a7f90f445f80d4d4a6e61'
+ 'ddf53f0f484184390e8c2a1bd0853667'
+ 'd802f7a12610e68124200310ad80e0ac')
+
+build() {
+ # build libnet
+ cd $srcdir/Libnet-1.0.2a
+ # very dirty hack
+ sed -i 's#malloc(p_size)#malloc(p_size*2)#' src/libnet_packet_mem.c
+ [ -f Makefile ] || ./configure --prefix=$srcdir/libnet
+ make
+ make MAN_PREFIX=$srcdir/libnet/usr/man/man3 install
+
+ # build nemesis
+ cd $srcdir/nemesis-$pkgver
+ export PATH="$srcdir/libnet/bin:$PATH"
+ export CFLAGS="-D__GLIBC__=0 -I$srcdir/libnet/include -DLIBNET_LIL_ENDIAN"
+ export LDFLAGS="-L$srcdir/libnet/lib"
+ patch -Np1 <$srcdir/nemesis-proto_tcp.c.diff
+ [ -f Makefile ] || ./configure --prefix=/usr --mandir=/usr/share/man \
+ --with-libnet-includes=$srcdir/libnet/include \
+ --with-libnet-libraries=$srcdir/libnet/lib
+ make
+ make DESTDIR=$pkgdir install
+ install -D -m0644 LICENSE $pkgdir/usr/share/licenses/nemesis/LICENSE
+}
diff --git a/community/nemesis/nemesis-proto_tcp.c.diff b/community/nemesis/nemesis-proto_tcp.c.diff
new file mode 100644
index 000000000..d5a921738
--- /dev/null
+++ b/community/nemesis/nemesis-proto_tcp.c.diff
@@ -0,0 +1,46 @@
+diff -wbBur nemesis-1.4/src/nemesis-functions.c nemesis-1.4.my/src/nemesis-functions.c
+--- nemesis-1.4/src/nemesis-functions.c 2004-10-07 02:16:50.000000000 +0000
++++ nemesis-1.4.my/src/nemesis-functions.c 2009-06-19 13:51:30.000000000 +0000
+@@ -8,6 +8,8 @@
+ *
+ */
+
++#include <net/ethernet.h>
++
+ #if defined(HAVE_CONFIG_H)
+ #include "config.h"
+ #endif
+diff -wbBur nemesis-1.4/src/nemesis-proto_tcp.c nemesis-1.4.my/src/nemesis-proto_tcp.c
+--- nemesis-1.4/src/nemesis-proto_tcp.c 2003-10-31 21:29:37.000000000 +0000
++++ nemesis-1.4.my/src/nemesis-proto_tcp.c 2009-06-19 13:51:15.000000000 +0000
+@@ -16,7 +16,7 @@
+ FileData *ipod, FileData *tcpod, char *device)
+ {
+ int n;
+- u_int32_t tcp_packetlen = 0, tcp_meta_packetlen = 0;
++ u_int32_t tcp_packetlen = 0, tcp_meta_packetlen = 0, tcp_headerlen = 0, ip_headerlen = 0;
+ static u_int8_t *pkt;
+ static int sockfd = -1;
+ struct libnet_link_int *l2 = NULL;
+@@ -58,13 +58,20 @@
+ #endif
+ }
+
++ ip_headerlen = LIBNET_IP_H + ipod->file_s;
++ tcp_headerlen = LIBNET_TCP_H + tcpod->file_s;
++
+ tcp_packetlen = link_offset + LIBNET_IP_H + LIBNET_TCP_H + pd->file_s +
+ ipod->file_s + tcpod->file_s;
+
+- tcp_meta_packetlen = tcp_packetlen - (link_offset + LIBNET_IP_H);
++ tcp_meta_packetlen = LIBNET_TCP_H + pd->file_s;
+
+ #ifdef DEBUG
++ printf("DEBUG: link offsetlength %u.\n", link_offset);
++ printf("DEBUG: IP header length %u.\n", ip_headerlen);
++ printf("DEBUG: TCP header length %u.\n", tcp_headerlen);
+ printf("DEBUG: TCP packet length %u.\n", tcp_packetlen);
++ printf("DEBUG: TCP meta length %u.\n", tcp_meta_packetlen);
+ printf("DEBUG: IP options size %u.\n", ipod->file_s);
+ printf("DEBUG: TCP options size %u.\n", tcpod->file_s);
+ printf("DEBUG: TCP payload size %u.\n", pd->file_s);