hacker成长的代码之路:穷举(1)

发表于:2007-07-04来源:作者:点击数: 标签:
作者:kf_701 写作时间:2005/4 Email:kf_701@21cn.com 转载请保留原作者信息,谢谢。 要求的专业知识: 一: 精通OSI参考模型,精通 网络 五层:物理层,数据链路层, 网络 层,传输层,应用层。 精通每一层的协议,数据报格式。精通 网络 拓扑结构,第一层
                作者:kf_701  写作时间:2005/4  Email:kf_701@21cn.com
                转载请保留原作者信息,谢谢。


要求的专业知识
        一:    精通OSI参考模型,精通网络五层:物理层,数据链路层,网络层,传输层,应用层。
                精通每一层的协议,数据报格式。精通网络拓扑结构,第一层,第二层,第三层的网
                络互联,数据的转发和路由等。
        二:    精通C语言程序设计,UNIX/LINUX程序设计,网络程序设计。熟悉UNIX/LINUX系
                统操作,熟悉著名服务的基本配置,特性及使用的端口号。熟悉经典网络命令的使用,
                如.netstat,ping,traceroute,netcat,arp等。
        三:    精通标准SQL语言,熟悉流行的数据库使用,如:Oracle,Mysql等。掌握数据库与
                WEB语言的结合使用。

    黑客编程,不能没有穷举算法,所谓的弱口令扫描,不过就是简单的穷举而已。
    下面是一段完整的穷举算法代码,不是我写的。
    如果你没有看它之前,自己可以写出来,我想你的编码技巧已相当高超。
    就这么多了,help yourself!

     1  #include<stdio.h>
     2
     3  #define MIN     9
     4  #define MAX     16
     5
     6  int main()
     7  {
     8          char dict[]="0123456789";/*abcdefghijklmnopqrstuvwxyz";*/
     9          long dictcount=sizeof(dict);
    10          char password[MAX+2];
    11          long index[MAX];
    12
    13          long nlength=MIN;
    14          register long j,i=0;
    15          int b_next;
    16
    17          while(nlength<=MAX)
    18          {
    19                  for(i=0;i<MAX;i++)
    20                          index[i]=0;
    21
    22                  b_next=1;
    23                  while(b_next)
    24                  {
    25                          for(i=0;i<nlength;i++)
    26                                  password[i]=dict[index[i]];
    27
    28                          password[i]='';
    29                          puts(password);         /* output one result */
    30
    31                          for(j=nlength-1;j>=0;j--)
    32                          {
    33                                  index[j]++;
    34                                  if(index[j]!=dictcount-1)
    35                                          break;
    36                                  else
    37                                  {
    38                                          index[j]=0;
    39                                          if(j==0)
    40                                                  b_next=0;
    41                                  }
    42                          }
    43                  }
    44                  nlength++;
    45          }
    46          exit(0);
    47  }

下面的文章,我我将利用这段代码来写一个FTP穷举程序。
*****待续*****

原文转自:http://www.ltesting.net