rendered paste body#include <stdio.h>#include <stdlib.h>#include <String.h>#define BUFF 29 // taille du serial avec les tirets.// checking part.char* suppr_tirets(char *s) { char * ret; int i,j=0; ret = (char *)malloc(sizeof(char) * (BUFF-4)); for(i=0; i<BUFF; i++) { if(s[i] == '-') continue; else { ret[j] = s[i]; j++; } } return ret;}char encode(char a, int idx) { char * magic_str; magic_str = select_magic(a); int len = length(magic_str); int i; for(i=0; i<len; i++) { if(a == magic_str[i]) break; int j = i - idx % len + len; return magic_str[j];} char * select_magic(char a) { char ** magic_str; int i,j; int index[5] = {11, 9, 7, 5, 4}; *magic_str = (char **)malloc(sizeof(char*)*5); for(i=0; i<5; i++) magic_str[i] = (char *)malloc(sizeof(char)*index[i]); magic_str[0] = "NC5HRSIOJYU"; magic_str[1] = "1W0K4Q96F"; magic_str[2] = "3D7PVZL"; magic_str[3] = "8AG2X"; magic_str[4] = "MEBT"; for(i=0; i<5; i++) for(j=0; j<index[i]; j++) if(a == magic_str[i][j]) return magic_str[i]; return 0;} int check_serial(char *s) { int i; char s1[3]; char s2; char s3; char s4[2]; char s5[2]; char s6; char s7; char s8; char s9; char s10; char s11[4]; char s12[21]; char s13[7]; for(i=0; i<4; i++) {s11[i] = (int)s[21+i]; printf("%d\n", s11[i]);} memcpy(s1, s, 3); //printf("%s", s1); //printf("%x", s); //printf("\n"); //memcpy(s2, (s+3), 1); //printf("%s\t%s\n", s1, s2); printf("%s\n", select_magic('N')); return 1;} char* reordonner_lettres(char *s) { char * ret; int i, j[25] = {23, 2, 13, 17, 10, 7, 4, 21, 9, 16, 19, 22, 3, 15, 24, 18, 12, 6, 0, 11, 1, 8, 20, 5, 14}; ret = (char *)malloc(sizeof(char) * (BUFF-4)); for(i=0; i<25; i++) ret[i] = s[j[i]]; return ret;}int main(int argc, char *argv[]) { char * s; char * ret; int i; s = (char *)malloc(sizeof(char) * BUFF); ret = (char *)malloc(sizeof(char) * (BUFF-4)); s = "45OZ2-F4DHO-144RF-K2K41-HE3EA"; for(i=0; i<BUFF; i++) printf("%c", s[i]); printf("\n"); ret = suppr_tirets(s); ret = reordonner_lettres(ret); check_serial(ret); for(i=0; i<(BUFF-4); i++) printf("%c", ret[i]); printf("\n"); system("PAUSE"); return 0;}/* name : TO version : "3?" vendeur : "HS/KH1/TOR/KH2/MSD/VBZ/COT/EPG/RVD/YPG/PSI/AVQ/NFR/PAC"*/