数组指针和数组加密

#include <stdio.h>


unsigned char Buff[20]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,
                        0x0B,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,0x14  };




char* FunctionDecode(char* dest,int size, int key)
{
    char* pdest=dest;
    for (int i=0;i<size;i++)
    {
            *dest^=key;
            dest++;
    }
    return pdest;
}

char* FunctionEntry(char* dest,int size, int key)
{
    char* pdest=dest;
    for (int i=0;i<size;i++)
    {
            *dest^=key;
            dest++;
    }
    return pdest;
}


void main()
{
//    char (*pbuff)[2];
//    pbuff=(char (*)[2])Buff;
//    printf("%d",*(*(pbuff+2)+2)); // 2*2+2  指针指向0x7 


    int (*pbuff)[2];
    pbuff=(int (*)[2])Buff;
    printf("%x\n",*(*(pbuff+1)+2)); // 1*8+8  指针指向0x11 ,打印的就应该是0x14131211 


    FunctionDecode((char*)Buff,sizeof(Buff),0xff);

    for (int i=0;i<sizeof(Buff);i++)
    {
        printf("%d ",Buff[i]);
        if (i%16==0)
        {
            printf("\n");
        }
    }
    printf("\n**********************************************\n");

        FunctionEntry((char*)Buff,sizeof(Buff),0xff);
    for (int k=0;k<sizeof(Buff);k++)
    {
        printf("%d ",Buff[k]);
        if (k%16==0)
        {
            printf("\n");
        }
    }


}

 

posted @ 2021-09-24 10:42  admrty  阅读(94)  评论(0)    收藏  举报