邪恶八进制信息安全团队技术讨论组's Archiver

sgl 2005-6-30 09:02

[转载]黑客字典源码

信息来源:邪恶八进制信息安全团队

这是为了辅助破解密码才写的,在破解密码的时候需要建立个密码档,网上有很多类似的程序,但觉的功能还不完善,就用c写了这个,命令行下的东西,主要是不会vc,也不想做人机的界面,反正是自己用,各位看看思路就可以了,挺简单的东西,不要以为那都是些高手才可以做到的东西,自己不去做,就是永远的scripts boy

[code]/*黑客字典,可以完成生日字典,穷举,自定义,电话,手机等密码的设置,最多生成20位密码,
功能还不是很完善,有空在完善它^_^*/


#include <conio.h>
#include <stdio.h>
#include <string.h>
#include <dos.h>
#include <stdlib.h>
#define R ((T=(z==1)?m:(z==2)?0:m))      /*宏定义,参数传递用*/
#define Q ((P=(z==1)?(n+1):(z==2)?lh:n))
#define Max 100
#define M 600

void crack(void);
void crack4(void);
void crack2(void);
void Txt2Dic(void);
void help(void);

char a[]={&#39;0&#39;,&#39;1&#39;,&#39;2&#39;,&#39;3&#39;,&#39;4&#39;,&#39;5&#39;,&#39;6&#39;,&#39;7&#39;,&#39;8&#39;,&#39;9&#39;,&#39;0&#39;,&#39;A&#39;,&#39;B&#39;,&#39;C&#39;,&#39;D&#39;,
    &#39;E&#39;,&#39;F&#39;,&#39;G&#39;,&#39;H&#39;,&#39;I&#39;,&#39;G&#39;,&#39;K&#39;,&#39;L&#39;,&#39;M&#39;,&#39;N&#39;,&#39;O&#39;,
    &#39;P&#39;,&#39;Q&#39;,&#39;R&#39;,&#39;S&#39;,&#39;T&#39;,&#39;U&#39;,&#39;V&#39;,&#39;W&#39;,&#39;X&#39;,&#39;Y&#39;,&#39;Z&#39;,&#39;a&#39;,&#39;b&#39;,&#39;c&#39;,&#39;d&#39;,
    &#39;e&#39;,&#39;f&#39;,&#39;g&#39;,&#39;h&#39;,&#39;i&#39;,&#39;j&#39;,&#39;k&#39;,&#39;l&#39;,&#39;m&#39;,&#39;n&#39;,&#39;o&#39;,&#39;p&#39;,&#39;q&#39;,&#39;r&#39;,&#39;s&#39;,
    &#39;t&#39;,&#39;u&#39;,&#39;v&#39;,&#39;w&#39;,&#39;x&#39;,&#39;y&#39;,&#39;z&#39;,&#39;~&#39;,&#39;@&#39;,&#39;#&#39;,&#39;$&#39;,&#39;%&#39;,&#39;^&#39;,&#39;&&#39;,&#39;*&#39;,&#39;-&#39;,&#39;+&#39;,
      &#39;<&#39;,&#39;>&#39;,&#39;{&#39;,&#39;}&#39;,&#39;[&#39;,&#39;]&#39;,&#39;(&#39;,&#39;)&#39;};


void help(void)
{
   char aa[600]={"Written by W.Z.T Don&#39;t be lazy,Just go ahead\n\n"};
   int i,k;
   long int j=10000000;
   for(i=0;i<strlen(aa);i++)
   {
for(k=0;k<4;k++)
   delay(j);
      printf("%c",aa[i]);
   }
}

void crack(void)
{
  FILE *fp;
  int T,P,z,lh,ii,jj,i,j,k,l,o,p,q,r,s,t,u,v,m,n,kk,ll,mm,oo,pp,qq,rr,ww;
  char ch,le[100];
  long int lenth=0;
  printf("1.Brute Force\t2.Custom Range\nchoice:");
  scanf("%d",&z);
  printf("password lenth(3-20):");
  scanf("%d",&lh);
  fp=fopen("c:\\pass.dic","w+");
  if(z==1)
  {
    printf("\nInput 0-9,will be numbers\n");
    printf("Input 10-35,will be letters(A-Z)\n");
    printf("Input 36-61,will be letters(a-z)\n");
    printf("Input 62-89,will be other letters\n");
    printf("\ninput m,n:\n");
    scanf("%d%d",&m,&n);
  }
  if(z==2)
  {
    printf("Input chars:\n");
    scanf("%s",a);
  }
  for(i=R;i<Q;i++)      /*一个程序段,完成了两个功能,他上面宏定义用到了*/
  {
     for(j=R;j<Q;j++)
   {
      for(k=R;k<Q;k++)
      {
      if(lh==3)
      {
        fprintf(fp,"%c%c%c\n",a[i],a[j],a[k]);
        continue;
      }
      for(l=R;l<Q;l++)
      {
        if(lh==4)
        {
         fprintf(fp,"%c%c%c%c\n",a[i],a[j],a[k],a[l]);
            continue;
        }
        for(o=R;o<Q;o++)
        {
               if(lh==5)
         {
          fprintf(fp,"%c%c%c%c%c\n",a[i],a[j],a[k],a[l],a[o]);
          continue;
         }
         for(p=R;p<Q;p++)
         {
          if(lh==6)
              {
           fprintf(fp,"%c%c%c%c%c%c\n",a[i],a[j],a[k],a[l],a[o],a[p]);
           continue;
                  }
          for(q=R;q<Q;q++)
          {
               if(lh==7)
           {
             fprintf(fp,"%c%c%c%c%c%c%c\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q]);
             continue;
           }
           for(r=R;r<Q;r++)
           {
              if(lh==8)
              {
                fprintf(fp,"%c%c%c%c%c%c%c%c\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r]);
                continue;
              }
              for(s=R;s<Q;s++)
            {
               if(lh==9)
                {
                        fprintf(fp,"%c%c%c%c%c%c%c%c%c\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s]);
                continue;
                }
                  for(t=R;t<Q;t++)
                {
                if(lh==10)
                 {
                  fprintf(fp,"%c%c%c%c%c%c%c%c%c%c\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t]);
                   continue;
                 }
                 for(u=R;u<Q;u++)
                  {
                  if(lh==11)
                  {
                   fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u]);
                   continue;
                    }
                  for(v=R;v<Q;v++)
                  {
                   if(lh==12)
                   {
                         fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v]);
                          continue;
                    }
                    for(kk=R;kk<Q;kk++)
                    {
                        if(lh==13)
                        {
                            fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v],a[kk]);
                            continue;
                                          }
                                          for(ll=R;ll<Q;ll++)
                        {
                            if(lh==14)
                            {
                                fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v],a[kk],a[ll]);
                                continue;
                                               }
                                               for(mm=R;mm<Q;mm++)
                             {
                                if(lh==15)
                                {
                                                    fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v],a[kk],a[ll],a[mm]);
                                    continue;
                                                  }
                                                  for(oo=R;oo<Q;oo++)
                                {
                                   if(lh==16)
                                     {
                                                        fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v],a[kk],a[ll],a[mm],a[oo]);
                                        continue;
                                                     }
                                                     for(pp=R;pp<Q;pp++)
                                   {
                                       if(lh==17)
                                         {
                                                            fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v],a[kk],a[ll],a[mm],a[oo],a[pp]);
                                                      continue;
                                                         }
                                                         for(rr=R;rr<Q;rr++)
                                       {
                                          if(lh==18)
                                            {
                                                              fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",a[i],a[j],a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v],a[kk],a[ll],a[mm],a[oo],a[pp],a[rr]);
                                                        continue;
                                                            }
                                                            for(qq=R;qq<Q;qq++)
                                          {
                                              if(lh==19)
                                                {
                                                                  fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",a[i],a[j],
                                                                    a[k],a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v],a[kk],a[ll],a[mm],a[oo],a[pp],a[rr],a[qq]);
                                                            continue;
                                                                }
                                                                for(ww=R;ww<Q;ww++)
                                              {
                                                if(lh==20)
                                                  {
                                                                    fprintf(fp,"%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%\n",a[i],a[j],a[k],
                                                                      a[l],a[o],a[p],a[q],a[r],a[s],a[t],a[u],a[v],a[kk],a[ll],a[mm],a[oo],a[pp],a[rr],a[qq],a[ww]);
                                                              continue;
                                                                  }
                                                }
                                            }
                                            }
                                           }
                                       }
                                    }
                                           }
                                       }
                                    }
                                }
                              }
                          }
                      }
                   }
          }
              }
          }
        }
    }
    }
    rewind(fp);
    while((ch=fgetc(fp))!=EOF)
    {
  if(ch==&#39;\n&#39;)
    ++lenth;
    }
    fclose(fp);
    printf("\n");
    puts(a);
    printf("Done.\nThe file has %ld hang in c:\\pass.txt.\n",lenth);
}

