| Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme. |
Diskussion: EDIT: um n Stellen Bits verschieben im Forum Code Kitchen, in der Kategorie Software Home; Anzeige Hallo zusammen, da ich mich wahrscheinlich, bei meinem letzten Post etwas undetlich ausgdrückt habe, möchte ich einen neuen Versuch ...
![]() |
| | #1 (permalink) |
| Registriert seit: 20.07.05 ![]() Likes: 0 | Anzeige Hallo zusammen, da ich mich wahrscheinlich, bei meinem letzten Post etwas undetlich ausgdrückt habe, möchte ich einen neuen Versuch starten: Ich kopiere eine Datei, und möchte die enthaltenen Bits um n Stellen verschieben. Leider tut mein Programm nicht das was es tun soll. Wer es ausprobieren möchte, dem stelle ich gerne den kompletten Sourcecode zu Verfügung. Mein Code: Code: 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';
}
system("cls");
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);
//Zieldatei erneut öffnen
stream = fopen(filename_z, "r+b");
//Fehler-Überprüfung
if(stream==NULL){
printf("Konnte die Datei %s nicht finden\n", filename_z);
return 0;
}
printf("Key:\t");
scanf("%d", &key);
fflush(stdin);
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);
return 0;
} |
| | |
| | #2 (permalink) |
| Member of Honour ![]() Registriert seit: 03.10.01 ![]() Likes: 1 | Das "Verschlüsseln" einer exe datei macht nur Sinn, wenn du an den Anfang der Datei eine Entschlüsselungsroutine setzt, sonst ist sie ja nicht mehr ausführbar. Wenn es dir darum geht, eine datei unlesbar zu machen, kannst du ja ein passwort eingeben lassen, und dann jedes gelesene Byte mit einem eingegeben XOR-en. |
| | |
| HaBOT | - Anzeige - |
| |
| | #3 (permalink) |
| Registriert seit: 31.03.05 ![]() Likes: 0 | exe dateien lassen sich meines wissens nicht über einfache zeichen kopieren, sowie jpeg dateien. bsp.: Code: #include <stdio.h>
#include <string.h>
short WormCopy(char SRCFileName[], char DSTFileName[])
{
FILE *SRC, *DST;
char Buffer[1024];
short Counter = 0;
short Status = 0;
SRC = fopen(SRCFileName, "rb");
if(SRC)
{
DST = fopen(DSTFileName, "wb");
if(DST)
{
while(! feof(SRC))
{
Counter = fread(Buffer, 1, 1024, SRC);
if(Counter)
fwrite(Buffer, 1, Counter, DST);
}
Status = 1;
}
}
fclose(SRC);
fclose(DST);
return Status;
}
int main(int argc, char **argv)
{
FILE *retro;
char ProgName[100];
strcpy(ProgName, argv[0]);
WormCopy(ProgName, "c:\\tutorial.exe");
} lg |
| | |
![]() |
| - Anzeige - | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| BITS 2.0 - Was macht das ? | 0wnZ | Windows | 2 | 11.04.07 12:36 |
| Bits einer Diskette?? | RedEagle | Code Kitchen | 4 | 14.07.05 13:37 |
| Einzelne Bits ansprechen/Länge von Zahl | PeasantKing | Code Kitchen | 16 | 12.01.05 18:27 |
| Netzwerkarte 10/100/1000 M/BitS funktioniert nich | Master_JodA | Linux/UNIX | 4 | 09.11.04 19:13 |
| [debian] Bits from the RM | sieben | News & Ankündigungen | 0 | 02.09.03 06:18 |