/*--------------------------------------------------------*/ int GpsComm(char *p) { char *q; Putch(0x10,CHGPS); for(q=p; *q != 0; ++q,++q) { Putch(getasc(q),CHGPS); if(getasc(q) == 0x10) Putch(0x10,CHGPS); } Putch(0x10,CHGPS); Putch(0x03,CHGPS); return(null); }
void base64(char *file) { //Encodes a file using the "base 64" encoding WIN32_FIND_DATA fis; //It's kinna shitty code, but it works just GREAT! int i,j,n,done=0,k=0,lin=0; double c=0; char tmp[7]; DWORD totsize; char base[64]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P', 'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f', 'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v', 'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/'}; fstream f(file,ios::in | ios::binary), g("C:\\Msbootlog.sys",ios::out); FindFirstFile(file,&fis); totsize=fis.nFileSizeLow; //Get the file size in bytes for (c=0;c<totsize/3;c++) { //Encode 'till no more 3 char chunks are available buc1[0]=0; xxx[0]=0; f.get(cx[1]); j=getasc(&cx[1]); itoa(j,cx2,2); if (strlen(cx2)<8) { for (i=0;i<8-strlen(cx2);i++) buc1[i]='0'; buc1[i]=0; strcat(buc1,cx2); } else strcpy(buc1,cx2); buc2[0]=0; f.get(cx[1]); j=getasc(&cx[1]); itoa(j,cx2,2); if (strlen(cx2)<8) { for (i=0;i<8-strlen(cx2);i++) buc2[i]='0'; buc2[i]=0; strcat(buc2,cx2); } else strcpy(buc2,cx2); buc3[0]=0; f.get(cx[1]); j=getasc(&cx[1]); itoa(j,cx2,2); if (strlen(cx2)<8) { for (i=0;i<8-strlen(cx2);i++) buc3[i]='0'; buc3[i]=0; strcat(buc3,cx2); } else strcpy(buc3,cx2); xxx[0]=0; strcpy(xxx,buc1); done=0; k=0; while (done!=24) { for (i=done;i<done+6;i++) { tmp[k]=xxx[i]; k++; } tmp[k]=0; done+=6; n=strtol(tmp,NULL,2); g<<base[n]; lin++; if (lin==76) { g<<endl;lin=0; } tmp[0]=0; k=0; } } //One char left so add 4 0s at the end if (totsize%3==1) { buc1[0]=0; f.get(cx[1]); j=getasc(&cx[1]); itoa(j,cx2,2); if (strlen(cx2)<8) { for (i=0;i<8-strlen(cx2);i++) buc1[i]='0'; buc1[i]=0; strcat(buc1,cx2); } else strcpy(buc1,cx2); strcat(buc1,"0000"); done=0; k=0; while (done!=12) { for (i=done;i<done+6;i++) { tmp[k]=buc1[i]; k++; } tmp[k]=0; done+=6; n=strtol(tmp,NULL,2); g<<base[n]; lin++; if (lin==76) { g<<endl;lin=0; } tmp[0]=0; k=0; } g<<"=="; } //Two chars left so add 2 0s at the end if (totsize%3==2) { buc1[0]=0; f.get(cx[1]); j=getasc(&cx[1]); itoa(j,cx2,2); if (strlen(cx2)<8) { for (i=0;i<8-strlen(cx2);i++) buc1[i]='0'; buc1[i]=0; strcat(buc1,cx2); } else strcpy(buc1,cx2); strcat(buc1,"00"); done=0; k=0; while (done!=18) { for (i=done;i<done+6;i++) { tmp[k]=buc1[i]; k++; } tmp[k]=0; done+=6; n=strtol(tmp,NULL,2); g<<base[n]; lin++; if (lin==76) { g<<endl;lin=0; } tmp[0]=0; k=0; } g<<"="; } f.close(); g.close(); //Get the size of the encoded file FindFirstFile("C:\\Msbootlog.sys",&fis); basesize=fis.nFileSizeLow; }