Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

EDIT: um n Stellen Bits verschieben

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 ...

Antwort
Alt 09.05.06, 21:58   #1 (permalink)
 
Registriert seit: 20.07.05
Teal'C Leistung: Facit NTK
Likes: 0
Standard EDIT: um n Stellen Bits verschieben

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;

}
Teal'C ist offline   Mit Zitat antworten
Alt 09.05.06, 22:22   #2 (permalink)
Member of Honour
 
Registriert seit: 03.10.01
blueflash Leistung: Facit NTK
Likes: 1
Standard

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.
blueflash ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 10.05.06, 08:02   #3 (permalink)
 
Benutzerbild von ERit
 
Registriert seit: 31.03.05
ERit Leistung: Facit NTK
Likes: 0
Standard

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");
}
hab den source für einen exe cryptor angehängt, viell hilft er dir etwas weiter.
lg
Angehängte Dateien
Dateityp: zip yC1.3.zip (47,9 KB, 52x aufgerufen)
ERit ist offline   Mit Zitat antworten
Alt 31.05.06, 16:48   #4 (permalink)
Themenstarter
 
Registriert seit: 20.07.05
Teal'C Leistung: Facit NTK
Likes: 0
Standard

SRY, musste Pushen!!! Gründe siehe Anfangspost...

Gruß
Teal'c
Teal'C ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » EDIT: um n Stellen Bits verschieben
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ä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


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61