⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 encrypt.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/* 保存名字编辑框 */
static	void Set_New_Editor(T_MFW_HND win)
{
T_MFW_WIN       *win_data   = ((T_MFW_HDR *)win)->data;
T_ENCRYPT_DATA		*data 		= (T_ENCRYPT_DATA *)win_data->user;   
	
    memset((char*)data->name, 0, 11);
    editor_attr_init_fullscr(&((data->edit_data).editor_attr), 1,TxtSmsEnterNumber, (char*)data->name, 11, edtCurBar1);   
    data->edit_data.hide              = FALSE;
    data->edit_data.min_enter         = 1;  // Avoid returning empty strings
	
    data->edit_data.Identifier        = 0xFFFF ; 
    data->edit_data.TextString        = NULL;  
    data->edit_data.timeout           = FOREVER;  // Avoid returning empty strings
    data->edit_data.destroyEditor     = TRUE;
	
    data->edit_data.TextId            = '\0';                                                
    data->edit_data.LeftSoftKey       = TxtSoftConfirm;//comfirm
	
    data->edit_data.AlternateLeftSoftKey  = TxtNull;
    data->edit_data.RightSoftKey      = TxtDelete;
    data->edit_data.mode              = SHUZI_MODE;       
    data->edit_data.InputMode         = SHUZI_INPUT_MODE;    
	
}
void encrypt_main();
/* 保存编辑框回调函数 */
static 	void New_EditorCB( T_MFW_HND win,USHORT Identifier,UBYTE reason)
{
T_MFW_WIN       *win_data   = ((T_MFW_HDR *)win)->data;
T_ENCRYPT_DATA   	*data       = (T_ENCRYPT_DATA *)win_data->user;  
char			test[100];
int			status;		


    switch( reason )
    {
    case INFO_KCD_LEFT: 

	     	memset(encrypt_result,0,sizeof(encrypt_result));
          	memset(encrypt,0,sizeof(encrypt));
	  	memset(key_input,0,sizeof(key_input));
	  	memcpy(key_input,data->name, sizeof(key_input));

		if(Encrypt_ffs.counter >= 100 || Encrypt_ffs.during_time > 1*3600)//shiheng 0605 modify
		{
			memset(encrypt,  '0',  sizeof(encrypt));
			encrypt[16] = 0;
			winShow(win);
			return;
		}
        /*
		if(Encrypt_ffs.counter == 0)
			key_flash_long = Encrypt_ffs.a;
		else if(Encrypt_ffs.counter == 1)
			key_flash_long = Encrypt_ffs.b;
		else if(Encrypt_ffs.counter == 2)
			key_flash_long = Encrypt_ffs.c;
		*///shiheng 0605 delete
        key_flash_long = Encrypt_ffs.a;//shiheng 0605 add
		
	 	
		
        memset(imei_temp,0,sizeof(imei_temp));
	  	get_imei((char*)idle_data.imei);
	  	
		memcpy(imei_temp,(char*)idle_data.imei,15);
		
	  	memset(imei_front,0,sizeof(imei_front));
	  	memset(imei_back,0,sizeof(imei_back));
	  	encrypt_main();
		
		Encrypt_ffs.counter++;

		status = ffs_fwrite("/mmi/mi", &Encrypt_ffs, sizeof(T_ENCRYPT));
			
		winShow(win);
		//Encrypt_Destroy (win);
		break;

    case INFO_KCD_RIGHT:
    case INFO_KCD_HUP:
		Encrypt_Destroy (win);
		break;
    }
}







//extern void encrypt_main();

long int key_input_long;
long int key_flash_long;
long int imei_front_long;
long int imei_back_long;


long int StringToNum(char *string1)
{
   int i;
   int stringLen;
   long int temp_result=0;
  
   stringLen=strlen(string1);
   
   for(i=0;i<stringLen;i++)
   {
     temp_result=temp_result*10+(string1[i]-0x30);
   }
   
   return temp_result;
  
}
void NumToStr(unsigned int num)
{
    
	long int num_1;
	int num_2;
	char char1;
	char char2[15]={0};
	int i=0;
	while (num!=0)
	{
		num_1=num/10;
		num_2=num%10;
		char1=num_2+0x30;
		char2[i]=char1;
		i++;
		num=num_1;
	}
	strcat(encrypt_result,char2);
	
 
}


