/* Copyright (C) 2000 CW Sandmann (sandmann@clio.rice.edu) 1206 Braelinn, Sugar Land, TX 77479 */ #include #include #include #include #ifdef GO32 #include #else #include #endif char view_only = 0; const char *client_patch_code; char buffer[20480]; unsigned long search_base = 0x4c800L; int f; char oldpatch[] = {0x3b, 0x05, 0xac, 0xe6 }; char newpatch[] = {0x3b, 0x05, 0x58, 0x5e }; void patch_image(char *filename) { int i,size; view_only = 0; f = open(filename, O_RDWR | O_BINARY); if (f < 0) { f = open(filename, O_RDONLY | O_BINARY); if (f < 0) { perror(filename); return; } view_only = 1; } lseek(f, search_base, SEEK_SET); size = read(f, buffer, sizeof(buffer)); client_patch_code = NULL; for(i=0; i