what you don't know can hurt you

uc.c

uc.c
Posted Jan 21, 2000
Authored by Michal Zalewski

nsuncat 0.01b - Unix socket connectivity from the command line. (works just like netcat for tcp/udp sockets)

tags | tool, udp, tcp
systems | unix
MD5 | 1a3c5631f2d2c7972fe6a722647fd070

uc.c

Change Mirror Download
// (c) lcamtuf

#include <sys/socket.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <signal.h>
#include <string.h>
#include <sys/un.h>

int saved,charmode,s,a;
struct termios chuj, orig;
struct sockaddr_un x;

void termset(int i) {
if (!charmode) return;
if (i) {
tcgetattr(0,&chuj);
if (!saved) tcgetattr(0,&orig);
saved=1;
chuj.c_lflag=0;
tcsetattr(0,TCSANOW,&chuj);
} else if (saved) tcsetattr(0,TCSANOW,&orig);
}

void sig(int x) {
shutdown(s,2);
close(s);
termset(0);
fprintf(stderr,"\npoink?! signal %d, aiee...\n",x);
exit(0);
}

char buf[1000];

int main(int argc,char* argv[]) {
if (argc-2) {
fprintf(stderr,"\nsuncat 0.01b - unix socket connectivity\n");
fprintf(stderr,"(c) 1999/2000 <lcamtuf@ids.pl>\n");
fprintf(stderr," usage: %s [%%]/socket/path\n",argv[0]);
fprintf(stderr," ('%%' enables charmode, full 8bit input)\n\n");
exit(1);
}
signal(SIGINT,sig); signal(SIGTERM,sig); signal(SIGPIPE,sig);
s=socket(PF_UNIX,SOCK_STREAM,0);
x.sun_family=AF_UNIX;
strncpy(buf,argv[1],100);
charmode=(buf[0]=='%');
termset(1);
strcpy(x.sun_path,&buf[charmode]);
if (connect(s,&x,sizeof(x))) { perror(&buf[charmode]); exit(1); }
fcntl(0,F_SETFL,O_NONBLOCK);
fcntl(s,F_SETFL,O_NONBLOCK);
while (1) {
usleep(10000);
a=read(0,buf,1000);
if (a<0 && errno!=EAGAIN) exit(3);
if (a>0) write(s,buf,a);
a=read(s,buf,1000);
if (a<0 && errno!=EAGAIN) exit(3);
if (a>0) write(0,buf,a);
}
}

Comments

RSS Feed Subscribe to this comment feed

No comments yet, be the first!

Login or Register to post a comment

File Archive:

April 2019

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    21 Files
  • 2
    Apr 2nd
    35 Files
  • 3
    Apr 3rd
    21 Files
  • 4
    Apr 4th
    16 Files
  • 5
    Apr 5th
    15 Files
  • 6
    Apr 6th
    1 Files
  • 7
    Apr 7th
    2 Files
  • 8
    Apr 8th
    23 Files
  • 9
    Apr 9th
    19 Files
  • 10
    Apr 10th
    15 Files
  • 11
    Apr 11th
    14 Files
  • 12
    Apr 12th
    11 Files
  • 13
    Apr 13th
    2 Files
  • 14
    Apr 14th
    5 Files
  • 15
    Apr 15th
    14 Files
  • 16
    Apr 16th
    19 Files
  • 17
    Apr 17th
    19 Files
  • 18
    Apr 18th
    8 Files
  • 19
    Apr 19th
    4 Files
  • 20
    Apr 20th
    5 Files
  • 21
    Apr 21st
    1 Files
  • 22
    Apr 22nd
    10 Files
  • 23
    Apr 23rd
    12 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2019 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close