/*
	cmepatch.c
	May 20, 2002
	
	this is a quick and dirty patch.. it simply adds functionality that
	inserts a NULL as the 200th byte of the passed USER argument prior
	to the affected sprintf().. not even remotely elegant but enough to
	stop you from getting izn0wn3D
	
	I TAKE NO RESPONSIBILITY FOR THE DAMAGE THIS MAY DO
	TO YOUR SYSTEM, EGO, WEEWEE, OR OTHERWISE ;~~~~~<

	2c79cbe14ac7d0b8472d3f129fa1df55@hushmail.com

*/


#include <stdio.h>

        FILE *cmail;

        char p1[] = {0x00,0xd0};
        char p2[] = {0xe9,0x16,0x82,0x04,0x00,0x90,0x90};
        char p3[] = {0x81,0xc4,0x15,0x24,0x00,0x00,0xc6,0x04,0x24,0x00,0x81,0xec,0x15,0x24,0x00,0x00,
		     0x8d,0xbc,0x24,0x4d,0x23,0x00,0x00,0xe9,0xd0,0x7d,0xfb,0xff,0x90};

void main(){
	
	printf("CMailServer 3.30 PATCH (May 20, 2002)\n2c79cbe14ac7d0b8472d3f129fa1df55@hushmail.com\n\n");

        cmail = fopen("CMailServer.exe", "rb+");

        if(!cmail){printf("'CMailServer.exe' not found or write protected\n");return;}

        fseek(cmail,0x1e8,0);
        fwrite(&p1,sizeof(p1),1,cmail);
        fseek(cmail,0x159f4,0);
        fwrite(&p2,sizeof(p2),1,cmail);
        fseek(cmail,0x5dc0f,0);
        fwrite(&p3,sizeof(p3),1,cmail);

        fclose(cmail);

	printf("patch successful\n");
}
