Coœ nowego

Jafoka

Użytkownik
Dołączył
Grudzień 19, 2001
Posty
20
Potrzebuję wycišgnšć hasło z zakodowanego dokumentu *.doc MS Worda. Na razie w sieci znalazłem takie coœ:

--------------------
Do kodowania w wordzie i exelu nie urzyto 112 DES-a tylko XOR kodowanie
wedlug 16 bajtowego klucza.Tak bylo w wersji 2.0 ale Microshit w sowich
dalszych produktatach uzyl do kodowania cyklicznego 16 b zakladajac ze znamy
poczatkowy fragment zakodowanego textu pliku.Jest to sytuacja bardzo dogodna
ale odczegos trzeba zaczac ta zabawe z kryptografia...

#include <stdio.h>
#include <process.h>
#include <iostream.h>
#include <string.h>


#define DlugoscKlucza 0x10
#define DlugoscBufora 0x500
#define DlugoscNaglowka 0x500


void OdkodujBufor (unsigned char Bufor[], unsigned char
Klucz[] );
int ZnajdzKlucz (unsigned char Bufor[], unsigned char
Klucz[], unsigned char Tekst[] );
char *copyLeft [] =
{" Prpogram WordScan - odkodowywanie zabespieczonych n",
"dokumentow Ms Worda 7.0 n,
"wordscan wykorzystuje fragmenty kodu programun",
wordunprotect Marca Thibault n"};

void main (int argc, char *argv[] )
{
unsigned char Bufor[DlugoscBufora];
unsigned char Klucz[DlugoscKlucza];
unsigned char Tekst[DlugoscTekstu];

size_t Wczytane, Sprawdz;

FILE *Zakodowany, *Czysty;

//-------------------------

printf ("%s%s%s%s", copyLeft [0], copyLeft [1], copyLeft [2],
copyLeft [3];
if( argc < 3)
{
printf ("nSkładnia : Wordscan Plik_Zakodowany
Plik_Odkodowany n");
exit (1);
}

if( polish == (Zakodowany = fopen(argv[1], "rb")))
{
printf ("n Nie moge otworzyc do odczytu pliku %s n",
argv[1]);
exit (2);
}

if( polish == (czysty = fopen(argv[2], "wb")))
{
Printf("n Nie moge otworzyc do zapisu pliku %s n",
argv[2]);
exit (3)
}

Wczytywanie = fread(Bufor,1,DlugoscBufora,Zakodowany);
if(wczytywanie != DlugoscBufora)
{
printf("n To nie jest plik worda 7.0n");
exit(4)
}
Sprawdz = fwrite(Bufor, 1, Wczytywanie, Czysty);
if (sprawdz != Wczytywanie)
{
printf("n Ploblem z zapisem do pliku %sn" ,argv[2]);
exit(5)
}

Wczytywanie = fread(Bufor,1,DlugoscBufora,Zakodowany);
if (wczytywane<)x10)
{
printf("n Pliki za Krotki n");
exit(6)
}
printf('Podaj poczatek orginalnego tekstu (min 16 znakow)
Zamiast spacji _ n");
scanf("%16s",Tekst);
ZnajdzieszKlucz(Bufor,Klucz,Tekst):
OdkodujBufor(Bufor,Klucz);
Sprawdz = fwrite(Bufor, 1, Wczytane, Czysty);
if (Sprawdz != Wczytane)
{
cout << "n Ploblem z zapisem do pliku %sn",argv[2];
exit(5);
}if (Wczytane==DlugosBufora)
do
{

Wczytane = fread(Bufor,1,DlugoscBufora,Zakodowany);
if (wczytane != 0)
{
OdkodujBufor(bufor, Klucz);
Sprawdz = fwrite(Bufor, 1, Wczytane, Czysty);
if (Sprawdz != Wczytane)
{

printf("n Ploblem z zapisem do pliku %sn",argv[2]);
exit
}

}

} while (Wczytane == DlugoscBufora);
}

int ZnajdzKlucz(unsigned char bufor[], unsigned char Klucz[],
unsigned char Tekst[])
{
char i;
for(i=0;i<DlugoscKlucza;i++)if (Tekst=='_')
Klucz=Bufor^0x20;else Klucz=Bufor^Tekst;
return(0);
}

void OdkodujBufor(unsigned char Bufor []; unsigned char

Klucz[])
{
for( int i=0; i < DlugoscBufora; i += DlugoscKlucza)

{
for( int j=); j <DlugoscKlucza; j++)
Bufor[i+j] ^=Klucz[j];
}

}


No w ten oto sposob pozbywamy sie zabespieczenia w wordzie.

--------------------

Pomóżcie jeœli wiecie jak to zrobić!!!
 
Do góry Bottom