|
Welcome to the GSM-Forum forums. You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. Only registered members may post questions, contact other members or search our database of over 8 million posts. Registration is fast, simple and absolutely free so please - Click to REGISTER! If you have any problems with the registration process or your account login, please contact contact us . |
|
Register | FAQ | Donate | Forum Rules | Root any Device | ★iPhone Unlock★ | ★ Direct Codes ★ | Direct Unlock Source |
GSM Programming & Reverse Engineering Here you can post all Kind of GSM Programming and Reverse Engineering tools and Secrets. |
| LinkBack | Thread Tools | Display Modes |
03-28-2004, 20:02 | #3 (permalink) |
Junior Member Join Date: Oct 2003
Posts: 23
Member: 42027 Status: Offline Thanks Meter: 1 | Hi I want to write dct4calc for symbian I need the source too please send it to me [email protected] sincerely Ar-ras |
05-11-2004, 14:34 | #5 (permalink) |
Junior Member Join Date: May 2004 Age: 48
Posts: 11
Member: 65254 Status: Offline Thanks Meter: 0 | hi im programing in visual basic i need the algorithm to make a program can you help me [email protected] |
05-12-2004, 06:19 | #7 (permalink) |
No Life Poster Join Date: Aug 2002 Location: Up North
Posts: 900
Member: 14934 Status: Offline Thanks Meter: 79 | sorry could not fin anywhere to upload the files this is from dct3.c --- // // Algoritmo códigos de liberación DCT3 // Algorithm unlock codes DCT3 // // indear // #include <stdio.h> #include <string.h> void ASCII2HEX (unsigned char *origen, unsigned char *destino, int caracteres); unsigned char convertir_byte_a_hex (unsigned char byte); unsigned char calculo4_a (char caracter); void calculo4 (unsigned char *cadena); void calculo3 (unsigned char *cadena); void calculo2_a (unsigned char *cadena, unsigned char byte, unsigned char byte2); void calculo2 (unsigned char *cadena, unsigned char byte, unsigned char byte2); void calculo1 (unsigned char byte, unsigned char *network_code_h, unsigned char *imei_h); void calculo1_a (unsigned char *cadena); void calcular_dct3 (unsigned char *imei, unsigned char *network_code, unsigned char *destino); void ASCII2HEX (unsigned char *origen, unsigned char *destino, int caracteres) { int i, j; unsigned char aux1, aux2; j=0; for(i=0; i<caracteres; i+=2) { aux1 = convertir_byte_a_hex(origen[i])<<4; if (i+1 < caracteres) aux2 = convertir_byte_a_hex(origen[i+1]); else aux2 = 0; destino[j] = aux1 | aux2; j++; } } unsigned char convertir_byte_a_hex (unsigned char byte) { if ((byte > 57) || (byte < 48)) // '0' a '9' return (byte-55); else return (byte-48); // 'A' a 'F' o otro caracter } unsigned char calculo4_a (char caracter) { unsigned char aux1, aux2, aux3, temp; int i; aux1=0; aux2=7; temp=0; for (i=0; i<8; i++) { aux3=caracter; aux3=aux3>>aux2; aux3&=1; aux3=aux3<<aux1; temp|=aux3; aux1++; aux2--; } return temp; } void calculo4 (unsigned char *cadena) { char temp[12]; int i; memcpy(temp, cadena, 12); for (i=0; i<12; i++) { cadena[11-i]=calculo4_a(temp[i]); } } void permu1(unsigned char *network_code_hex, unsigned char *tabla, unsigned char *imei_hex) { unsigned char *puntero; int i; puntero=tabla; for (i=0; i<11; i++) { calculo1(*puntero, network_code_hex, imei_hex); calculo2(network_code_hex, 0, 8); calculo3(network_code_hex); calculo2(network_code_hex, 8, 0); puntero++; } calculo1(tabla[11], network_code_hex, imei_hex); calculo4(network_code_hex); } void calculo3 (unsigned char *cadena) { unsigned char aux1, aux2, aux3, temp1, temp2; char temp[12]; int i; memcpy(temp, cadena, 12); temp2=12; temp1=7; aux1=3; for(i=0; i<12; i++) { aux2=temp1; aux3=aux1; aux2=temp[aux2]; aux2^=0xFF; aux2|=temp[aux3]; temp2--; if (temp1==0) temp1=12; temp1--; if (aux1==0) aux1+=12; aux3=temp2; cadena[aux3]^=aux2; aux1--; } } void calculo2_a (unsigned char *cadena, unsigned char byte, unsigned char byte2) { unsigned char aux1, aux2, aux3; unsigned char *puntero; int i,j; if (byte==0) return; for (i=0; i<byte; i++) { aux1=cadena[byte2+3]; aux1&=1; puntero=cadena+byte2; for (j=0; j<4; j++) { aux2=*puntero; aux3=aux2; aux2=aux2>>1; aux1=aux1<<7; aux2|=aux1; aux3&=1; *puntero=aux2; aux1=aux3; puntero++; } } } void calculo2 (unsigned char *cadena, unsigned char byte, unsigned char byte2) { calculo2_a(cadena, 10, byte); calculo2_a(cadena, 31, byte2); } void calculo1 (unsigned char byte, unsigned char *network_code_h, unsigned char *imei_h) { unsigned char aux1, aux2; int contador; unsigned char *puntero, *puntero2; puntero=network_code_h; puntero2=imei_h; contador=0; aux1=0; while (contador < 12) { aux2=aux1; aux2=(aux2>>1) % 3; aux2&=1; aux2*=byte; aux2^=(*puntero2); (*puntero)^=aux2; aux1++; puntero++; puntero2++; contador++; } calculo1_a(network_code_h); } void calculo1_a (unsigned char *cadena) { // 60 bytes char tabla1[] = {0x01,0x09,0x04,0x08,0x0B,0x05,0x09,0x08,0x06,0x0A , \ 0x01,0x03,0x0B,0x06,0x0A,0x00,0x08,0x07,0x0B,0x0A, \ 0x01,0x05,0x00,0x08,0x03,0x01,0x09,0x00,0x02,0x0A, \ 0x05,0x03,0x07,0x02,0x0A,0x00,0x04,0x03,0x0B,0x02, \ 0x05,0x09,0x00,0x04,0x07,0x01,0x05,0x04,0x02,0x06, \ 0x09,0x07,0x0B,0x02,0x06,0x04,0x08,0x03,0x07,0x06} ; // 60 bytes char tabla2[] = {0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x00 , \ 0x01,0x00,0x01,0x01,0x01,0x00,0x01,0x00,0x01,0x01, \ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x01, \ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, \ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, \ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01} ; unsigned char *puntero=cadena; unsigned char aux1, aux2; int contador1, contador2, contador3; char variable_8c[12]; contador1=0; aux1=0; aux2=0; while (contador1<12) { contador2=5; aux2^=*puntero; while (contador2>0) { if ((tabla2[aux1] == 0) && (contador1 <6)) { variable_8c[tabla1[aux1]]=*puntero; } else { variable_8c[tabla1[aux1]]^=*puntero; } aux1++; contador2--; } contador1++; puntero++; } for (contador3=0; contador3<12; contador3++) variable_8c[contador3]^=aux2; memcpy(cadena, variable_8c, 12); } void calcular_dct3 (unsigned char *imei, unsigned char *network_code, unsigned char *destino) { char tabla[] = {0xb1,0x73,0xe6,0x5a,0xab,0x47,0x8e,0x0d,0x1a,0x34 ,0x68,0x0b}; //12 bytes char network_code_h[12], imei_h[12]; int i, j; unsigned char aux1; memset(network_code_h, 0, sizeof(network_code_h)); memset(imei_h, 0, sizeof(imei_h)); ASCII2HEX(network_code, network_code_h, (int)strlen(network_code)); ASCII2HEX(imei, imei_h+2, 14); for (i=2; i<12; i++) imei_h[i]^=0xa5; permu1(network_code_h, tabla, imei_h); j=0; for (i=0; i<5; i++) { aux1=network_code_h[i]; if ((aux1&0x80) == 0x80) aux1+=0xa0; if ((aux1&0x08) == 0x08) aux1+=0xfa; destino[j]=(aux1 >> 4) + 0x30; j++; destino[j]=(aux1 & 0x0F) + 0x30; j++; } destino[j]=0; } void main() { // examples - ejemplos char destino[11]; calcular_dct3 ( "111111111111119", "22222", destino); // Code1 use network code printf("#pw+%s+1#\n", destino); // Codigo1 usar el codigo de operador calcular_dct3 ( "111111111111119", "FFFF", destino); // Code2 use GID1 printf("#pw+%s+2#\n", destino); // Codigo2 usar el GID1 } |
05-12-2004, 10:05 | #9 (permalink) |
Crazy Poster Join Date: Jul 2003
Posts: 50
Member: 34254 Status: Offline Thanks Meter: 0 | Thankz... send it to me .. Then i upload it... [email protected] |
05-12-2004, 17:21 | #10 (permalink) |
No Life Poster Join Date: Aug 2002 Location: Up North
Posts: 900
Member: 14934 Status: Offline Thanks Meter: 79 | home from work now, HERE IS DCT3 and DCT4 hm i'l never be able to type correct url on this forum =p h*****.nu is the correct |
05-17-2004, 06:45 | #13 (permalink) | |
Freak Poster Join Date: Sep 2001 Location: Hungary Age: 49
Posts: 307
Member: 6472 Status: Offline Thanks Meter: 1 | dct4 source in VB Quote:
Here is a ASP script in VB developed by me It has more longer because follow the structure of the dct4nck.exe (reversed). And extended with asic 7 and imei check. It is build in new griffin box serial, but u can change it if u can do it)))) http://www.gsmcoder.com/download/dct4calc_masterID.zip | |
05-20-2004, 00:37 | #14 (permalink) |
No Life Poster Join Date: May 2004 Age: 54
Posts: 2,440
Member: 66136 Status: Offline Thanks Meter: 200 | hello all , i see all must of algo of unlock software it's with C language , i some algo with JAVA language please (DCT4 and GD55/G50 it's possible ) ? best regards, JAVA Good. |
05-20-2004, 06:30 | #15 (permalink) | |
Freak Poster Join Date: Sep 2001 Location: Hungary Age: 49
Posts: 307
Member: 6472 Status: Offline Thanks Meter: 1 | Quote:
Of course, midlet gui/api programming different from PC programming, but its not part of the algo | |
Bookmarks |
| |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
dct-2,3,4 , WD2, APE,... what a mess!!! | jumpjack | WD2 & APE (Symbian Phones) | 1 | 08-21-2006 23:16 |
New DCT-2,3,4 unlocker | fjr1300 | Nokia Multimedia | 1 | 08-06-2004 14:44 |
Where can i buy Alcatel Be 1-2-3-4- unlock cable with external power supply !!??? | sifasli | Alcatel & TCL Old Models | 2 | 08-26-2001 22:21 |
|