Hai ragione, gcc (presumo) si memorizza comunque gli spezzoni di 32 o 64 bit. Non capisco perché si salvi nel binario tutto questo, dato che è una funzione a compile-time, ma vabbé.
Allora fatti un programma a parte che ti genera la password criptata, tipo
#include <iostream>
int main() {
char pass[] = "cucupaloma";
// ENCRYPT
for(int i = 1; i <= sizeof(pass); i++)
pass[i-1] ^= i & 0x7F;
printf("%s", pass); // bw`qugkgdk
return 0;
}
Dopodiché scrivi direttamente la password criptata nel tuo programma
#include <iostream>
char pass[] = "bw`qugkgdk";
int main() {
char path[] = "C:\\Users\\test\\source\\repos\\ConsoleApp2\\bin\\Debug\\ConsoleApp2.exe";
// DECRYPT
for(int i = 1; i <= sizeof(pass); i++)
pass[i-1] ^= i & 0x7F;
printf("%s %s", path, pass);
return 0;
}
Volendo, come funzione lineare per criptare/decriptare, puoi usare qualcosa di diverso (che sai solo tu), ad esempio
for(int i = 1; i <= sizeof(pass); i++)
pass[i-1] ^= (2*i + 7) & 0x7F;