What follows are two small programs which I thought might be of interest to cypherpunks. The first (socket.c) is a simple daemon which binds a port and accepts connections, and then forks child processes for each one. The second (relay.c) is a simple telnet program which opens a connection to the specified remote host and port number. Put together they can be used as a telnet relay ("proxy server") that works like the term redir command. This in itself is useful, if you want to hide where you're coming in from, bypass a broken router or get through a firewall. But, take a look at the loop at the end of the second program. It simply reads input from one socket and writes it to another. It would seem to me very easy to add an encryptor/decryptor to this process and encrypt your telnet sessions. You'd just need to exchange a key (via PGP) with the remote system, and decide on a port number, then run crypt/dec daemons on both systems. The socket.c program might also be useful for socket-based remailing. (Tho you can set it up in your inetd.conf instead, if you have root access.) However, I'm having a bit of trouble compiling these on some platforms. I do not know who the original author is. (These came out of a toolkit for breaking system security and the author did not want to be known.) After including a few additional libraries, I was able to compile both under Linux, and it seems to work reasonably well. They'll also compile under SunOS, if you include <sys/termios.h>, but it won't handle non-blocking I/O correctly, and can hang. I can't get relay.c to compile under Ultrix, though socket.c seems to work. socket.c also has a tendency to leave zombie processes hanging under Linux. Anyone want to take a shot at debugging/porting it on other platforms or adding crypto? begin 644 socket.c M(VEN8VQU9&4@/'-Y<R]T>7!E<RYH/@HC:6YC;'5D92`\<WES+W-I9VYA;"YH M/@HC:6YC;'5D92`\<WES+W-O8VME="YH/@HC:6YC;'5D92`\;F5T:6YE="]I M;BYH/@HC:6YC;'5D92`\;F5T9&(N:#X*(VEN8VQU9&4@/'-Y<R]T:6UE+F@^ M("\J(%)E<75I<F5D(&9O<B!,:6YU>"`H8G5T(&YO="!3=6Y/4RD@*B\*(VEN M8VQU9&4@/'5N:7-T9"YH/B`O*B!297%U:7)E9"!F;W(@3&EN=7@@*&)U="!N M;W0@4W5N3U,I("HO"B`@("`@("`@("`@("`@(`IR96%P*"E["B`@("`@("`@ M:6YT(',["B`@("`@("`@=VAI;&4H=V%I="@F<RDA/2TQ*3L*?0IM86EN*&%C M+&%V*6EN="!A8SL*:6YT("HJ878["GL*("`@("`@("!S=')U8W0@<V]C:V%D M9')?:6X@;7EA.PH@("`@("`@('-T<G5C="!S97)V96YT("IS<`H@("`@("`@ M(#L*("`@("`@("!F9%]S970@;75F.PH@("`@("`@(&EN="!M>69D+&YE=RQX M+&UA>&9D/6=E=&1T86)L97-I>F4H*3L*("`@("`@("!S:6=N86PH4TE'0TQ$ M+')E87`I.PH@("`@("`@(&EF*"AM>69D/7-O8VME="A!1E])3D54+%-/0TM? M4U1214%-+`H@("`@("`@("`@("`P*2D\,"EE>&ET*#$I.PH@("`@("`@(&UY M82YS:6Y?9F%M:6QY/4%&7TE.150["B`@("`@("`@8GIE<F\H)FUY82YS:6Y? M861D<BP*("`@("`@("`@("`@<VEZ96]F*&UY82YS:6Y?861D<BDI.PH@("`@ M("`@(&EF*"AS<#UG971S97)V8GEN86UE*&%V6S%=+")T8W`B*2D*("`@("`@ M("`@("`@/3TH<W1R=6-T('-E<G9E;G0@*BDP*7L*("`@("`@("`@("`@("`@ M(&EF*&%T;VDH879;,5TI/#TP*65X:70H,2D["B`@("`@("`@("`@("`@("!M M>6$N<VEN7W!O<G0*("`@("`@("`@("`@("`@("`@("`]:'1O;G,H871O:2AA M=ELQ72DI.PH@("`@("`@('T@96QS92!M>6$N<VEN7W!O<G0]<W`M/G-?<&]R M=#L*("`@("`@("!I9BAB:6YD*&UY9F0L"B`@("`@("`@("`@("AS=')U8W0@ M<V]C:V%D9'(@*BDF;7EA+'-I>F5O9BAM>6$I*2EE>&ET*#$I.PH@("`@("`@ M(&EF*&QI<W1E;BAM>69D+`H@("`@("`@("`@("`Q*3PP*65X:70H,2D["FQO M;W`Z(`H@("`@("`@($9$7UI%4D\H)FUU9BD["B`@("`@("`@1D1?4T54*&UY M9F0L)FUU9BD["B`@("`@("`@:68*("`@("`@("`H<V5L96-T*&UY9F0K,2PF M;75F+#`L,"PP*2$],7Q\(49$7TE34T54*&UY9F0L)FUU9BDI9V]T;PH@("`@ M("`@("`@("!L;V]P.PH@("`@("`@(&EF*"AN97<]86-C97!T*&UY9F0L,"PP M*2D\,"EG;W1O(&QO;W`["B`@("`@("`@:68H9F]R:R@I"B`@("`@("`@("`@ M(#T],"E["B`@("`@("`@("`@("`@("!F;W(H>#TR.W@\;6%X9F0[>"LK*6EF M*'@A/6YE=REC;&]S92AX*3L*("`@("`@("`@("`@("`@(&9O<BAX/3`[>#P* M("`@("`@("`@("`@("`@("`@("!.4TE'.W@K*RES:6=N86PH>"Q324=?1$9, M*3L*("`@("`@("`@("`@("`@(&1U<#(H;F5W+#`I.PH@("`@("`@("`@("`@ M("`@8VQO<V4H;F5W*3L*("`@("`@("`@("`@("`@(&1U<#(*("`@("`@("`@ M("`@("`@("`@("`H,"PQ*3L*("`@("`@("`@("`@("`@(&1U<#(H,"PR*3L* M("`@("`@("`@("`@("`@(&5X96-V*&%V6S)=+&%V*S(I.PH@("`@("`@("`@ M("`@("`@97AI="@Q*3L*("`@("`@("!]"B`@("`@("`@8VQO<V4H;F5W*3L* 5("`@("`@("!G;W1O(&QO;W`["GT* ` end begin 644 relay.c M(VEN8VQU9&4@/'-T9&EO+F@^"B-I;F-L=61E(#QN971D8BYH/@HC:6YC;'5D M92`\<WES+W1Y<&5S+F@^"B-I;F-L=61E(#QS>7,O9FEL92YH/@HC:6YC;'5D M92`\;F5T:6YE="]I;BYH/@HC:6YC;'5D92`\<WES+W-O8VME="YH/@HC:6YC M;'5D92`\97)R;F\N:#X*(VEN8VQU9&4@/&9C;G1L+F@^"B-I;F-L=61E(#QS M>7,O:6]C=&PN:#X*(VEN8VQU9&4@/'5N:7-T9"YH/@HC:6YC;'5D92`\<WES M+W1I;64N:#X*+RHC:6YC;'5D92`\<WES+W1E<FUI;W,N:#XJ+R`@+RH@4F5Q M=6ER960@9F]R(%-U;D]3("AB=70@;F]T($QI;G5X*2`J+PH*=F]I9"!M86EN M*&EN="!A<F=C+&-H87(@*BIA<F=V*0I["B`@<F5G:7-T97(@8VAA<B`@("`@ M("`J<#L*("!R96=I<W1E<B!C:&%R("`@("`@("ID97-T.PH@(')E9VES=&5R M(&EN="!X.PH@(&-H87(@:&]S=&YA;65;,C4V73L*("!I;G0@861D<CL*("!I M;G0@8V]N;F5C=&EO;E]O:SL*("!S=')U8W0@:&]S=&5N="`J:&]S=#L*("!I M;G0@<F5M;W1E9F0["B`@:6YT(&9D.PH@('-T<G5C="!S;V-K861D<E]I;B!R M96UO=&5S97)V97(["B`@=6YS:6=N960@8VAA<B!C.PH@(&9D7W-E="!R96%D M9F1S.PH@(&9D7W-E="!W<FET969D<SL*("!F9%]S970@97AC97!T9F1S.PH@ M('-T<G5C="!T97)M:6]S('1I;W-T<CL*("!I;G0@<CTQ.PH@(&EN="!W/3$[ M"B`@8VAA<B!B=69F97);,3`R-%T["B`@:6YT(&\["B`@"B`@<W1R8W!Y*&AO M<W1N86UE+&%R9W9;,5TI.PH@(&AO<W0@/2!G971H;W-T8GEN86UE("AH;W-T M;F%M92D["B`@:68@*"%H;W-T*2!P<FEN=&8H(B5S.B!U;FMN;W=N(&AO<W1< M;B(L(&AO<W1N86UE*3L*("!B8V]P>2`H:&]S="T^:%]A9&1R+"`F861D<BP@ M-"D["B`@<F5M;W1E<V5R=F5R+G-I;E]F86UI;'D@/2!H;W-T+3YH7V%D9')T M>7!E.PH@(')E;6]T97-E<G9E<BYS:6Y?<&]R="`](&AT;VYS*&%T;VDH87)G M=ELR72DI.PH@(`H@('`@/2`H8VAA<B`J*2HH:&]S="T^:%]A9&1R7VQI<W0I M.PH@(&9O<B`H9&5S="`]("AC:&%R("HI)G)E;6]T97-E<G9E<BYS:6Y?861D M<BP@>"`](&AO<W0M/FA?;&5N9W1H.R`M+7@@/CT@,#L@*0H@("`@*F1E<W0K M*R`]("IP*RL["B`@"B`@<F5M;W1E9F0@/2!S;V-K970H:&]S="T^:%]A9&1R M='EP92P@4T]#2U]35%)%04TL(#`I.PH*("!C;VYN96-T:6]N7V]K(#T@8V]N M;F5C="`H<F5M;W1E9F0L("AS=')U8W0@<V]C:V%D9'(@*BDF<F5M;W1E<V5R M=F5R+"!S:7IE;V8H<F5M;W1E<V5R=F5R*2D["@H@(&EF("AC;VYN96-T:6]N M7V]K(#P@,"D*("`@('L*("`@("`@<')I;G1F("@B0V]N;F5C=&EO;B!%<G)O M<EQN(BD["B`@("`@(&9F;'5S:"`H<W1D;W5T*3L*("`@('T*"B`@+RH@3VMA M>2P@8V]N;F5C=&EO;B!E<W1A8FQI<VAE9"X@*B\*"B`@9F-N=&PH<F5M;W1E M9F0L($]?3D].0DQ/0TLI.PH@(&9D/3`["B`@9F-N=&PH9F0L($]?3D].0DQ/ M0TLI.PH*("!I;V-T;"AF9"P@1DE/3D))3RP@*&EN="`J*3$I.R`O*B!.;VXM M0FQO8VMI;F<@22]/("HO"B`@:6]C=&PH<F5M;W1E9F0L($9)3TY"24\L("AI M;G0@*BDQ*3L*("`*("!I;V-T;"AF9"P@5$-'1513+"`F=&EO<W1R*3L*("!T M:6]S='(N8U]L9FQA9STP.R`O*B!$:7-A8FQE(&%L;"!P<F]C97-S:6YG.R!U M;F%L=&5R960@."UB:70@8VAA;FYE;"`J+PH@('1I;W-T<BYC7VEF;&%G/3`[ M"B`@=&EO<W1R+F-?;V9L86<],#L*("!T:6]S='(N8U]C8UM624Y44ET],#L* M("!T:6]S='(N8U]C8UM6455)5%T],#L*("!T:6]S='(N8U]C8UM614]&73TP M.PH@(&EO8W1L*&9D+"!40U-%5%,L("9T:6]S='(I.PH*("!I;V-T;"AR96UO M=&5F9"P@5$-'1513+"`F=&EO<W1R*3L*("!T:6]S='(N8U]L9FQA9STP.R`O M*B!$:7-A8FQE(&%L;"!P<F]C97-S:6YG.R!U;F%L=&5R960@."UB:70@8VAA M;FYE;"`J+PH@('1I;W-T<BYC7VEF;&%G/3`["B`@=&EO<W1R+F-?;V9L86<] M,#L*("!I;V-T;"AR96UO=&5F9"P@5$-31513+"`F=&EO<W1R*3L*("`*("!& M1%]:15)/*"9W<FET969D<RD["B`@1D1?6D523R@F97AC97!T9F1S*3L*("`* M("!W:&EL92AR(3TP)B9W(3TP*2!["B`@("!&1%]:15)/*"9R96%D9F1S*3L* M("`@($9$7U-%5"AF9"P@)G)E861F9',I.PH@("`@1D1?4T54*')E;6]T969D M+"`F<F5A9&9D<RD["B`@("!S96QE8W0H,38L("9R96%D9F1S+"`F=W)I=&5F M9',L("9E>&-E<'1F9',L*'-T<G5C="!T:6UE=F%L("HI,"D["B`@("`O*B!4 M:&ES('=O<FMS(&)U="!I<R!W87D@=&]O('-L;W<N+BX@*B\*("`@("\J=SUR M96%D*&9D+"9C+#$I.VEF("AW/C`I('=R:71E*')E;6]T969D+"9C+#$I.RHO M"B`@("`O*G(]<F5A9"AR96UO=&5F9"PF8RPQ*3MI9B`H<CXP*2!W<FET92AF M9"PF8RPQ*3LJ+PH@("`@=SUR96%D*&9D+&)U9F9E<BPQ,#(T*3MI9B`H=SXP M*0H@("`@>PH@("`@("!O/3`["B`@("`@('=H:6QE*&\\=RD@;SUW<FET92AR M96UO=&5F9"QB=69F97(K;RQW+6\I.PH@("`@?0H@("`@<CUR96%D*')E;6]T M969D+&)U9F9E<BPQ,#(T*3MI9B`H<CXP*0H@("`@>PH@("`@("!O/3`["B`@ M("`@('=H:6QE*&\\<BD@;SUW<FET92AF9"QB=69F97(K;RQR+6\I.PH@("`@ L?0H@('T*"B`@8VQO<V4H<F5M;W1E9F0I.PH@(&-L;W-E*&9D*3L*("`*?0H@ ` end