Les comparto un simple codigo para ofuscar variables, y asi no escribir directamente ciertas palabras que deseemos harcodear en el programa para que no sean visibles por programas como strings o similares, no es para informacion sensible, es por pura diversion y ocultacion de palabras, espere los guste.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
void HC(const char *input, int len){
srand(time(NULL));
char tmpbuff1[10];
char tmpbuff[10240];
memset(tmpbuff, '\0', 10240);
memset(tmpbuff1, '\0', 10);
//Para generar nombre de variable aleatorio
char keys[] = {'_', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z','a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3' ,'4', '5', '6', '7', '8', '9'};
int i = 0, a = 0, b = 0, c = 1;
for (; i < 7; i ++){
tmpbuff1[i] = keys[rand() % 63];
}
snprintf(tmpbuff, 50, "unsigned char %s[%i] = { ", tmpbuff1, len);
for(a = 0, b = 0; a<len; a++){
b = input[a];
b ^= 0xEC;
b ^= a;
char tmp[50];
if(a == (len - 1)) {
snprintf(tmp, 15, "0x%x };", b);
strncat(tmpbuff, tmp, strlen(tmp));
break;
}
if (c++ == 12){
snprintf(tmp, 15, "0x%x,\n ", b);
strcat(tmpbuff, tmp);
c = 1;
}else{
snprintf(tmp, 15, "0x%x, ", b);
strcat(tmpbuff, tmp);
}
}
printf("Aqui esta tu codigo\n\n%s\n\n", tmpbuff);
}
/*Funcion para "decifrar" variable y usarla
unsigned char var_name[6] = { 0x9e, 0x8c, 0x80, 0x8b, 0x87, 0x84 }; << random
char *new_var = malloc(sizeof(char) * 7);
HCD(var_name, 6, &new_var);
ahora new_var = "random"
*/
void HCD(const char *input, int len, char **outp)
{
int a = 0, b = 0;
char outvar[len];
memset(outvar, '\0', len);
for(a = 0, b = 0; a<len; a++){
b = input[a];
b ^= 0xEC;
b ^= a;
strcat(outvar, (char*)&b);
}
strncpy(*outp, outvar, len);
}
int main(int argc, char **argv)
{
HC(argv[1], strlen(argv[1]));
return 0;
}