void encrypt_main()
{
    int i,j;
	int key_input_len,key_input_total=0;
	int imei_lenth,imei_total=0;
	char temp_result[30];
	char char_result[10];
	

			
	key_input_len=strlen(key_input);
	for(i=0;i<key_input_len;i++)
	  key_input_total=key_input_total+key_input[i]-0x30;

	imei_lenth=strlen(imei_temp);
    for(i=0;i<imei_lenth;i++)
	  imei_total=imei_total+imei_temp[i]-0x30;

 

	key_input_long=StringToNum(key_input);
//	key_flash_long=StringToNum(key_flash);
    
    key_flash_long=key_input_long+key_flash_long;

	for(i=0;i<7;i++)
		imei_front[i]=imei_temp[i];
	imei_front[7]='\0';

	j=0;
	for(i=7;i<15;i++)
	{
		imei_back[j]=imei_temp[i];
		j++;
    }
    imei_back[8]='\0';
	
	imei_front_long=StringToNum(imei_front);
	imei_back_long=	StringToNum(imei_back);
  
    imei_front_long^=4323356;
    imei_back_long^=98789032;

	
    
    switch(key_input_total%9)
	{
	   case 0 :
		  
		  imei_front_long= imei_front_long>>0;
		  imei_back_long= imei_back_long<<4;
		  imei_front_long^=imei_back_long;
		   break;
	   case 1 :
		   
		  imei_front_long= imei_front_long>>1;
		  imei_back_long= imei_back_long<<3;
		  imei_front_long^=imei_back_long;
		   break;
	   case 2 :
		   
		   imei_front_long= imei_front_long>>2;
		   imei_back_long=imei_back_long<<2;
		   imei_front_long^=imei_back_long;
		   break;
	   case 3 :
		   
		  imei_front_long=  imei_front_long>>3;
		   imei_back_long=imei_back_long<<1;
		   imei_front_long^=imei_back_long;
           break;
	   case 4 :
		   
		   imei_front_long=  imei_front_long<<4;
		   imei_back_long=imei_back_long>>0;
		   key_input_long=key_input_long>>1;
		   imei_front_long^=imei_back_long;

           break;
       case 5 :
		   
		   imei_front_long=  imei_front_long<<3;
		   imei_back_long=imei_back_long>>1;
		   key_input_long=key_input_long>>2;
		   imei_front_long^=imei_back_long;
           break;
	   case 6 :
		   
		   imei_front_long=  imei_front_long<<2;
		   imei_back_long=imei_back_long>>2;
		   key_input_long=key_input_long>>3;
		   imei_front_long^=imei_back_long;
           break;
	   case 7 :
		   
		   imei_front_long=  imei_front_long<<1;
		   imei_back_long=imei_back_long>>3;
           key_flash_long=key_flash_long<<1;
		   imei_front_long^=imei_back_long;
           break;
	   case 8 :
		   
		   imei_front_long=  imei_front_long<<0;
		   imei_back_long=imei_back_long>>4;
		   key_flash_long=key_flash_long<<2;
		   imei_front_long^=imei_back_long;
           break;
		   


	   default:
		  
		   break;


	}
	
	
	imei_front_long=imei_front_long+key_flash_long;//shiheng 0601
    
	if(key_input_long>key_flash_long)
	{
		key_input_long=key_input_long-key_flash_long+12345;
	    key_flash_long=key_flash_long+key_input_long+67890;
	}
	else if(key_input_long=key_flash_long)
	{
	    key_input_long=key_input_long+12345;
		key_flash_long=key_flash_long+67890;
	}
	else
	{
	    key_input_long=key_input_long+key_flash_long+12345;
        key_flash_long=key_flash_long-key_input_long+67890;
	}
	
    key_input_long^=key_flash_long;
    key_flash_long&=key_input_long;
	
	imei_front_long &=key_input_long;
	imei_back_long |=key_flash_long;

    if(key_input_long>key_flash_long)
	{
	  key_input_long=key_input_long-(~key_flash_long);
	  key_flash_long=key_flash_long+key_input_long;
	}
	else
	{
	  key_flash_long=key_flash_long-(~key_input_long);
      key_input_long=key_input_long+key_flash_long;
	}
	
    imei_front_long^=key_input_long;
    imei_back_long^=key_flash_long;
	
    imei_front_long^=imei_back_long;
	
	
	key_flash_long^=imei_back_long;
	imei_front_long^=key_input_long;
	
	switch(imei_total%4)
	{
	   case 0 :
		   
		   imei_front_long= imei_front_long<<0;
		   imei_back_long= imei_back_long>>4;
		   break;
	   case 1 :
		   
		   imei_front_long= imei_front_long<<1;
		   imei_back_long= imei_back_long>>3;
		   break;
	   case 2 :
		   
		   imei_front_long= imei_front_long<<2;
		   imei_back_long=imei_back_long>>2;
		   break;
	   case 3 :
		   
		   imei_front_long=  imei_front_long<<3;
		   imei_back_long=imei_back_long>>1;
           break;
	   default:
		   
		   break;
		   
		   
	}

	NumToStr((unsigned int)imei_front_long);
    NumToStr((unsigned int)imei_back_long);

	strncat(encrypt,encrypt_result,15);

   
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -