added english source and (old) german exe

This commit is contained in:
Patrick Neumann 2018-06-18 09:32:53 +02:00
parent 16f63f0a4e
commit d0e3b07ce2
2 changed files with 112 additions and 0 deletions

112
manipulate_hosts.c Executable file
View File

@ -0,0 +1,112 @@
/*
* manipulate_hosts.c
*
* author: Patrick Neumann
* version: 1.0 (02.11.2010)
*
* compile under (with):
* - linux (http://gcc.gnu.org/)
* - windows (http://www.mingw.org/)
* - mac os x (work-in-progress)
*
* quick start guide:
* 1. ping "www.microsoft.com" before
* 2. run program
* 3. ping "www.microsoft.com" afterwards
* 4. compare outputs
* 5. execute the program again
* 6. now everything should be the same as before
*
* HINT: is not working on windows anymore because
* the anti virus tools from today detect that kind of modification!
*
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h> // needed for the functions "strcpy", "strcat" und "strstr"
#define LINELENGTH 80
#ifdef __unix__
#include <unistd.h> // needed for the function "access"
#define WRITE W_OK
#else
#include <io.h> // needed for the function "access"
#define WRITE 02
#endif
int main(void) {
#ifdef __unix__
char oldfile[50] = "/etc/";
#else
char oldfile[50] = "C:\\WINDOWS\\system32\\drivers\\etc\\";
#endif
char newfile[50];
strcpy( newfile, oldfile );
strcat( oldfile, "hosts" );
strcat( newfile, "newhosts" );
char newline[50] = "149.20.20.133 www.microsoft.com";
FILE *quelle, *ziel;
char puffer[ LINELENGTH ];
int counter = 0;
// check if the source could be opened and be written (for the later "delete before rename")
if( access( oldfile, WRITE ) == -1 ) {
fprintf( stderr, "Will not be able to delete %s later.\n", oldfile );
return EXIT_FAILURE;
}
// open source
if( ( quelle=fopen( oldfile, "r" ) ) == NULL ) {
fprintf( stderr, "Can not open %s.\n", oldfile );
return EXIT_FAILURE;
}
// open target
if( ( ziel=fopen( newfile, "w" ) ) == NULL ) {
fprintf( stderr, "Can not open %s.\n", newfile );
return EXIT_FAILURE;
}
while( fgets( puffer, LINELENGTH, quelle ) ) {
// if text is not found, then ...
if( strstr( puffer, newline ) == 0 ) {
fputs( puffer, ziel );
}
// if text is found, then ...
else {
counter++;
}
}
// if counter unchanged, then ...
if( counter == 0 ) {
fputs( newline, ziel );
fputs( "\n", ziel );
printf( "The line \"%s\" was added to %s.\n", newline, oldfile );
}
else {
printf( "The line \"%s\" has been removed from %s.\n", newline, oldfile );
}
// close both files before deleting / renaming
fclose(quelle);
fclose(ziel);
// delete original
if( ( remove( oldfile ) ) == -1 ) {
fprintf( stderr, "Error while deleting %s.\n", oldfile );
return EXIT_FAILURE;
}
// rename manupulated copy to original
if( ( rename( newfile, oldfile ) ) == -1 ) {
fprintf( stderr, "Error while renaming %s.\n", newfile );
return EXIT_FAILURE;
}
// so that the console esp. under windows does not disappear with "speed of light" again ...
printf( "EXIT WITH RETURN..." );
getchar();
return EXIT_SUCCESS;
}

BIN
manipulate_hosts.exe Executable file

Binary file not shown.