|
|
//
// readbpb.c
//copyright (c) 1994 by CuTEST Inc.
#include "windows.h"
#include "stdio.h"
#include "stdlib.h"
#include "winioctl.h"
int main(int argc, char *argv[]) { ULONG Value; UCHAR Buffer[8012]; HANDLE Source, Target; DWORD BytesRead, BytesWritten; ULONG err; int i; if ((Source = CreateFile( "ntfsboot.com", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL )) == ((HANDLE)-1)) {
printf("Can't get a handle to ntfsboot.com\n"); err = GetLastError(); printf("error = %d\n", err); return 0; } printf("Open to ntfsboot.com succeeded\n");
if ((Target = CreateFile( "bootntfs.h", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL )) == ((HANDLE)-1)) {
printf("Can't get a handle to bootntfs.h\n"); err = GetLastError(); printf("error = %d\n", err); return 0; } printf("Open to bootntfs.h succeeded\n");
sprintf(Buffer, "#define NTFSBOOTCODE_SIZE 32768\n\n\n"); WriteFile(Target, Buffer, strlen(Buffer), &BytesWritten, NULL);
sprintf(Buffer, "unsigned char NtfsBootCode[] = {\n"); WriteFile(Target, Buffer, strlen(Buffer), &BytesWritten, NULL);
printf("Starting Do-While loop\n"); i = 0; do { ReadFile(Source, &Value, 1, &BytesRead, NULL); _itoa(Value, Buffer, 10); WriteFile(Target, Buffer, strlen(Buffer), &BytesWritten, NULL);
sprintf(Buffer, ","); WriteFile(Target, Buffer, strlen(Buffer), &BytesWritten, NULL); if ((i != 0) && (i % 16 == 0)) { sprintf(Buffer, "\n"); WriteFile(Target, Buffer, strlen(Buffer), &BytesWritten, NULL); } i++;
} while (BytesRead);
sprintf(Buffer, "};\n"); WriteFile(Target, Buffer, strlen(Buffer), &BytesWritten, NULL);
CloseHandle(Source); CloseHandle(Target); }
|