#include #include #define KEY1 0x5 #define KEY2 0x87 main() { unsigned long z; unsigned int key1=KEY1+0xbd*0x100,key2=KEY2*0x100+1; char far *v=(char far *)0x80001000; FILE *fp; fp=fopen("abd.exe","r+w+b"); if(fp==NULL){printf("error!\n");exit(0);} printf("Insert a new disk and press a key when ready,This disk must be formatted!!!\n"); getch(); system("fabd3"); system("fabd3"); system("rabd3"); key1=*(v+1)+0xbd*0x100;key2=(*v)*0x100+1; /*printf("\n%x %x ",key1,key2);*/ if(key1&1==1){/*printf("have 1.. ");*/key1=(key1>>1)|0x8000;} else key1=key1>>1; key1-=0x5fa1; key1^=0x86d; if(key2&1==1){/*printf("have 1.. ");*/key2=(key2>>1)|0x8000;} else key2=key2>>1; key2-=0x2d7f; key2^=0x86d; /*printf("key1=%x key2=%x",key1,key2);*/ fseek(fp,19*512+0x110+0xa,0); putw(key2,fp); putw(key1,fp); fcloseall(); system("copy \\m_temp\\abd.exe a:>nul"); system("copy \\m_temp\\*.bat a:>nul"); system("del \\m_temp\\*.exe"); system("del \\m_temp\\*.com"); system("del \\m_temp\\*.dat"); system("del \\m_temp\\*.bat"); system("cd\\"); system("rd \\m_temp"); exit(0); }