Kann mir jemand helfen diesen c Source in Delphi zu Übersetzen
Delphi-Quellcode:
int IMEI_code(char* IMEI, char *std);
int main(int argc, char* argv[])
{
printf("CL 50 UNLOCK ALL\n");
if (argc<2) // mach ich Anders über MemoInfo.lines.add('Prüfe eingegebene IMEI');
// If length(EditIMEI.Text)<14 then begin
// MemoInfo.lines.add('Falsche IMEI eingegeben');
{
printf("USAGE: %s <IMEI>",argv[0]);
exit(0);
}
printf("Code for NCKKN is : **00012*");
IMEI_code(argv[1],"NCKKN");
printf("#\n");
printf("Code for NSCKN is : **00022*");
IMEI_code(argv[1],"NSCKN");
printf("#\n");
printf("Code for SPCKS is : **00032*");
IMEI_code(argv[1],"SPCKS");
printf("#\n");
printf("Code for CKCCK is : **00042*");
IMEI_code(argv[1],"CKCCK");
printf("#\n");
printf("Code for PCKKP is : **00053*");
IMEI_code(argv[1],"PCKKP");
printf("#\n");
}
int IMEI_code(char* IMEI, char *std)
{
//IMEI here
//char IMEI[]="351736001251143";
//char *IMEI=argv[1];
char IMEI_PATCH[17],IMEI74[17],IMEI9C[17];
char IMEICC[33];
//char std[]="PCKKP";
char std1[]="DG1";
//char std2[]="PCKKP";
char dest[16];//std3[]="DG1";
int b=0;
int i;
//init date ------------------------
for (i=0;i<16;i++)
dest[i]=0;
for (i=0;i<37;i++)
IMEICC[i]=0;
strcpy(dest,std1);
//end init date --------------------
for(i=0;i<8;i++)
{
b+=IMEI[i+6];
IMEI_PATCH[i]=IMEI[i+6];
}
//printf("%x\n",b);
for(i=0;i<8;i++)
{
IMEI_PATCH[i+8]=0x64-IMEI_PATCH[i];
}
//ýòî íóëè â êîíåö ìàññèâîâ
//nulls for end array
//aka IMEI_PATCH[9]=0;
//Not used
//Íå èñïîëüçóåì:)
IMEI_PATCH[16]=0;
// printf("%s\n",IMEI_PATCH);
switch(b%3)
{
default:
case 0: for(i=0;i<16;i++)
{
IMEI74[i]=IMEI_PATCH[i];
};break;
//0x1 Ðåâåðñèðîâàíèå (REVERSING)
case 1: for(i=0;i<16;i++)
{
IMEI74[15-i]=IMEI_PATCH[i];
};break;
//0x2
case 2:
for(i=0;i<16;i++)
{
if(!(i%2)) //Ïðîâåðêà íà ÷åòíîñòü (is i/2 ???)
{
IMEI74[i]=IMEI_PATCH[i+1];
}
else
{
IMEI74[i]=IMEI_PATCH[i-1];
}
};
}
strcat(dest,std);
strcat(dest,std1);
strcat(dest,std);
//printf("HASH: %s\n",dest);
for(i=0;i<16;i++)
{
IMEI9C[i]=(IMEI74[i]+dest[i])%100;
}
//printf("%s\n",IMEI74);
//printf("%s\n",IMEI9C);
IMEI74[16]=0;
IMEI9C[16]=0;
//ýòî íóëè â êîíåö ìàññèâîâ
//nulls for end array
switch(b%10)
{
case 1:
for(i=0;i<8;i++)
{
IMEICC[i*4]=(IMEI74[i*2]|dest[i*2]|IMEI9C[i*2]|IMEI9C[i*2])%10;
}
break;
case 2:
for(i=0;i<8;i++)
{
IMEICC[i*4]=(IMEI74[(i*2)+1]|dest[(i*2)+1]|IMEI9C[(i*2)+1]|IMEI9C[(i*2)+1])%10;
}
break;
case 3:
for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[i*2]|dest[i*2])&IMEI9C[i*2]|IMEI9C[i*2])%10;
}
break;
case 4:
for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[(i*2)+1]|dest[(i*2)+1])&IMEI9C[(i*2)+1]|IMEI9C[(i*2)+1])%10;
}
break;
case 5:
for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[i*2]|dest[i*2]|IMEI9C[i*2])&IMEI9C[i*2])%10;
}
break;
case 6:
for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[(i*2)+1]|dest[(i*2)+1]|IMEI9C[(i*2)+1])&IMEI9C[(i*2)+1])%10;
}
break;
case 7:
for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[i*2]&dest[i*2])|IMEI9C[i*2]|IMEI9C[i*2])%10;
}
break;
case 8:
for(i=0;i<8;i++)
{
IMEICC[i*4]=((IMEI74[(i*2)+1])&dest[(i*2)+1]|IMEI9C[(i*2)+1]|IMEI9C[(i*2)+1])%10;
}
break;
case 9:
for(i=0;i<8;i++)
{
IMEICC[i*4]=(((IMEI74[i*2]&dest[i*2])|IMEI9C[i*2])&IMEI9C[i*2])%10;
}
break;
default:
for(i=0;i<8;i++)
{
IMEICC[i*4]=(((IMEI74[(i*2)+1]&dest[(i*2)+1])|IMEI9C[(i*2)+1])&IMEI9C[(i*2)+1])%10;
}
}
//printf("CODE is ");
for(i=0;i<8;i++)
printf("%d",IMEICC[i*4]);
}
//---------------------------------------------------------------------------
-Klar ist das war ne Consolen Anwendung
-über printf erfolgt die Ausgabe
für den Rest brauch ich schon die ersten Denkanstöße
-sind das funktionen
z.B.
int IMEI_code(char* IMEI, char *std);
int main(int argc, char* argv[])
wen ja was gehört zu welcher funktion
sind das variablen wenn ja was und wie
-char IMEI_PATCH[17],IMEI74[17],IMEI9C[17];
-char IMEICC[33];