000
01.06.2006, 12:48 Uhr
kruemel88
|
Hallo,
ich bin neu hier und hab mich mittels SuFu ein bisschen in meine Thematik eingelessen.
Ich habe folgendes Problem: Ich möchte eine *.exe Datei verschlüsseln. Rein grob hab ich mir das so vorgestellt:
1. Datei öffnen 2. Datei kopieren 3. Kopierte Datei öffnen
- Schleife Anfang - 4. Zeichen auslesen -> um z.B 3 verschieben 5. verändertes Zeichen in Datei schreiben - Schleife Ende -
Leider tut mein Programm ned so wie es tun soll... Und ich hab keine Ahnung warum.
Mein Code:
C++: |
int dateiverschluesselung(void){
//int argc; //char **argv; char filename_q[255]; char filename_z[255]; int c; int i; int erg, erg2; int key; int beenden; int zeichen; int schreiben;
FILE *quelldatei, *zieldatei, *stream;
//Auf '\0' legen for(i=0; i<254; i++){ filename_q[i] = '\0'; filename_z[i] = '\0'; }
printf("===============================================================================\n"); printf("= =\n"); printf("= HINWEIS: Es duerfen keine gleichen Dateinamen bzw. Pfade angegeben werden =\n"); printf("= BEDINGUNG: Dateiname Quelldatei != Dateiname Zieldatei =\n"); printf("= =\n"); printf("===============================================================================\n\n");
printf("<PFAD><NAME DER QUELLDATEI>:\t"); scanf("%s", filename_q); quelldatei=fopen(filename_q, "rb");
if(quelldatei==NULL){ printf("Konnte Datei %s nicht finden bzw. oeffnen\n", filename_q); return 0; } else{ printf("<PFAD><NAME DER ZIELDATEI>:\t"); scanf("%s", filename_z); zieldatei=fopen(filename_z, "w+b"); } if(zieldatei==NULL){ printf("Konnte Zieldatei nicht erzeugen!\n"); return 0; } else{ while((c=getc(quelldatei))!= EOF){ putc(c,zieldatei); } } erg = fclose(quelldatei); erg2= fclose(zieldatei);
stream = fopen(filename_z, "r+b");
if(stream==NULL){ printf("Konnte die Datei %s nicht finden\n", filename_z); return 0; } printf("Key:\n"); scanf("%d", &key); fflush(stdin);
/* while(stream != EOF){ temp = fgetc(stream); printf("%d", temp); //temp = temp + key; //temp2 = fputc(temp, stream); }
*/ beenden=0; do{ zeichen = fgetc(stream); if(ferror(stream)){ printf("Fehler!\n"); beenden = 1; } if(beenden=0){ if(zeichen==EOF){ beenden=1; } } if(beenden==0){ zeichen += key; schreiben = fputc(zeichen, stream); if(schreiben==EOF){ printf("Fehler"); beenden=1; } } } while(beenden!=1);
}
|
Ich hoffe ihr könnt mir helfen...
Gruß kruemel |