void crack4(void)
{
    FILE *fp;
    int p,q,j,z,w=0;
    char ch;
    long m,n,i,lenth=0;
    printf("1.mobile_num\t2.telphone_num\n");
    scanf("%d",&z);
    fp=fopen("c:\\pass1.dic","w+");
    if(z==1)
    {
      printf("\nmobile phone number make:\n\n");
      printf("EXP:130 137 start_number end_number:\n\n");
      printf("Input:\n");
    while(1)
    {
        scanf("%d%d%ld%ld",&p,&q,&m,&n);
          if(p>q||m>n)
        {
          printf("error,p must <= q or m <= n please input again:\n");
          }
          else
            break;
       }
       printf("waiting...\n\n");
     for(j=p;j<=q;j++)
        for(i=m;i<=n;i++)
          fprintf(fp,"%d%ld\n",j,i);
       rewind(fp);
       while((ch=fgetc(fp))!=EOF)
       {
        if(ch==&#39;\n&#39;)
           ++lenth;
       }
       printf("done.the file has %ld words in c:\\pass1.dic\n",lenth);
        fclose(fp);
    }
    if(z==2)
    {
       printf("\ntelnel phone number make:\n\n");
       printf("If the local number <=1000,don&#39;t input 0:\n\n");
     printf("EXP:813 start_number end_number:\n");
       printf("   0476 8442132 8442159\n\n");
       printf("Input:\n");
     while(1)
     {
         scanf("%d%ld%ld",&p,&m,&n);
         if(m>=n)
            printf("error.start_n must <= end_n\n");
          else
            break;
       }
       printf("waiting...\n\n");
     if(p>=1000)
     {
        for(i=m;i<=n;i++)
         fprintf(fp,"%d%ld\n",p,i);
       }
     else
     {
        for(i=m;i<=n;i++)
      fprintf(fp,"%d%d%ld\n",w,p,i);
     }
    }
    rewind(fp);
    while((ch=fgetc(fp))!=EOF)
    {
  if(ch==&#39;\n&#39;)
     ++lenth;
    }
    fclose(fp);

    printf("\nDone.\nThe file has %ld hang in c:\\pass1.txt.\n",lenth);
}[/code]

sgl 2005-6-30 09:05

void crack2(void)
{
   FILE *fp;
   long int lenth=0;
   int a,b,c,d,e,f,h,k,m=0;
   char ch,ch1=&#39;//&#39;,ch2=&#39;:&#39;,ch3=&#39;.&#39;,ch4=&#39;-&#39;,ch5=&#39;\\&#39;;
   if((fp=fopen("c:\\day.txt","w+"))==NULL)
   {
    printf("Can&#39;t open the file.\n");
    exit(0);
   }
   printf("\nBirthday dic make:\n\n");
   printf("\n<Usage:Start_years month day End_year month day [opinons]:>\n");
   printf("EXP:1985 1 2 1989 1 2 1\n\n");
   printf("    85 1 2 89 1 12 1\n\n");
   printf("   1985 1 2 89 1 11 1\n\n");
   printf("[opinos]:h=1,19850102\t  h=2,1985//0//02\n");
   printf("      h=3,1985:01:02\th=4,1985.01.02\n");
   printf("      h=5,1985-01-02\th=6,198512\n");
   printf("      h=7,1985//1//2\th=8,1985:1:2\n");
   printf("      h=9,1985.1.2\t  h=10,1985-1-2\n");
   printf("      h=11,1985\\1\\2\th=12,1985\\01\\02\n");
   printf("Input:\n");
   while(1)
   {
      scanf("%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&h);
      if(a>d||b<e||c>f)
        printf("error.check it again.\n");
      else
        break;
   }
   printf("waiting...\n");
   while(a<=d)
   {
    switch(h)
    {
    case 1:
       if(b<10&&c<10)
        fprintf(fp,"%d%d%d%d%d\n",a,m,b,m,c);
         if(b>=10&&c<10)
        fprintf(fp,"%d%d%d%d\n",a,b,m,c);
       if(b<10&&c>=10)
          fprintf(fp,"%d%d%d%d\n",a,m,b,c);
       if(b>=10&&c>=10)
         fprintf(fp,"%d%d%d\n",a,b,c);
     break;
    case 2:
      if(b<10&&c<10)
   fprintf(fp,"%d%c%d%d%c%d%d\n",a,ch1,m,b,ch1,m,c);
      if(b>=10&&c<10)
   fprintf(fp,"%d%c%d%c%d%d\n",a,ch1,b,ch1,m,c);
      if(b<10&&c>=10)
   fprintf(fp,"%d%c%d%d%c%d\n",a,ch1,m,b,ch1,c);
      if(b>=10&&c>=10)
   fprintf(fp,"%d%c%d%c%d\n",a,ch1,b,ch1,c);
   break;
    case 3:
      if(b<10&&c<10)
   fprintf(fp,"%d%c%d%d%c%d%d\n",a,ch2,m,b,ch2,m,c);
      if(b>=10&&c<10)
   fprintf(fp,"%d%c%d%c%d%d\n",a,ch2,b,ch2,m,c);
      if(b<10&&c>=10)
   fprintf(fp,"%d%c%d%d%c%d\n",a,ch2,m,b,ch2,c);
      if(b>=10&&c>=10)
   fprintf(fp,"%d%c%d%c%d\n",a,ch2,b,ch2,c);
   break;
  case 4:
      if(b<10&&c<10)
   fprintf(fp,"%d%c%d%d%c%d%d\n",a,ch3,m,b,ch3,m,c);
      if(b>=10&&c<10)
   fprintf(fp,"%d%c%d%c%d%d\n",a,ch3,b,ch3,m,c);
      if(b<10&&c>=10)
   fprintf(fp,"%d%c%d%d%c%d\n",a,ch3,m,b,ch3,c);
      if(b>=10&&c>=10)
   fprintf(fp,"%d%c%d%c%d\n",a,ch3,b,ch3,c);
     break;
  case 5:
      if(b<10&&c<10)
   fprintf(fp,"%d%c%d%d%c%d%d\n",a,ch4,m,b,ch4,m,c);
      if(b>=10&&c<10)
   fprintf(fp,"%d%c%d%c%d%d\n",a,ch4,b,ch4,m,c);
      if(b<10&&c>=10)
   fprintf(fp,"%d%c%d%d%c%d\n",a,ch4,m,b,ch4,c);
      if(b>=10&&c>=10)
   fprintf(fp,"%d%c%d%c%d\n",a,ch4,b,ch4,c);
     break;
  case 6:
      fprintf(fp,"%d%d%d\n",a,b,c);
        break;
  case 7:
      fprintf(fp,"%d%c%d%c%d\n",a,ch1,b,ch1,c);
        break;
  case 8:
      fprintf(fp,"%d%c%d%c%d\n",a,ch2,b,ch2,c);
        break;
  case 9:
      fprintf(fp,"%d%c%d%c%d\n",a,ch3,b,ch3,c);
        break;
  case 10:
      fprintf(fp,"%d%c%d%c%d\n",a,ch4,b,ch4,c);
        break;
  case 11:
      fprintf(fp,"%d%c%d%c%d\n",a,ch5,b,ch5,c);
      break;
  case 12:
       if(b<10&&c<10)
   fprintf(fp,"%d%c%d%d%c%d%d\n",a,ch5,m,b,ch5,m,c);
      if(b>=10&&c<10)
   fprintf(fp,"%d%c%d%c%d%d\n",a,ch5,b,ch5,m,c);
      if(b<10&&c>=10)
   fprintf(fp,"%d%c%d%d%c%d\n",a,ch5,m,b,ch5,c);
      if(b>=10&&c>=10)
   fprintf(fp,"%d%c%d%c%d\n",a,ch5,b,ch5,c);
   break;
    }
    c++;
    if(a==d)
    {
     if(b>=e&&c>f)
       break;
    }
    if(c>31)
    {
     b++;
     c=1;
     if(b>12)
     {
       a++;
       b=1;
     }
     }
   }
   rewind(fp);
   while((ch=fgetc(fp))!=EOF)
   {
     if(ch==&#39;\n&#39;)
   lenth++;
   }
   fclose(fp);
   printf("\ndone.\nThe file has %ld hang in c:\\day.txt\n",lenth+1);
}

void Txt2Dic(void)
{
    return 0;
}

main()
{
   char choose;
   clrscr();
   gotoxy(20,2);
   printf("  Hacker Dictionary <Protype 1.0>");
   gotoxy(8,4);
   printf("by W.Z.T,2005.03.06 [url]http://www.suse.edu.cn[/url] [email]tthacker@eyou.com[/email]");
   gotoxy(18,6);
   printf("1.Violence and define\n");
   gotoxy(18,7);
   printf("2.mobile or telphone\n");
   gotoxy(18,8);
   printf("3.birthday\n");
   gotoxy(46,6);
   printf("4.Txt2Dic.\n");
   gotoxy(46,7);
   printf("5.help\n");
   gotoxy(46,8);
   printf("6.exit\n");
   while(1)
   {
printf("choice:");
scanf("%c",&choose);
switch(choose)
{
    case &#39;1&#39;:
  crack();
  break;
    case &#39;2&#39;:
  crack4();
  break;
    case &#39;3&#39;:
  crack2();
  break;
    case &#39;4&#39;:
  Txt2Dic();
  break;
    case &#39;5&#39;:
  help();
  break;
    case &#39;6&#39;:
  exit(0);
  break;
    default:
  printf("choice:1,2,3,4 or 5");
  break;
  }
  }
}

页: [1]
© 1999-2008 EvilOctal Security Team